用选择结构实现购物管理系统的部分功能
2014-04-02 21:13
531 查看
一、程序描述
用java编写一段程序:实现购物管理系统中的几项基本功能:登录、选择商品、付款等。二、程序结构
1. 为用户显示登录信息,提醒用户选择进入购物系统2. 为用户显示商品信息,提醒用户选择商品编号和商品数量
3. 为用户显示付款信息,提醒用户进行付款
4. 为用户显示找零金额
三、主要任务
用if-else ;if - else if- else ;switch-case等选择结构实现对不同选项的选择。四、程序源代码及运行结果
程序源代码:
/** * @author GNODIAD * @version V1.00 * @date 2014-04-01 * @描述:选择结构在购物管理系统中的应用 */ public class Shopping2 { public static void main(String [] args){ //显示第一级选择界面,并请用户选择 System.out.println("\t\t欢迎使用我行我素购物管理系统1.0版"); System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); System.out.println("\t\t1.登录系统\n\t\t2.更改管理员密码\n\t\t3.退出"); System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); System.out.println("请输入您的选择:"); //要想接收数据,创建交互对象 java.util.Scanner input = new java.util.Scanner(System.in); int choice = input.nextInt();//定义变量choice接收用户在第一级界面的选择 if(choice == 1){ //显示第二级选择界面,并请用户选择 System.out.println("\t\t欢迎使用我行我素购物管理系统"); System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); System.out.println("\t\t1.客户信息管理\n\t\t2.购物结算\n\t\t3.真情回馈\n\t\t4.返回上一级"); System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * "); }else{ System.out.println("功能正在升级中……"); System.out.println("请输入选项(-1表示退出)");//提示用户选择是否退出系统 int choiceQuit = input.nextInt();//接收用户的选择 if(choiceQuit == -1){ System.out.println("系统即将退出……"); System.exit(1);//退出系统,小括号中的数字代表一个错误信息 } } System.out.println("请输入您的选择:"); int choice2 = input.nextInt();//定义变量choice2接收用户在第二级界面的选择 if(choice2 == 2){ //显示第三级界面 System.out.println("商城现有商品如下:"); System.out.println("\t\t商品编号\t\t商品名称\t\t商品价格\n"); System.out.println("\t\t 1 \t\t\t云南白药\t\t ¥18.00"); System.out.println("\t\t 2 \t\t\t小米手机\t\t ¥1,998.00"); System.out.println("\t\t 3 \t\t\t小黑\t\t\t ¥4,998.00"); System.out.println("\t\t 4 \t\t\t拖鞋\t\t\t ¥25.80"); System.out.println("\t\t 5 \t\t\t酱油\t\t\t ¥5.60"); System.out.println("\t\t 6 \t\t\t汽车模型\t\t ¥350.00"); System.out.println("\t\t 7 \t\t\t坦克模型\t\t ¥400.00"); System.out.println("\t\t 8 \t\t\t玩具枪\t\t\t ¥99.80"); }else{ System.out.println("功能正在升级中……"); System.out.println("请输入选项(-1表示退出)");//选择是否退出系统 int choiceQuit = input.nextInt(); if(choiceQuit == -1){ System.out.println("系统即将退出……"); System.exit(1);//退出系统,小括号中的数字代表一个错误信息 } } System.out.println("请输入购买的产品编号:"); int num = input.nextInt();//定义变量num接收产品编号 System.out.println("请输入购买产品的数量:"); int count = input.nextInt();//定义变量count接收购买数量 /* * >用if-else if-else结构实现选择 if(num == 1 ){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("云南白药\t\t¥18.00\t\t\t" + count +"\t\t\t¥" + (count * 18.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 18.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 18.00 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < count * 18.00 * 0.85){//付款金额少于应付金额的情况 System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 18.00 * 0.85))); System.out.println("欢迎下次光临!"); } }else if(num == 2){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("小米手机\t\t¥1,998.00\t\t" + count +"\t\t\t¥" + (count * 1998.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 1998.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 1998.00 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < count * 1998.00 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 1998.00 * 0.85))); System.out.println("欢迎下次光临!"); } }else if(num == 3){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("小黑\t\t¥4,998.00\t\t" + count +"\t\t\t¥" + (count * 4998.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 4998.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 4998.00 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < count * 4998.00 * 0.85){ System.out.println("对不起!您所付的金额实在太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 4998.00 * 0.85))); System.out.println("欢迎下次光临!"); } }else if(num == 4){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("拖鞋\t\t¥25.80\t\t" + count +"\t\t\t¥" + (count * 25.80) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 25.80)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 25.80 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < count * 25.80 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 25.80 * 0.85))); System.out.println("欢迎下次光临!"); } }else if(num == 5){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("酱油\t\t¥5.60\t\t" + count +"\t\t\t¥" + (count * 5.60) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 5.60)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 5.60 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < count * 5.60 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 5.60 * 0.85))); System.out.println("欢迎下次光临!"); } }else if(num == 6){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("汽车模型\t\t¥350.00\t\t" + count +"\t\t\t¥" + (count * 350.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 350.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 350.00 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < count * 350.00 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 350.00 * 0.85))); System.out.println("欢迎下次光临!"); } }else if(num == 7){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("坦克模型\t\t¥400.00\t\t" + count +"\t\t\t¥" + (count * 400.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 400.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 400.00 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < count * 400.00 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 400.00 * 0.85))); System.out.println("欢迎下次光临!"); } }else if(num == 8){ System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("玩具枪\t\t\t¥99.80\t\t\t" + count +"\t\t\t¥" + (count * 99.80) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 99.80)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 99.80 * 0.85)); System.out.println("请付款:"); int pay = input.nextInt();//pay接收付款金额 if(pay < (count * 99.80 * 0.85)) { System.out.println("对不起!您所付金额太少"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay - (count * 99.80 * 0.85))); System.out.println("欢迎下次光临!"); } }else{ System.out.println("您输入的产品编号不存在!"); } */ //用switch结构实现选择 switch(num){ case 1: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("云南白药\t\t¥18.00\t\t\t" + count +"\t\t\t¥" + (count * 18.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 18.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 18.00 * 0.85)); System.out.println("请付款:"); int pay1 = input.nextInt();//定义变量pay1接收付款金额 if(pay1 < count * 18.00 * 0.85){//付款金额少于应付金额的情况 System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay1 - (count * 18.00 * 0.85))); System.out.println("欢迎下次光临!"); } break; case 2: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("小米手机\t\t¥1,998.00\t\t" + count +"\t\t\t¥" + (count * 1998.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 1998.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 1998.00 * 0.85)); System.out.println("请付款:"); int pay2 = input.nextInt();//定义变量pay2接收付款金额 if(pay2 < count * 1998.00 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay2 - (count * 1998.00 * 0.85))); System.out.println("欢迎下次光临!"); } break; case 3: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("小黑\t\t¥4,998.00\t\t" + count +"\t\t\t¥" + (count * 4998.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 4998.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 4998.00 * 0.85)); System.out.println("请付款:"); int pay3 = input.nextInt();//定义变量pay3接收付款金额 if(pay3 < count * 4998.00 * 0.85){ System.out.println("对不起!您所付的金额实在太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay3 - (count * 4998.00 * 0.85))); System.out.println("欢迎下次光临!"); } break; case 4: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("拖鞋\t\t¥25.80\t\t" + count +"\t\t\t¥" + (count * 25.80) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 25.80)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 25.80 * 0.85)); System.out.println("请付款:"); int pay4 = input.nextInt();//定义变量pay4接收付款金额 if(pay4 < count * 25.80 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay4 - (count * 25.80 * 0.85))); System.out.println("欢迎下次光临!"); } break; case 5: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("酱油\t\t¥5.60\t\t" + count +"\t\t\t¥" + (count * 5.60) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 5.60)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 5.60 * 0.85)); System.out.println("请付款:"); int pay5 = input.nextInt();//定义变量pay5接收付款金额 if(pay5 < count * 5.60 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay5 - (count * 5.60 * 0.85))); System.out.println("欢迎下次光临!"); } break; case 6: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("汽车模型\t\t¥350.00\t\t" + count +"\t\t\t¥" + (count * 350.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 350.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 350.00 * 0.85)); System.out.println("请付款:"); int pay6 = input.nextInt();//定义变量pay6接收付款金额 if(pay6 < count * 350.00 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay6 - (count * 350.00 * 0.85))); System.out.println("欢迎下次光临!"); } break; case 7: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("坦克模型\t\t¥400.00\t\t" + count +"\t\t\t¥" + (count * 400.00) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 400.00)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 400.00 * 0.85)); System.out.println("请付款:"); int pay7 = input.nextInt();//定义变量pay7接收付款金额 if(pay7 < count * 400.00 * 0.85){ System.out.println("对不起!您所付的金额太少了"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay7 - (count * 400.00 * 0.85))); System.out.println("欢迎下次光临!"); } break; case 8: System.out.println("尊敬的用户:小猫"); System.out.println("产品名称\t\t产品单价\t\t购买数量\t\t产品总价"); System.out.println("玩具枪\t\t\t¥99.80\t\t\t" + count +"\t\t\t¥" + (count * 99.80) + "\n"); System.out.println("您购买的产品总价为:¥" + (count * 99.80)); System.out.println("按您当前的积分,您的折扣是:0.85\n您的应付款为:¥" + (count * 99.80 * 0.85)); System.out.println("请付款:"); int pay8 = input.nextInt();//定义变量pay8接收付款金额 if(pay8 < (count * 99.80 * 0.85)) { System.out.println("对不起!您所付金额太少"); }else{ System.out.println("付款成功!"); System.out.println("找零:¥" + (pay8 - (count * 99.80 * 0.85))); System.out.println("欢迎下次光临!"); } break; default: System.out.println("您输入的产品编号不存在!"); break; } } }
运行结果:
运行程序出现第一级界面,如下:如果输入的选择不是 1 则进入下面的界面:
如果输入的选择是1则进入第二级界面如下:
如果输入的选择不是2则进入下面界面:
如果输入的选择是2则进入第三级界面:
输入产品编号和数量之后,进入第四级界面,如下(以购买1件1号产品为例):
付款金额付款成功后显示下面界面:
如果付款金额小于应付金额,显示如下界面中的最后一行话后退出系统:
总结:上面的那么多“如果”、“如果不”,不就是选择结构的关键词if、else么;
如果不出意外的话,if - else if ...else if - else结构和switch - case - default结构是等价的。
五、疑问
1.商品打折后,应付金额和找零金额可能会出现小数(如下图),如何实现只保留两位小数?2.用户在被提示“所付金额少于应付金额”后,能不能不退出系统,接着付款?