吃货联盟订餐系统

吃货联盟订餐系统


该项目采用流程结构,并未涉及面向对象的思想。
初始化订单信息

String dishNames[] = {"红烧带鱼","佛跳墙","时令蔬菜"};
		//定义菜品单价
		double[] prices = {38.0,20.0,10.0};
		//点赞数
		int[] praiseNums = new int[3];
		String names[] = new String[4];    		//订餐人
		String dishMsg[] = new String[4];       //菜品名称+订份数
		int times[] = new int[4];               //送餐时间
		String addresses[] = new String[4];     //送餐地址
		double sumPrices[] = new double[4];     //总金额
		int states[] = new int[4];              //订单状态  0:已预订  1:已完成
		int kuCun[] = {10,10,10};
		int dianZan[] = new int[4];
		//初始化订单信息
		
		names[0] = "张三";
		dishMsg[0] = "红烧带鱼 2份";
		times[0] = 10;
		addresses[0] = "迦勒底223号";
		sumPrices[0] = 76;
		states[0] = 0;
		dianZan[0] = 0;
		
		names[1] = "李四";
		dishMsg[1] = "时令蔬菜 2份";
		times[1] = 10;
		addresses[1] = "休伯利安233号";
		sumPrices[1] = 26;
		states[1] = 0;
		dianZan[1] = 0;

菜单

