1:简单运算
训练技能点
Ø 根据需求提取数据的类型
Ø 不同数据类型间的简单运算
需求说明
张三因学习原因需要配置一台电脑,下表2.1列出了张三购买电脑的部分配置售价清单,请计算清单中的物品总价,并打印显示,显示结果如图2.2.1所示。
表2-2-1购物清单
商品 |
| 单价 |
| 个数 |
显示器 |
| ¥840 |
| 1 |
键盘 |
| ¥50 |
| 1 |
鼠标 |
| ¥100 |
| 2 |
图2.2.1打印购物总金额
实现思路
(1) 确定表示单价的数据和表示个数的数据的数据类型。
(2) 根据合适的数据类型,分别定义变量存储显示器、键盘、鼠标的单价和个数。
(3) 使用合理的表达式计算物品总价。
关键代码
(1) 定义参与运算的数据类型和取值
// 定义参与运算的数据类型和取值 int screenPrice = 845; int keyBoradPrice = 50; int mousePrice = 100;
int screenNo = 1; int keyBoradNo = 1; int mouseNo = 2; |
(2) 进行运算和打印结果
double finalPrice = screenPrice * screenNo + keyBoradPrice * keyBoradNo + mousePrice * mouseNo; System.out.println("消费总金额是:\t\t¥"+finalPrice); |
|
public static voidmain(String[] args) {
int screenprice=845;//显示器单价
int keybordprice=50;//键盘单价
int mouseprice=100;//鼠标单价
int screenno=1;//显示器个数
int keybordeno=1;//键盘个数
int mouseno=2;//鼠标个数
double screenzprice=screenno*screenprice;//显示器总金额
double keyzprice=keybordeno*keybordprice;//键盘总金额
double mousezprice=mouseno*mouseprice;//鼠标总金额
double yuanjia=screenzprice+keyzprice+mousezprice;//原价
System.out.println("消费金额是"+"\t\t"+"¥"+yuanjia+"元");
2:简单运算和运算结果的格式化显示
训练技能点
Ø Java的格式化打印
Ø 混合运算符和混合数据类型之间的运算
需求说明
使用实训任务1中给出的列表,根据下面的要求,继续购物运算。
要求计算消费总金额的时候,按照如下规则进行处理:所有商品打8折销售,购物使用1500元人民币,计算找零;根据支付的商品价格,每支付100元获得3个消费积分,计算本次消费的最终积分并打印。
最终的程序运行结果如图2.2.2所示,要严格按照格式打印。
图2.2.2打印购物详单
实现思路
(1)定义打折额度变量discount,为double型。
(2)定义缴费额pay,为double型。
(3)定义消费总金额totalPrice和找零exchange,还有购物积分credit,分别是double型、double型和int型。
(4)按照实际商场的打折、收款逻辑进行运算。
(5)格式化输出需要的结果。
public static voidmain(String[] args) {
int screenprice=845;//显示器单价
int keybordprice=50;//键盘单价
int mouseprice=100;//鼠标单价
int screenno=1;//显示器个数
int keybordeno=1;//键盘个数
int mouseno=2;//鼠标个数
double dazhe=0.8;//打折率
double allmoney=1500;//一共所有的钱
double screenzprice=screenno*screenprice;//显示器总金额
double keyzprice=keybordeno*keybordprice;//键盘总金额
double mousezprice=mouseno*mouseprice;//鼠标总金额
double yuanjia=screenzprice+keyzprice+mousezprice;//原价
double getmoney= dazhe*yuanjia;//打折之后的价格
double demoney=allmoney-getmoney;//应找回的钱
int jifen=(int)(demoney/100)*3;
System.out.println("** * * * * * * 消费清单 ** * * * * * *");
System.out.println("购买物品\t单价\t个数\t金额");
System.out.println("显示器"+"\t"+"¥"+screenprice+"\t"+screenno+"\t"+"¥"+screenzprice);
System.out.println("键盘"+"\t"+"¥"+keybordprice+"\t"+keybordeno+"\t"+"¥"+keyzprice);
System.out.println("鼠标"+"\t"+"¥"+mouseprice+"\t"+mouseno+"\t"+"¥"+mousezprice+"\n\n");
System.out.println("折扣:"+"\t\t"+dazhe);
System.out.println("消费总金额:"+"\t"+"¥"+getmoney);
System.out.println("实际缴费"+"\t\t"+"¥"+allmoney);
System.out.println("找钱:"+"\t\t"+"&"+demoney);
System.out.println("本次购物获得的积分是:"+"\t"+jifen);
3:你中奖了么
训练技能点
Ø 使用Scanner对象获得一个整数
Ø 获得一个整型数字的各个数位上数字的方法
需求说明
某大卖场针对即将到来的五一假期展开了购物抽奖活动,根据顾客的购物小票ID号,计算顾客是否获奖。
计算规则:顾客小票总共5位数,计算每位上的数字之和,如果这个和能被9整除,则表示该顾客中奖,打印“恭喜中奖”字样。
实现思路
(1) 使用Scanner的对象接收一个5位整数。
(2) 计算这个5位整数各个数位上的数字。
(3) 将5个数字相加,看看能否被9整除,以判断是否中奖。
关键代码
下面给出一个5位数各个数位上数字的计算方法,代码中的unit1– unit5 分别代表个、十、百、千、万位上的数字。
int unit1 = input % 10; int unit5 = input / 10000; int unit4 = input / 1000 % 10; int unit3 = input / 100 % 10; int unit2 = input / 10 % 10; package com.vcz;
import java.util.Scanner;
public class Bc {
public static void main(String[] args) { Scanner a=new Scanner(System.in); int input=a.nextInt(); System.out.println("您小票的数字是:"+input); int unit1 = input % 10;//获得个位的数字 int unit2 = input / 10 % 10;//获得十位的数字 int unit3 = input / 100 % 10;//获得百位的数字 int unit4 = input / 1000 % 10;//获得千位的数字 int unit5 = input / 10000;//获得万位的数字
int num=unit1+unit2+unit3+unit4+unit5; if(num/9==0){ System.out.println("恭喜中奖"); } else{ System.out.println("谢谢惠顾"); }
}
} |
4:摄氏和华氏温度的转换
训练技能点
使用合适的数据类型进行混合运算
需求说明
小红到美国旅游,可是那里的温度是以华氏为单位记录的,需要一个程序将华氏温度转化为摄氏温度,并以华氏度和摄氏度为单位分别显示该温度。
编写程序达成小红的心愿,首先求100华氏度是多少摄氏度,然后求35摄氏度是多少华氏度。输出效果如下图2.2.2所示。
图2.2.3摄氏度与华氏度的转换
实现思路
(1) 提示:摄氏度与华氏度的转换公式为:摄氏度=5/9 *(华氏度-32)。
(2) 根据提示进行温度转换的计算。
packagecom.vcz;
importjava.util.Scanner;
public class Cc {
public static voidmain(String[] args) {
System.out.println("摄氏度和华氏度的转换 1摄氏度 2华氏度");
System.out.print("您的选择是");
Scanner a=newScanner(System.in);
int i=a.nextInt();
if(i==1){
System.out.print("您输入的摄氏度为");
Scanner b=newScanner(System.in);
int e=b.nextInt();
double f=e*1.8+32;
System.out.println("转换为华氏温度为"+f);
}
else if(i==2){
System.out.print("您输入的华氏度为");
Scanner w=newScanner(System.in);
int j=w.nextInt();
double k=(j-32)/1.8;
System.out.print("转换为摄氏度为"+k);
}
else{
System.out.println("您输入的数字不正确,请核对。");
}
}
}
5:计算员工工资
训练技能点
Ø Java的格式化打印
Ø 混合运算符和混合数据类型之间的运算
需求说明
商场为员工提供了基本工资,物价津贴及房租津贴。其中,物价津贴为基本工资的40%,房屋津贴为基本工资的25%。要求:从控制台输入基本工资,并计算和输出实领工资,输出效果如下图2.2.3所示。
图2.2.4计算员工工资
实现思路
(1) 创建Scanner的对象。
(2) 使用Scanner接收一个double型数据作为基本工资salary。
(3) 根据百分比,计算员工的物价津贴allowance和房屋津贴allowance2,再累加员工的薪水totalIncome。
(4) 选择合适的格式输出公司细目。
packagecom.vcz;
importjava.util.Scanner;
public class Dc {
public static voidmain(String[] args) {
System.out.println("请输入基本工资");
Scanner a=newScanner(System.in);
double b=a.nextDouble();
double all=b*0.4;//物价津贴
double all1=b*0.25;//房屋津贴
double xinshui=b+all+all1;//全部工资
System.out.println("基本工资为"+b);
System.out.println("物价津贴为"+all);
System.out.println("房屋津贴为"+all1);
System.out.println("实际工资为"+xinshui);
}
}