卡盟网站排行榜第一名_抖音直播人气购买平台_拼多多助力网站

自助下单地址(拼多多砍价,ks/qq/dy赞等业务):点我进入

问题描述

循环输入商品编号和采购数量java降价金额计算,输入n时结帐,结帐时计算应付金额并找零。

目录

(1) 定义初始变量

序列号:产品编号

num:第一次选择的项目数(无论是哪个项目)

num1, num2, num3:再次选择时三种商品各自的数量

n:商品折扣

price1、price2、price3:三种商品的单价

total:折扣前的总金额(应付金额)

total1,total2,total3:三款商品折扣前的总金额

total_n:折扣后总金额(实际支付金额)

pay:客户支付金额

back:要退回的金额

回答:是/否(继续购买商品)

由于需要键盘输入数据,Scanner sc=new Scanner(System.in); 所以一开始需要导入Scanner包,可以写import java.util.Scanner; 或者直接写 import java.util.*;

import java.util.*;
public class Shopping {
    public static void main(String[] args) {
        int serial,num,num1=0,num2=0,num3=0,n;
        float price1=243,price2=486,price3=315;
        double total,total1=0,total2=0,total3=0,total_n,pay=0,back;
        String answer;
        Scanner sc=new Scanner(System.in);

(二)问题分析

需要实现商品编号和采购数量的循环输入,所以前面部分的整体框架可以看作是一个循环语句。

(一)循环语句的选择 1.for语句

先判断条件是否成立,然后执行循环体,一般适用于循环次数已知的情况。

2. while语句

先判断条件是否成立java降价金额计算,如果成立则执行循环体,一般适用于循环次数未知的情况。

3. do...while 语句

执行一次循环体,然后判断条件是否为真,然后继续执行循环体。

——由此,你可以选择构建一个do...while循环框架

		System.out.println("欢迎光临XX便利店,这位顾客您好");
        System.out.println("这是我们店里的火爆商品n"+"1、T恤  2、网球鞋  3、网球拍");
        System.out.println("*******************************");
        do {
            System.out.println("请输入商品编号");
            serial=sc.nextInt();
            System.out.println("请输入购买数量");
            num=sc.nextInt();
            
            System.out.println("是否要继续购买(建议理性消费)?(y/n)");
            answer=sc.next();
        }while(answer.equals("y"));

(2) 计算应付金额

1、选择不同的货号,对应不同的单价,所以使用了select语句。 这道题可以用if语句或者switch语句来实现。 这里使用了switch语句,路由比较清晰。

2、由于是循环选择语句,每个商品的数量要叠加,所以商品1的数量num1应该写成num1+=num或者num1=num+num1。

3. num是第一次进入循环体时键盘输入的次数,所以可以不用赋初值。 num1 是再次选择产品1 时键盘输入的值,所以要预先赋初值0。 total1 也是如此。 以此类推其他商品。

		switch (serial){
                case 1:
                    num1+=num;
                    total1=price1*num1;
                    System.out.println("T恤¥"+price1+"  数量:"+num1+"  合计:"+total1);
                    break;
                case 2:
                    num2+=num;
                    total2=price2*num2;
                    System.out.println("网球鞋¥"+price2+"  数量:"+num2+"  合计:"+total2);
                    break;
                case 3:
                    num3+=num;
                    total3=price3*num3;
                    System.out.println("网球拍¥"+price3+"  数量:"+num3+"  合计:"+total3);
                    break;
                default:
                    System.out.println("别挑我们店里没有的");
            }

将这段代码插入到上面代码中间的空白处,就完成了前面部分的编写。

(3) 计算实际支付金额

可以使用数理逻辑公式计算折扣金额。

		System.out.println("请选择折扣(1—10)");
        n = sc.nextInt();
        total=total1+total2+total3;
        total_n=total*n*0.1;
        System.out.println("折扣:"+n+"  应付金额:"+total+"  实付金额:"+total_n);

(4) 支付金额的输入和变更

考虑到支付金额小于应付金额,使用while语句进行提醒。

		System.out.println("请输入付款金额");
        pay = sc.nextInt();
        while(pay<total_n) {
            System.out.println("钱不够");
            System.out.println("请再次输入付款金额");
            pay = sc.nextInt();
            break;
        }
        back = pay - total_n;
        System.out.println("应找零:" + back);
        System.out.println("欢迎下次光临");

整合完整的程序,写出来。

(3) 完整代码

import java.util.*;
public class Shopping {
public static void main(String[] args) {
int serial,num,num1=0,num2=0,num3=0,n;
float price1=243,price2=486,price3=315;
double total,total1=0,total2=0,total3=0,total_n,pay=0,back;
String answer;
Scanner sc=new Scanner(System.in);
System.out.println("欢迎光临XX便利店,这位顾客您好");
System.out.println("这是我们店里的火爆商品n"+"1、T恤  2、网球鞋  3、网球拍");
System.out.println("*******************************");
do {
System.out.println("请输入商品编号");
serial=sc.nextInt();
System.out.println("请输入购买数量");
num=sc.nextInt();
switch (serial){
case 1:
num1+=num;
total1=price1*num1;
System.out.println("T恤¥"+price1+"  数量:"+num1+"  合计:"+total1);
break;
case 2:
num2+=num;
total2=price2*num2;
System.out.println("网球鞋¥"+price2+"  数量:"+num2+"  合计:"+total2);
break;
case 3:
num3+=num;
total3=price3*num3;
System.out.println("网球拍¥"+price3+"  数量:"+num3+"  合计:"+total3);
break;
default:
System.out.println("别挑我们店里没有的");
}
System.out.println("是否要继续购买(建议理性消费)?(y/n)");
answer=sc.next();
}while(answer.equals("y"));
System.out.println("请选择折扣(1—10)");
n = sc.nextInt();
total=total1+total2+total3;
total_n=total*n*0.1;
System.out.println("折扣:"+n+"  应付金额:"+total+"  实付金额:"+total_n);
System.out.println("请输入付款金额");
pay = sc.nextInt();
while(pay<total_n) {
System.out.println("钱不够");
System.out.println("请再次输入付款金额");
pay = sc.nextInt();
break;
}
back = pay - total_n;
System.out.println("应找零:" + back);
System.out.println("欢迎下次光临");
}
}

(4) 运行结果