- 设计一个点餐系统
- 使用二维数组存储 菜单名称和对应的价格
- 1.录如菜单功能
- 用户录入菜品数量 (键盘自己录入数量) 10
- 依次录入每个菜单名称和价格
- 2.展示所有菜单
- 3.开始点餐
- 展示所有菜单
- 如果用户输入菜单存在,则加入自己的预定菜单中
- 如果用户输入的菜单不存在,则提醒该菜品不存在,请重新选择
- 4.结账
- 查看当前用户可用资金,如果资金充足,结账成功,清空当前用户预定菜单列表,用户账户资金减少
- 如果资金不足,提醒用户充值
- 5.充值功能
- 用户输入充值金额,如果大于0,则将输入的金额累加到自己的账户中
- 6.退出功能
public static void main(String[] args) {
//1.录如菜单功能
/*
* 用户录入菜品数量 (键盘自己录入数量) 10
* 依次录入每个菜单名称和价格
*/
Scanner scanner=new Scanner(System.in);
//旧菜单
String array1[][]= {{"1","黄焖鸡","12"},{"2","红烧肉","20"},{"3","大盘鸡","35"},{"4","汉堡","20"}};
//顾客的预定菜单
int[] customer=new int[99];
//用户资金
int balance=1000;
System.out.println("*********java点餐系统*********");
while(true) {
System.out.println();
System.out.println("1.录入菜单");
System.out.println("2.展示菜单");
System.out.println("3.点餐");
System.out.println("4.结账");
System.out.println("5.充值");
System.out.println("6.退出");
System.out.println("****************");
System.out.println("请选择:");
//新菜单
String[][] array2;
int chose=scanner.nextInt();
switch(chose) {
case 1://录入菜单
System.out.println("请输入菜品数量:");
int sum=scanner.nextInt();
array2=new String[array1.length+sum][3];
//将旧菜单复制到新菜单中
for(int i=0;i<array1.length;i++) {
for(int j=0;j<array1[i].length;j++) {
array2[i][j]=array1[i][j];
}
}
//依次录入菜名和价格到新菜单中
for(int i=0;i<sum;i++) {
System.out.println("***请依次输入菜单名称和价格***");
array2[array1.length+i][0]=array1.length+i+1+"";
System.out.println("请输入菜名:");
String name=scanner.next();
array2[array1.length+i][1]=name;
System.out.println("请输入价格:");
String price=scanner.next();
array2[array1.length+i][2]=price;
}
//把新菜单赋值给旧菜单(地址一样,防止如果没有录入的情况下,直接查看新菜单会显示空白)
array1=array2;
System.out.println("录入完成!");
break;
//2.展示所有菜单
case 2:
System.out.println("序号"+"\t"+"\t"+"菜单名称"+"\t"+"\t"+"价格(元)");
for(int i=0;i<array1.length;i++) {
for(int j=0;j<array1[i].length;j++) {
System.out.print(array1[i][j]+"\t"+"\t");
}
System.out.println();
}
break;
//3.开始点餐
/*
* 展示所有菜单
* 如果用户输入菜单存在,则加入自己的预定菜单中
* 如果用户输入的菜单不存在,则提醒该菜品不存在,请重新选择
*/
case 3:
System.out.println("序号"+"\t"+"\t"+"菜单名称"+"\t"+"\t"+"价格(元)");
for(int i=0;i<array1.length;i++) {
//System.out.print(i+1+"\t");
for(int j=0;j<array1[i].length;j++) {
System.out.print(array1[i][j]+"\t"+"\t");
}
System.out.println();
}
for (int i=1;i>0;i++) {
System.out.println("请输入菜单号,输入0结束");
int id = scanner.nextInt();
if (id > 0 && id < array1.length) {
customer[i] = id;
} else if (id==0) {
break;
}
}
break;
//4.结账
/*
* 查看当前用户可用资金,如果资金充足,结账成功,清空当前用户预定菜单列表,用户账户资金减少
* 如果资金不足,提醒用户充值
*/
case 4:
//消费金额
int money=0;
for(int i=0;i<customer.length;i++) {
if(customer[i]>0) {
int j=Integer.valueOf(array1[customer[i]-1][2]);
money+=j;
}
}
System.out.println("顾客您好,您本次消费"+money+"元");
//结账
if(balance-money>=0){
balance-=money;
System.out.println("结账成功,您的余额为:"+balance);
}
else {
System.out.println("结账失败,您的余额不足!请充值");
}
break;
//5.充值功能
/*
* 用户输入充值金额,如果大于0,则将输入的金额累加到自己的账户中
*/
case 5:
System.out.println("请输入充值金额:");
int temp=scanner.nextInt();
if(temp>0) {
balance+=temp;
System.out.println("充值成功,余额为:"+balance);
break;
}else {
System.out.println("充值失败,余额为:"+balance);
break;
}
//6.退出功能
/*
* System.exit(1)
*/
case 6:
System.out.println("退出系统");
System.exit(1);
default:
System.out.println("输入错误,请重新选择");
break;
}
}
}