【编程
1
】
查询商品价格
需求说明
用户从控制台输入需要查询的商品的编号,根据编号显示对应的商品价格。假设商品名称和商
品价
格
:
T
恤
¥245.0,
网球鞋
¥570.0,
网球拍¥320.0。
声明变量存储商品信息
:
name
(商品名称)、
price
(商品价格)和
goodsNo
(商品编号)、answer(是否继续)
循环查询商品价格。
输入
“n”
结束循环。
增加如下变量存储信息。
int amount
=0;//购买数量
double discount
=
0.8;
//
折扣比例
double total
=
0.0;
//
商
品总价
double payment=0.0;//
实付
金额
循环输入商品编号和购买数量,系统自动计算每种商品的价钱(单价
x
购买数量),并累加到总金额。
当用户输入
“n”
时,表示需要结账,则退出循环开始结账。
结账时,根据折扣(假设享受八折优惠)计算应付金额,输入实付金额,计算找零。程序运行结果如图
5.15
所示。
import java.util.Scanner;
public class Shopping {
public static void main(String[] args) {
String name="";//商品名称
double price;//商品价格
double discount=0.8;//折扣比例
double total=0.0;//商品总价
double payment=0.0;//实付金额
int goodsNO;//商品编号
int amount;//购买数量
//结算单头部
System.out.println("MyShopping管理系统>购物结算");
System.out.println("************************************");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T恤\t2.网球鞋\t3.网球拍");
System.out.println("************************************");
Scanner scanner =new Scanner(System.in);
//使其可以从键盘输入
System.out.println("请输入商品编号:");
String answer="y";//answer是否继续
if(scanner.hasNextInt()) {
while(answer.equals("y")) {
//equals用于比较输入的字符是否与我们定义的字符相等
//当输入的answer为y时,继续,输入n时结束———》结账
goodsNO=scanner.nextInt();
//接收商品编号
System.out.println("请输入购买数量:");
amount=scanner.nextInt();
//获取从键盘输入的值,放入循环中才能使输入的值进行运算
switch (goodsNO) {
//用于输入商品编号的判断
//编号1
case 1:name="T恤";price=245;
System.out.println("T恤¥"+price+"\t数量"+amount+"\t合计¥"+price*amount);
total=total+price*amount;
break;
//编号2
case 2:name="网球鞋";price=570;
System.out.println("网球鞋¥"+price+"\t数量"+amount+"\t合计¥"+price*amount);
total=total+price*amount;
break;
//编号3
case 3:name="网球拍";price=320;
System.out.println("网球拍¥"+price+"\t数量"+amount+"\t合计¥"+price*amount);
total=total+price*amount;
break;
}
System.out.println("是否继续(y/n)");
answer=scanner.next();
//接收从键盘输入的值
}
System.out.println("\n折扣:"+discount);//打印出折扣
double money=total*discount;
//定义应付金额,应付金额=总价*折扣
System.out.println("应付金额是"+money);
System.out.println("实付金额为:");
payment=scanner.nextDouble();
//接收从键盘输入的实付金额
System.out.println("找钱:"+(payment-money));
//找钱:实付金额-应付金额
}else {
System.out.println("请输入正确的数字:");
}
}
}
【编程2
】
指导–统计顾
客的年龄层次
需求说明
商场为了提高销售额,需要对顾客的年龄层次(30岁之上/30岁之下)进行调查(样本数为10),请计算这两个层次的顾客比例。
程序运行结果如图
6.4
所示。
实现思路
(
1
)
定义计数器变量
young,
记录年龄30岁以下顾客的人数。
(
2
)
利用循环录入
10
位顾客的年龄。
图6.4上机练习2的运行结果
代码:
import java.util.Scanner;
public class AgeLevel {
public static void main(String[] args) {
int sum1=0;
int sum2=0;
for(int young=1;young<=10;young++){
System.out.print("请输入第"+young+"位顾客的年龄:");
Scanner input = new Scanner(System.in);
int age =input.nextInt();
if(age>30){
sum1++;
System.out.println(sum1);
}else{
sum2++;
}
}
double upage = sum1%10*10;
double downage = sum2%10*10;
System.out.println("30岁以下的比例是:"+upage+"%");
System.out.println("30岁以上的比例是:"+downage+"%");
}
}