Scanner input = new Scanner(System.in);
		//搭建项目框架
		int num = -1; //用户输入0返回时的输入数字,num=0时重复显示主菜单。
		System.out.println("欢迎使用||吃货联盟订餐系统||");
		//记录用户是否退出系统的状态:退出true    不退出false
		boolean flag =false;
		//fa 用于判断输入的是否为数字
		do {
			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.print("请选择:");
			boolean fa = true;   
			int choose = 0;
			while(fa) {
				if(!input.hasNextInt()) {
					input = new Scanner(System.in);
					System.out.print("请重新输入:");
				}else {
					choose =input.nextInt();
					if(choose>6 || choose<0) {
						System.out.print("请重新输入:");
					}else {
						fa = false;
					}
				}
			}

功能1:订餐

switch(choose) {
				case 1:
					System.out.println("\n********我要订餐********");
					//index 为true可以订餐
					boolean index = false;
					for(int i =0;i<names.length;i++) {
						if(names[i]==null) {
							index =true;
							System.out.print("请输入订餐人姓名:");
							input.nextLine();
							String name = input.nextLine();
							System.out.println("序号\t菜名\t单价\t赞数\t库存");
							for(int j=0;j<dishNames.length;j++) {
								String praise =(praiseNums[j]==0)?"":praiseNums[j]+"赞"; 
								System.out.println((j+1)+"\t"+dishNames[j]+"\t"+prices[j]+"\t"+praise+"\t"+kuCun[j]);
							}
							System.out.print("请输入您要点的菜品编号:");
							int no = 0;
							fa= true;
							while(fa) {
								if(!input.hasNextInt()) {
									input = new Scanner(System.in);
									System.out.print("输入错误,请重新输入:");
								}else {
									no =input.nextInt();
									fa = false;
								}
							}
							while(no <1 || no >dishNames.length) {
								System.out.print("本店没有该菜品,请重新点菜:");
								no = input.nextInt();
							}
							System.out.print("请输入您需要的份数:");
							int number = 0;
							fa = true;
							while(fa) {
								if(!input.hasNextInt()) {
									input = new Scanner(System.in);
									System.out.print("输入错误,请重新输入:");
								}else {
									number =input.nextInt();
									fa = false;
								}
							}
							while(number <1 || no >dishNames.length) {
								System.out.print("输入错误,请重新输入:");
								number = input.nextInt();
							}
							int kNumber = kuCun[no -1];
							while(number>kuCun[no-1] || kuCun[no -1]==0) {
								System.out.print("该菜品库存不够,请重新点菜:");
								number = input.nextInt();
							}
							kuCun[no -1] = kNumber - number;
							System.out.print("请输入送餐时间(送餐时间只能是10-20之间的整点):");
							int time = 0;
							fa = true;
							while(fa) {
								if(!input.hasNextInt()) {
									input = new Scanner(System.in);
									System.out.print("送餐时间输入有误,请重新输入:");
								}else {
									time =input.nextInt();
									if(time>20 || time<10) {
										System.out.print("送餐时间输入有误,请重新输入:");
									}else {
										fa = false;
									}
								}
							}
							System.out.print("请输入送餐地址:");
							String address = input.next();
							System.out.println("订餐成功!");
							String dishInfo = dishNames[no-1]+" "+no+"份";
							System.out.println("您订的是:"+dishInfo);
							System.out.println("送餐时间:"+time+"点");
							double dishPrice = prices[no -1]*number;
							double peiSong =(dishPrice >50)?0:6;
							double sumPrice = dishPrice + peiSong;
							System.out.println("餐费:"+dishPrice+"元;配送费:"+peiSong+"元;总计:"+sumPrice+"元");
							//把订餐信息添加到订单信息(存入数组)
							names[i] = name;
							addresses[i] = address;
							dishMsg[i] = dishInfo;
							times[i] = time;
							sumPrices[i] = sumPrice;
							//订餐结束,跳出循环
							break;
						}
					}
					if(!index) {
						System.out.println("对不起,您的订单已满!");
					}
				break;

功能2 查看餐袋

case 2:
					System.out.println("\n********查看餐袋********");
					System.out.println("序号\t订餐人\t订餐菜品\t\t配送时间\t配送地址\t\t订餐金额\t订单状态");
					for(int i = 0;i<names.length;i++) {
						if(names[i]!=null) {
							String time = times[i]+"点";
							String state=(states[i]==0)?"已预订":"已完成";
							System.out.println((i+1)+"\t"+names[i]+"\t"+dishMsg[i]+"\t"+time+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+state);
						}
					}
					break;

功能3 签收订单

case 3:
					System.out.println("\n********签收订单********");
					boolean qiZhi = false;
					System.out.print("请输入您要签收订单的编号:");
					int dingDangNo =0;
					fa = true;
					while(fa) {
						if(!input.hasNextInt()) {
							input = new Scanner(System.in);
							System.out.print("订单号输入有误,请重新输入:");
						}else {
							dingDangNo =input.nextInt();
							if(dingDangNo<0 || dingDangNo>names.length) {
								System.out.print("您选择的订单不存在,请重新输入:");
								fa = true;
							}else {
								fa = false;
							}
						}
					}
					for(int i =0;i<names.length;i++) {
						if(names[i]!=null && states[i]==0 && i ==dingDangNo-1) {
						qiZhi = true;
						states[i] =1;
						System.out.println("订单签收成功!");
						break;
						}else if(names[i]!=null && states[i]==1 && i ==dingDangNo-1) {
							qiZhi = true;
							System.out.println("您选择的订单已完成签收,不能再次签收!");
							break;
						}
					}
					break;

功能4 删除订单

case 4:
					System.out.println("\n********删除订单********");
					boolean isDelete = false;
					System.out.print("请输入您要删除订单的编号:");
					int shanChuNo =0;
					fa = true;
					while(fa) {
						if(!input.hasNextInt()) {
							input = new Scanner(System.in);
							System.out.print("订单号输入有误,请重新输入:");
						}else {
							shanChuNo =input.nextInt();
							if(shanChuNo<0 || shanChuNo>names.length) {
								System.out.print("您选择的订单不存在,请重新输入:");
								fa = true;
							}else {
								fa = false;
							}
						}
					}
					for(int i =0;i<names.length;i++) {
						if(names[i]!=null && states[i]==0 && i ==shanChuNo-1) {
							isDelete = true;
							System.out.println("您选择的订单未签收,不能删除!");
							}else if(names[i]!=null && states[i]==1 && i ==shanChuNo-1) {
								isDelete = true;
								//找到删除订单的位置下标,然后把i后面的元素以此往前移动,最后一个元素置空。
								for(int j =i;j<names.length-1;j++) {
									names[j] = names[j+1];
									dishMsg[j] = dishMsg[j+1];
									times[j] = times[j+1];
									addresses[j] = addresses[j+1];
									sumPrices[j] = sumPrices[j+1];
									states[j] = states[j+1];
								}
								//最后一个元素置空
								names[names.length-1] = null;
								dishMsg[names.length-1] = null;
								times[names.length-1] = 0;
								addresses[names.length-1] = null;
								sumPrices[names.length-1] = 0;
								states[names.length-1] = 0;
								System.out.println("删除订单成功!");
							}	
					}
					break;

功能5 点赞

case 5:
					System.out.println("\n********我要点赞********");
					System.out.println("序号\t菜名\t单价");
					for(int j=0;j<dishNames.length;j++) {
						String praise =(praiseNums[j]==0)?"":praiseNums[j]+"赞"; 
						System.out.println((j+1)+"\t"+dishNames[j]+"\t"+prices[j]+"\t"+praise);
					}
					System.out.print("请输入姓名:");
					String na =input.next();
					int qianShou =1;
					System.out.print("请输入您要点赞的菜品序号:");
					int praiseNo =0;
					fa = true;
					boolean fa2 =false;
					while(fa) {
						if(!input.hasNextInt()) {
							input = new Scanner(System.in);
							System.out.print("输入错误,请重新输入:");
						}else {
							praiseNo =input.nextInt();
							fa = false;
						}
					}
					while(praiseNo<1 || praiseNo>dishNames.length) {
						System.out.print("本店没有这个菜品,无法点赞,请重新输入菜品序号!");
						praiseNo = input.nextInt();
					}
					if(na.equals(names[praiseNo-1]) && qianShou==(states[praiseNo-1])) {
						for(int i =0;i<names.length;i++) {
							if(names[i]!=null && dianZan[i]==0 &&i ==praiseNo-1) {
							fa2 = true;
							System.out.println("点赞成功!");
							dianZan[i]=1;
							praiseNums[praiseNo-1]++;
							break;
							}else if(names[i]!=null &&dianZan[i]==1 && i ==praiseNo-1) {
								fa2 = true;
								System.out.println("您选择的订单已完成点赞,不能再次点赞!");
								break;
							}
						}
					}else {
								System.out.println("您未签收该菜品,不能点赞!");
							}
					break;

功能6 退出系统

case 6:
					flag = true;
					//退出系统
					break;
				default :
					flag = true;
					//退出系统
					break;

输入0返回

}
			if(!flag) {   //flag == false
				System.out.print("请输入0返回:");
				fa = true;
				while(fa) {
					if(!input.hasNextInt()) {
						input = new Scanner(System.in);
						System.out.print("输入错误,请重新输入:");
					}else {
						num =input.nextInt();
						fa = false;
					}
				}
			}else {
				break;
				}
		}while(num==0);
		System.out.print("谢谢使用,欢迎下次光临!");
	}
}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值