package 吃货联盟; import java.util.Scanner; public class ChiHuo { public static void main(String[] args) { //定义数据主体-客户 String[]names=new String[4];//保存姓名 String[]dishMegs=new String[4];//保存菜品和数量 int[]time=new int[4];//保存送餐时间 String[]ads=new String[4];//保存送餐地址 int[]states=new int[4];//保存订单状态 double[]sumPrice=new double[4];//保存订单总金额 int[] praiseNums=new int[3];//点赞数 //定义数据主体--菜品 String[]dishNames={"红烧茄子","糖醋排骨","剁椒鱼头"}; double[]prices={20.0,12.0,88.0}; int[]like=new int[4]; //初始化订单信息 names[0]="王二麻"; dishMegs[0]="红烧茄子 2份"; time[0]=10; ads[0]="南山大道2号"; states[0]=1; sumPrice[0]=80.0; //搭建整体流程框架 Scanner input =new Scanner(System.in); int num=-1;//用户是否输入0返回,num=0重复主菜单, System.out.println("欢迎使用“吃货联盟订餐系统”"); boolean flag=false;//记录退出系统 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("请选择:"); int choose=input.nextInt(); switch (choose) { case 1: System.out.println("\n****************我要订餐***************"); boolean isAdd=false;//检查餐袋是否已满 for(int i=0;i<names.length;i++){ if(names[i]==null){ isAdd=true; System.out.print("请输入订餐人姓名"); String name = input.next(); 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("请输入您要点的菜品编号:"); int no=input.nextInt(); while (no<1||no>dishNames.length){ System.out.print("本店没有这个菜品,请重新选择"); no = input.nextInt(); } //点菜份分数 System.out.print("请输入您需要的份数:"); int number = input.nextInt(); //送餐时间判断 System.out.println("请输入送餐时间(送餐时间只能是10-20之间的整点):"); int times=input.nextInt(); while (times<10||times>20){ System.out.println("您的输入有误,请输入10-20之间的整数"); times = input.nextInt(); } //送餐地址 System.out.print("请输入送餐地址:"); String add = input.next(); //添加到订单信息 String dishInfo = dishNames[no-1]+""+number+"份"; System.out.println("订餐成功!"); System.out.println("您订的是:"+dishInfo);//下标-1 System.out.print("送餐时间:"+times+"点"); //餐费,配送费,总金额 double dishPrice =prices[no-1]*number; double peiSong = dishPrice>50?0:6; double sumPrices = dishPrice+peiSong; System.out.println("\n餐费:"+dishPrice+"元:配送费"+peiSong+"元:总计:"+sumPrices+"元"); //信息添加到数组, names[i] = name; dishMegs[i] = dishInfo; time[i] = times; ads[i]=add; sumPrice[i]=sumPrices; break;//订餐结束,跳出循环 } } if(!isAdd){ System.out.println("对不起,您的餐袋已满!"); } break; 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 state=(states[i]==0)?"已预定":"已完成"; System.out.println((i+1)+"\t"+names[i] + "\t" + dishMegs[i] + "\t" + time[i]+"点" + "\t" + ads[i] + "\t" + sumPrice[i] + "\t" + state); } } break; case 3: 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 state=(states[i]==0)?"已预定":"已完成"; System.out.println((i+1)+"\t"+names[i] + "\t\t" + dishMegs[i] + "\t" + time[i]+"点" + "\t" + ads[i] + "\t" + sumPrice[i] + "\t" + state); } } //条件判断精准 boolean isSign = false; System.out.print("请输入您要签收的订单编号:"); int signNo = input.nextInt(); for(int i = 0;i<names.length;i++){ if(names[i]!=null && states[i] == 0 && i==signNo-1){ isSign = true; //条件满足,能签收 states[i]=1; System.out.println("订单签收成功"); }else if(names[i]!=null && states[i] ==1 && i ==signNo-1){ //订单存在,状态完成。不可签收 isSign = true; System.out.println("您选择的订单已经完成签收,不能再次签收!"); } } if(!isSign){ System.out.println("您选择的订单不存在!"); } break; case 4: 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 state=(states[i]==0)?"已预定":"已完成"; System.out.println((i+1)+"\t"+names[i] + "\t\t" + dishMegs[i] + "\t" + time[i]+"点" + "\t" + ads[i] + "\t" + sumPrice[i] + "\t" + state); } } //条件 boolean delete = false; System.out.print("请输入您要删除的订单编号:"); int deleteNo = input.nextInt(); for(int i = 0;i<names.length;i++){ if(names[i]!=null && states[i] == 0 && i==deleteNo-1){ delete = true; //订单存在,状态未完成。不可删除 System.out.println("您选择的订单未完成,不能删除"); }else if(names[i]!=null && states[i] ==1 && i ==deleteNo-1){ //条件满足,能删除 delete = true; //数组下标提前1,最后元素设为空,为空可以下新订单,给数组重新赋值 for (int j=0;j<names.length-1;j++){ names[j] = names[j+1]; dishMegs[j] = dishMegs[j+1]; time[j] = time[j+1]; ads[j] = ads[j+1]; sumPrice[j] = sumPrice[j+1]; states[j] = states[j+1]; } //最后一个元素设为空 names[names.length-1] = null; dishMegs[names.length-1] = null; time[names.length-1] = 0; ads[names.length-1] = null; sumPrice[names.length-1] = 0; states[names.length-1] = 0; System.out.println("删除订单成功!"); } } if(!delete){ System.out.println("您选择的订单不存在!"); } break; 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("请输入您要点赞的菜品编号:"); int praiseNo=input.nextInt(); while (praiseNo<1||praiseNo>dishNames.length){ System.out.print("本店没有这个菜品,无法点赞!请重新输入菜品序号"); praiseNo = input.nextInt(); } //* praiseNums[praiseNo-1]++; break; case 6: System.out.println("感谢使用,欢迎再次光临"); break; default: flag = true; break; } if(!flag) {//!flag等同于flag==false System.out.print("请输入0返回:"); num = input.nextInt(); }else { break; } }while (num==6); System.out.println("谢谢使用,欢迎下次光临"); } }
数组——吃货联盟
最新推荐文章于 2024-07-14 14:59:27 发布