1:项目的实现效果、功能如图所示。
2:项目的源代码如下:
1 import java.util.Scanner; 2 3 /** 4 * 吃货联盟订餐管理系统 5 * 6 */ 7 public class OrderingMsg { 8 public static void main(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 = new Scanner(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;i0 ? 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]++; //赞数加1206 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 }