java数组实现控制台输出的点餐系统(一)

  • 设计一个点餐系统
  • 使用二维数组存储 菜单名称和对应的价格
  • 1.录如菜单功能
    • 用户录入菜品数量 (键盘自己录入数量) 10
    • 依次录入每个菜单名称和价格
  • 2.展示所有菜单
  • 3.开始点餐
    • 展示所有菜单
    • 如果用户输入菜单存在,则加入自己的预定菜单中
    • 如果用户输入的菜单不存在,则提醒该菜品不存在,请重新选择
  • 4.结账
    • 查看当前用户可用资金,如果资金充足,结账成功,清空当前用户预定菜单列表,用户账户资金减少
    • 如果资金不足,提醒用户充值
  • 5.充值功能
    • 用户输入充值金额,如果大于0,则将输入的金额累加到自己的账户中
  • 6.退出功能
    • System.exit(1)
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;
			}

		}

	}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值