您的位置:首页 > 编程语言 > Java开发

用选择结构实现购物管理系统的部分功能

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.用户在被提示“所付金额少于应付金额”后,能不能不退出系统,接着付款?

 

 

 

 

 

 

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息