1 package com.eat; 2 3 import java.util.Scanner; 4 5 public class EatSystem { 6 public static void main(String[] args) { 7 Scanner sc = new Scanner(System.in); 8 System.out.println("欢迎使用“吃货联盟订餐系统”"); 9 String choose = "";//菜单选择的变量 10 //初始化数据 11 int length = 5; 12 String[] names = new String[length];//订餐人 13 String[] descs = new String[length];//订单餐品信息 14 int[] dates =new int[length];//送餐日期 15 String[] addresses = new String[length];//送餐地址 16 double[] moneys = new double[length];//总价 17 boolean[] status = new boolean[length];//订餐状态:true:完成;false未完成 18 int[] nums = new int[length];//订餐数量 19 double[] prices = new double[10];//单价 20 String[] foods = new String[10];//菜品信息 21 int[] zan = new int[10];//点赞数量 22 zan[0] = 12;zan[2] = 5;zan[4]=25; 23 foods[0] = "黄焖鸡";foods[1] = "东坡肉";foods[2] = "蛋炒饭";foods[3] = "北京烤鸭";foods[4] = "大肘子"; 24 prices[0] = 16.0;prices[1] = 15.5;prices[2] = 8.0;prices[3] = 49.9;prices[4] = 18.8; 25 //初始化两条信息 26 names[0] = "张三"; 27 descs[0] = "黄焖鸡"; 28 nums[0] = 2; 29 moneys[0] = 32.0; 30 dates[0] = 7; 31 addresses[0] = "北京路18号"; 32 status[0] = true; 33 34 names[1] = "李四"; 35 descs[1] = "东坡肉"; 36 nums[1] = 3; 37 moneys[1] = 46.5; 38 dates[1] = 8; 39 addresses[1] = "北京路18号"; 40 status[1] = false; 41 42 do { 43 System.out.println("******************************"); 44 System.out.println("1、我要订餐 2、查看餐袋 3、签收订单 4、删除订单 5、我要点赞 6、退出系统"); 45 System.out.println("请选择:"); 46 choose = sc.next(); 47 switch (choose) { 48 case "1": 49 System.out.println("****我要订餐****"); 50 int index = -1;//定义要添加的位置下标 51 for(int i = 0 ;i<length;i++) { 52 if(names[i]==null) { 53 index = i;//将第一个为空的数组值i赋值给index; 54 break; 55 } 56 } 57 if(index<0) {//没有找到为空的数组值, 58 System.out.println("当前餐袋已满!!!"); 59 }else { 60 System.out.println("请输入订餐人姓名:"); 61 names[index] = sc.next(); 62 System.out.println("序号 菜名 单价 点赞数量"); 63 int max = foods.length; 64 for(int i = 0;i<foods.length;i++) { 65 if(foods[i]==null) { 66 max = i; 67 break; 68 } 69 System.out.println((i+1)+" "+foods[i]+" "+prices[i]+"元 "+zan[i]+"次"); 70 } 71 System.out.println("请选择您要点的菜品编号:"); 72 int id = 0; 73 do { 74 id = sc.nextInt(); 75 if(id<1||id>max) { 76 System.out.println("不存在此编号菜品,请重新输入:"); 77 } 78 } while (id<1||id>max); 79 descs[index] = foods[id-1]; 80 System.out.println("请选择您需要的份数:"); 81 int num = sc.nextInt(); 82 nums[index] = num; 83 System.out.println("请输入送餐时间(送餐时间是10点至20点间整点送餐)"); 84 int date = 0; 85 do { 86 date = sc.nextInt(); 87 if(date<10||date>20) { 88 System.out.println("您的输入有误,请输入10~20间的整数!:"); 89 } 90 } while (date<10||date>20); 91 dates[index] = date; 92 System.out.println("请输入送餐地址:"); 93 addresses[index] = sc.next(); 94 double money = prices[id-1]*num; 95 System.out.println("订餐成功:"); 96 System.out.println("您订的是:"+foods[id-1]+" "+num+"份"); 97 System.out.println("送餐时间:"+date+"点"); 98 double song = 0.0; 99 if(money<20) { 100 song = 3.0; 101 } 102 moneys[index] = money+song; 103 System.out.println("餐费:"+money+"。送餐费:"+song+"元,总计:"+(money+song)+"元"); 104 } 105 106 break; 107 case "2": 108 System.out.println("****查看餐袋****"); 109 System.out.println("序号 订餐人 餐品信息 送餐日期 送餐地址 总金额 订单状态"); 110 for(int i = 0;i<length;i++) { 111 if(names[i]==null) { 112 break; 113 } 114 String canpin = descs[i]+" "+nums[i]+"份"; 115 String zhuangtai = status[i]?"已完成":"已预订"; 116 System.out.println((i+1)+" "+names[i]+" "+canpin+" "+dates[i]+"点 "+addresses[i]+" "+moneys[i]+"元 "+zhuangtai); 117 } 118 break; 119 case "3": 120 System.out.println("****签收订单****"); 121 System.out.println("请输入要签收的订单编号:"); 122 boolean isTrue = false; 123 int id = -1; 124 do { 125 id = sc.nextInt(); 126 if(id<1||id>descs.length) { 127 isTrue = true; 128 }else { 129 if(descs[id-1]==null) { 130 isTrue = true; 131 }else { 132 isTrue = false; 133 } 134 } 135 136 if(isTrue) { 137 System.out.println("不存在此编号的订单信息,请重新输入:"); 138 } 139 } while (isTrue); 140 status[id-1] = true; 141 System.out.println("签收完成"); 142 break; 143 case "4": 144 System.out.println("****删除订单****"); 145 System.out.println("请输入要删除的订单编号:"); 146 int big = length; 147 for(int i = 0;i<length;i++) { 148 if(descs[i]==null) { 149 big = i; 150 break; 151 } 152 } 153 154 int no = 0; 155 do { 156 no = sc.nextInt(); 157 if(no<1||no>big) { 158 System.out.println("不存在此编号菜品,请重新输入:"); 159 } 160 } while (no<1||no>big); 161 162 if(status[no-1]==false) { 163 System.out.println("订单未完成,不能删除"); 164 }else { 165 for(int i=no-1;i<length-1;i++) { 166 names[i] = names[i+1]; 167 descs[i] = descs[i+1]; 168 nums[i] = nums[i+1]; 169 dates[i] = dates[i+1]; 170 addresses[i] = addresses[i+1]; 171 moneys[i] = moneys[i+1]; 172 status[i] = status[i+1]; 173 } 174 names[length-1] = null; 175 descs[length-1] = null; 176 nums[length-1] = 0; 177 dates[length-1] = 0; 178 addresses[length-1] = null; 179 moneys[length-1] = 0.0; 180 status[length-1] = false; 181 System.out.println("删除订单成功"); 182 } 183 184 break; 185 case "5": 186 System.out.println("****我要点赞****"); 187 System.out.println("序号 菜名 单价 点赞数量"); 188 int max = foods.length; 189 for(int i = 0;i<foods.length;i++) { 190 if(foods[i]==null) { 191 max = i; 192 break; 193 } 194 System.out.println((i+1)+" "+foods[i]+" "+prices[i]+"元 "+zan[i]+"次"); 195 } 196 System.out.println("请选择您要点赞的菜品编号:"); 197 int bianhao = 0; 198 do { 199 bianhao = sc.nextInt(); 200 if(bianhao<1||bianhao>max) { 201 System.out.println("不存在此编号菜品,请重新输入:"); 202 } 203 } while (bianhao<1||bianhao>max); 204 zan[bianhao-1]++; 205 System.out.println("点赞成功,谢谢您的反馈"); 206 break; 207 case "6": 208 System.out.println("****退出系统****"); 209 System.out.println("谢谢使用"); 210 break; 211 212 default: 213 System.out.println("选择错误,请重新选择:"); 214 choose = sc.next(); 215 break; 216 } 217 }while(!"6".equals(choose)); 218 } 219 }
基础知识综合运用