A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.util.Scanner;
public class Supermarket {
        public static void main(String[] args) {
               
                 /*
                        商品报价单中的项目
                 */
                String slsName = "少林寺酥饼核桃";  //名称
                String slsID = "090115";                        //编号
                double slsPrice = 15.5;                                //单价
                String slsUnit = "个";                                //单位
                int slsNumber = 0;                                                //数量
                double slsMoney = 0;                    //金额
               
                String skName = "皇家特供尚康杂粮牡丹饼(复合营养型)";
                String skID = "090027";
                double skPrice = 14.5;
                String skUnit = "个";
                int skNumber = 0;
                double skMoney = 0;
               
               
                Scanner sc = new Scanner(System.in);
               
                //将用户的一次操作放到循环中循环执行
                while(true) {
                        System.out.println();
                        System.out.println("欢迎光临!");
                        System.out.println("请选择您的操作:1代表开始购物、2代表结账(打印小票)、3直接退出");
                        int choose = sc.nextInt();//用户选择的操作

                        /*
                                1代表开始购物 (用户输入数量的过程)
                                2代表结账(打印小票) (打印小票 票头,票体,票脚)
                                3代表不想买了,直接退出 (break跳出选择)
                        */                       
                        switch(choose) {
                                case 1:
                                        /*
                                                打印商品报价单,并且让用户输入购买的数量
                                        */
                                        System.out.println("                        欢迎光临");
                                        System.out.println();
                                        System.out.println("商品编号        商品名称         商品单价     商品计价单位");
                                        System.out.println(slsID+"       "+slsName+"       "+slsPrice+"           "+slsUnit);
                                        System.out.println(skID+"       "+skName+"       "+skPrice+"           "+skUnit);
                                        System.out.println();
                                       
                                       
                                        System.out.println("请输入您要购买的"+slsName+"数量:");
                                        slsNumber = sc.nextInt();                                // 获取用户 购买 "少林寺酥饼核桃" 的数量
                                        slsMoney = slsPrice * slsNumber;        // 计算用户 购买 "少林寺酥饼核桃" 的总金额

                                        System.out.println("请输入您要购买的"+skName+"数量:");
                                        skNumber = sc.nextInt();                                // 获取用户 购买 "皇家特供尚康杂粮牡丹饼(复合营养型)" 的数量
                                        skMoney = skPrice * skNumber;        // 计算用户 购买 "皇家特供尚康杂粮牡丹饼(复合营养型)" 的总金额
                                        break;
                               
                                case 2://代表结账(打印小票) (打印小票 票头,票体,票脚)

                                        /*
                                                票头
                                        */
                                        System.out.println("            欢  迎  光  临    ");
                                        System.out.println("        品名            售价     数量     金额");
                                        System.out.println("-------------------------------------------------------");
                                       

                                        /*
                                                票体
                                                如果商品名称超过7个字,就截取前7个字+...
                                                使用if替换掉三元运算符的实现
                                        */
                               
                                        if(slsName.length() > 7) {
                                                slsName = slsName.substring(0,7) + "...";
                                        }
                                               
                                        if(skName.length() > 7) {
                                                skName = skName.substring(0,7) + "...";
                                        }
                                       
                                        System.out.println(slsName+"("+slsID+")   "+slsPrice+"  *  "+slsNumber+"   =  "+slsMoney);
                                        System.out.println(skName+"("+skID+")   "+skPrice+"  *  "+skNumber+"   =  "+skMoney);
                                        System.out.println("-------------------------------------------------------");
                                       

                                        /*
                                                票脚
                                                1、汇总:一共购买了几种,一共购买了几件商品,一共购买了多少钱的商品
                                                2、判断总金额和少林寺两种数据是否满足打折条件,满足就打折
                                        */
                                        int totalItemsNumber = 2;                                                //一共购买的商品种类数
                                        int  totalNumber = slsNumber+skNumber; //一共购买的商品件数
                                        double totalMoney = slsMoney+skMoney; //一共花费的商品总金额
                                       
                                        /*
                                                判断总金额和少林寺两种数据是否满足打折条件,满足就打折
                                                如果商品总价超过300元,打95折
                                                如果商品总价超过600元,打9折
                                                如果商品总价超过1000元,总价打8折
                                                如果商品总价超过1000元,并且少林寺酥饼核桃购买超过30份, 则总价打8折后,立减20
                                        */
                                        double afterTotalMoney = totalMoney;//打折后需要付款总额
                                        if(totalMoney>=300&&totalMoney<600) {
                                                afterTotalMoney = totalMoney*0.95;

                                        }else if(totalMoney>=600&&totalMoney<1000) {//满600打9折
                                                afterTotalMoney = totalMoney*0.9;

                                        }else if(totalMoney>=1000) {//满1000打8折
                                                afterTotalMoney = totalMoney*0.8;
                                               
                                        }
                                        //满1000且少林寺超过30,打8折再立减20,修改此处代码
                                        if(totalMoney>=1000&&slsNumber>=30) {
                                                afterTotalMoney = totalMoney*0.8-20;

                                        }
                                       
                                        System.out.println(totalItemsNumber+"项商品   共计:"+totalNumber+"件");
                                        //在打印总金额时,超市显示四舍五入后的整数,不包含小数点,需要用到Math类四舍五入方法,及强制类型转换
                                        afterTotalMoney = Math.round(afterTotalMoney);
                                        System.out.println("总计:"+(int)afterTotalMoney+"元");
                                        System.out.println("您真的太幸运了,本次打折活动为您节省了"+(totalMoney-(int)afterTotalMoney));
                                        System.out.println("凭此小票换取发票");
                                       
                                        //每次结账后,将数据重置
                                        slsNumber = 0;
                                        slsMoney = 0;
                                        skNumber = 0;
                                        skMoney = 0;
                                       
                                        break;
                                case 3:
                                        System.out.println("欢迎下次带着钱来光临!");
                                        //每次退出后,将数据重置
                                        slsNumber = 0;
                                        slsMoney = 0;
                                        skNumber = 0;
                                        skMoney = 0;
                                        break;
                                default:
                                        System.out.println("您输入的选择有误,请重新输入");
                        }
                }
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马