创建买家类,定义买家类的属性:
class OrderingSet { String[] names = new String[4]; String[] dishMegs = new String[4]; int[] times = new int[4]; String[] address = new String[4]; int[] states = new int[4]; double[] sumPrices = new double[4]; }
创建订餐系统类:
属性:
String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" }; double[] prices = new double[] { 38.0, 20.0, 10.0 }; int[] praiseNums = new int[3]; OrderingSet demo = new OrderingSet();
1.系统主菜单方法:(实现菜单间的切换)
public void startMenu() { boolean flag = true; int num = 1; Scanner input = new Scanner(System.in); System.out.println("欢迎使用“吃货联盟订餐系统”"); do { System.out.println("***************************\n"); 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("***************************\n"); System.out.print("请选择:"); int choose = input.nextInt(); switch (choose) { case 1: System.out.println("***我要订餐***"); add(); break; case 2: System.out.println("***查看餐袋***"); display(); break; case 3: System.out.println("***签收订单***"); sign(); break; case 4: System.out.println("***删除订单***"); delete(); break; case 5: System.out.println("***我要点赞***"); praise(); break; default: System.out.println("***退出系统***"); flag = false; break; } if (flag) { System.out.println("请输入0返回"); num = input.nextInt(); } else { break; } } while (num == 0); }
2.创建我要订餐的方法:
public boolean add() { Scanner input = new Scanner(System.in); boolean isAdd = false; for (int i = 0; i < demo.names.length; i++) { if (demo.names[i] == null) { System.out.print("请输入订餐人姓名:"); String name = input.next(); System.out.println("序号\t菜名\t单价\t点赞数"); for (int j = 0; j < dishNames.length; j++) { String price = prices[j] + "元"; System.out.println((j + 1) + "\t" + dishNames[j] + "\t" + price + "\t" + praiseNums[j]); } System.out.print("请选择你要点菜的编号:"); int chooseDish = input.nextInt(); System.out.print("请输入你要点赞的份数:"); int number = input.nextInt(); System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):"); int time = input.nextInt(); while (time > 20 || time < 10) { System.out.println("你输入有误,请输入10~20之间的整数"); time = input.nextInt(); } System.out.print("请输入送餐地址:"); String address = input.next(); System.out.println("订餐成功!"); String dishMeg = dishNames[chooseDish - 1] + "" + number + "份"; double sumPrice = prices[chooseDish - 1] * number; double yunPrice = (sumPrice >= 50) ? 0 : 5; System.out.println("您订的是" + dishMeg); System.out.println("送餐时间:" + time + "点"); System.out.println("餐费:" + sumPrice + "元,送餐费:" + yunPrice + "元,总计:" + (sumPrice + yunPrice)); demo.names[i] = name; demo.dishMegs[i] = dishMeg; demo.times[i] = time; demo.address[i] = address; demo.sumPrices[i] = sumPrice + yunPrice; isAdd = true; break; } } if (isAdd) { return true; } else { System.out.println("您的餐袋已满"); return false; } }
3.创建查看餐袋的方法:
public void display() { System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态"); for (int i = 0; i < demo.names.length; i++) { if (demo.names[i] != null) { String state = (demo.states[i] == 0) ? "已预订" : "已完成"; String time = demo.times[i] + "点"; String sumPrice = demo.sumPrices[i] + "元"; System.out.println((i + 1) + "\t" + demo.names[i] + "\t" + demo.dishMegs[i] + "\t" + time + "\t" + demo.address[i] + "\t" + sumPrice + "\t" + state); } } }
4.创建签收订单的方法:
public void sign() { Scanner input = new Scanner(System.in); boolean a = true; System.out.print("请选择要签收的订单号:"); int num = input.nextInt(); for (int i = 0; i < demo.names.length; i++) { if (demo.names[i] != null && demo.states[i] == 0 && num == i + 1) { demo.states[i] = 1; System.out.println("订单签收成功!"); a = false; } else if (demo.names[i] != null && demo.states[i] == 1 && num == i + 1) { System.out.println("此订单已经完成签收,不能再次签收!"); a = false; } } if (a) { System.out.println("你选择的订单不存在!"); } }
5.创建删除订单的方法:
public void delete() { Scanner input = new Scanner(System.in); boolean b = true; System.out.print("请输入要删除的订单号:"); int delnum = input.nextInt(); for (int i = 0; i < demo.names.length; i++) { if (demo.names[i] != null && demo.states[i] == 1 && delnum == i + 1) { for (int j = delnum - 1; j < demo.names.length; j++) { demo.names[i] = demo.names[i + 1]; demo.dishMegs[i] = demo.dishMegs[i + 1]; demo.address[i] = demo.address[i + 1]; demo.states[i] = demo.states[i + 1]; demo.sumPrices[i] = demo.sumPrices[i + 1]; demo.times[i] = demo.times[i + 1]; } demo.names[demo.names.length - 1] = null; demo.dishMegs[demo.names.length - 1] = null; demo.address[demo.names.length - 1] = null; demo.states[demo.names.length - 1] = 0; demo.sumPrices[demo.names.length - 1] = 0; demo.times[demo.names.length - 1] = 0; System.out.println("删除订单成功!"); b = false; break; } else if (demo.names[i] != null && demo.states[i] == 0 && delnum == i + 1) { System.out.println("您的订单还未签收,不能删除!"); b = false; break; } } if (b) { System.out.println("你要删除的订单不存在!"); } }
6.创建我要点赞的方法:
public void praise() { Scanner input = new Scanner(System.in); System.out.println("序号\t菜名\t单价"); for (int i = 0; i < dishNames.length; i++) { String price = prices[i] + "元"; String number = (praiseNums[i] > 0) ? praiseNums[i] + "赞" : ""; System.out.println((i + 1) + "\t" + dishNames[i] + "\t" + price + "\t" +number); } System.out.print("请选择你要点赞的编号:"); int chooseNum = input.nextInt(); praiseNums[chooseNum - 1]++; System.out.println("点赞成功"); }
测试:
public static void main(String[] args) { Ordering begin = new Ordering(); begin.startMenu(); } }