1 importjava.util.Scanner;2
3 /**
4 * 吃货联盟订餐管理系统5 *6 */
7 public classOrderingMsg {8 public static voidmain(String[] args) {9 //数据主体:一组订单信息
10 String[] names = new String[4]; //订餐人名称
11 String[] dishMegs = new String[4]; //所选菜品
12 int[] times = new int[4]; //送餐时间
13 String[] addresses = new String[4]; //送餐地址
14 int[] states = new int[4]; //订单状态: 0:已预定 1:已完成
15 double[] sumPrices = new double[4]; //总金额16
17 //初始化2个订单信息
18 names[0] = "张晴";19 dishMegs[0] = "红烧带鱼 2份";20 times[0] = 12;21 addresses[0] = "天成路207号";22 sumPrices[0] = 76.0;23 states[0] = 1;24
25 names[1] = "张晴";26 dishMegs[1] = "鱼香肉丝 2份";27 times[1] = 18;28 addresses[1] = "天成路207号";29 sumPrices[1] = 20.0;30
31
32 //供选择的菜品信息
33 String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" }; //菜品名称
34 double[] prices = new double[] { 38.0, 20.0, 10.0 }; //菜品单价
35 int[] praiseNums = new int[3];36
37 Scanner input = newScanner(System.in);38 int num = -1; //用户输入0返回主菜单,否则退出系统
39 boolean isExit = false; //标志用户是否退出系统: true:退出系统
40
41 System.out.println("\n欢迎使用“吃货联盟订餐系统”");42 //循环:显示菜单,根据用户选择的数字执行相应功能
43 do{44 //显示菜单
45 System.out.println("****************************");46 System.out.println("1、我要订餐");47 System.out.println("2、查看餐袋");48 System.out.println("3、签收订单");49 System.out.println("4、删除订单");50 System.out.println("5、我要点赞");51 System.out.println("6、退出系统");52 System.out.println("****************************");53 System.out.print("请选择:");54 int choose = input.nextInt(); //记录用户选择的功能编号
55 boolean isAdd = false; //记录是否可以订餐
56 boolean isSignFind = false; //找到要签收的订单
57 boolean isDelFind = false; //找到要删除的订单58 //根据用户选择的功能编号执行相应功能
59 switch(choose) {60 case 1:61 //我要订餐
62 System.out.println("***我要订餐***");63 for (int j = 0; j < names.length; j++) {64 if(names[j] == null){ //找到第一个空位置,可以添加订单信息
65 isAdd = true; //置标志位,可以订餐
66 System.out.print("请输入订餐人姓名:");67 String name =input.next();68 //显示供选择的菜品信息
69 System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");70 for (int i = 0; i < dishNames.length; i++) {71 String price = prices[i] + "元";72 String priaiseNum = (praiseNums[i]) > 0 ?praiseNums[i]73 + "赞" : "";74
75 System.out.println((i + 1) + "\t" + dishNames[i] + "\t" +price+"\t"+priaiseNum);76 }77 //用户点菜
78 System.out.print("请选择您要点的菜品编号:");79 int chooseDish =input.nextInt();80 System.out.print("请选择您需要的份数:");81 int number =input.nextInt();82 String dishMeg = dishNames[chooseDish - 1]83 +" "+ number + "份";84 double sumPrice = prices[chooseDish - 1] *number;85 //餐费满50元,免送餐费10元
86 double deliCharge = (sumPrice>=50)?0:6;87
88 System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");89 int time =input.nextInt();90 while (time < 10 || time > 20) {91 System.out.print("您的输入有误,请输入10~20间的整数!");92 time =input.nextInt();93 }94 System.out.print("请输入送餐地址:");95 String address =input.next();96
97 //无需添加状态,默认是0,即已预定状态。
98 System.out.println("订餐成功!");99 System.out.println("您订的是:"+dishMeg);100 System.out.println("送餐时间:"+time+"点");101 System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");102
103 //添加数据
104 names[j] =name;105 dishMegs[j] =dishMeg;106 times[j] =time;107 addresses[j] =address;108 sumPrices[j] = sumPrice+deliCharge;109
110 break;111 }112 }113 if(!isAdd){114 System.out.println("对不起,您的餐袋已满!");115 }116 break;117 case 2:118 //查看餐袋
119 System.out.println("***查看餐袋***");120 System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");121 for(int i=0;i
132 System.out.println("***签收定单***");133 System.out.print("请选择要签收的订单序号:");134 int signOrderId =input.nextInt();135 for(int i=0;i
138 if(names[i]!=null && states[i]==0 && signOrderId==i+1){139 states[i] = 1; //将状态值置为已完成
140 System.out.println("订单签收成功!");141 isSignFind = true;142 }else if(names[i]!=null && states[i]==1 && signOrderId==i+1){143 System.out.println("您选择的订单已完成签收,不能再次签收!");144 isSignFind = true;145 }146 }147 //未找到的订单序号:不可签收
148 if(!isSignFind){149 System.out.println("您选择的订单不存在!");150 }151 break;152 case 4:153 //删除订单
154 System.out.println("***删除订单***");155 System.out.print("请输入要删除的订单序号:");156 int delId =input.nextInt();157 for(int i=0;i
160 if(names[i]!=null && states[i]==1 && delId==i+1){161 isDelFind = true;162 //执行删除操作:删除位置后的元素依次前移
163 for(int j=delId-1;j
171 names[names.length-1] = null;172 dishMegs[names.length-1] = null;173 times[names.length-1] = 0;174 addresses[names.length-1] = null;175 states[names.length-1] = 0;176
177 System.out.println("删除订单成功!");178 break;179 }else if(names[i]!=null && states[i]==0 && delId==i+1){180 System.out.println("您选择的订单未签收,不能删除!");181 isDelFind = true;182 break;183 }184 }185
186 //未找到该序号的订单:不能删除
187 if(!isDelFind){188 System.out.println("您要删除的订单不存在!");189 }190 break;191 case 5:192 //我要点赞
193 System.out.println("***我要点赞***");194 //显示菜品信息
195 System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");196 for (int i = 0; i < dishNames.length; i++) {197 String price = prices[i] + "元";198 String priaiseNum = (praiseNums[i]) > 0 ?praiseNums[i]199 + "赞" : "0赞";200
201 System.out.println((i + 1) + "\t" + dishNames[i] + "\t" +price+"\t"+priaiseNum);202 }203 System.out.print("请选择您要点赞的菜品序号:");204 int priaiseNum =input.nextInt();205 praiseNums[priaiseNum-1]++; //赞数加1
206 System.out.println("点赞成功!");207 break;208 case 6:209 //退出系统
210 isExit = true;211 break;212 default:213 //退出系统
214 isExit = true;215 break;216 }217 if (!isExit) {218 System.out.print("输入0返回:");219 num =input.nextInt();220 } else{221 break;222 }223 } while (num == 0);224 System.out.println("谢谢使用,欢迎下次光临!");225 }226 }