import java.util.Scanner; public class xitong1吃货联盟 { public static void main(String[] args) {/* 一 数据主体:一订单一组数据,人名,菜品,时间,地址,状态,金额; 二点赞一组数组,菜名,单价,点赞数; 二 整体框架:循环(外围do-while 内switch分支结构) 操作:显示主菜单 提示用户输入编号,执行功能 输入0返回 条件: 三 退出系统 1.输入1-5以外的数据 2.执行功能后输入0时输入非0数据 3.输入6 四 订餐 1.找到信息插入的数组的位置 循环先找人名数组空的位置,插入,没找到则提示餐袋已满。等等 2.执行添加订餐数据,显示餐品信息 输入餐品信息,进行下单 输入个人信息 输入姓名 送餐时间(10-20整点之间) 输入有误,重复输入 地址 计算价格 订单金额=单价*份数 送餐费;当金额到50可免6元 总金额=送餐费+订单金额 3.订单信息 餐品信息 订单人 时间 地址 金额 4.保存到找到的空的数组位置 五 查看餐袋(显示订单信息)就是遍历数组 序号 餐品信息 人名 时间 地址 状态(0预定,1完成) 总价 六 签收订单 输入订单序号找到订单(遍历) 1.找到,完成的 2.找到,没完成,签收 3.没找到 七 删除订单 输入订单序号找到订单 1.状态完成的删除,序号后面的元素前移一个完成删除,最后一位清空,(所有的数组) 2.状态未完成的不能删 3.没找到 八 点赞 1.显示可以点赞的餐品列表 2.输入要点赞的序号 3.点赞数加1 4.显示 */ //数据主体 ;一订单一组数据,人名,菜品,时间,地址,状态,金额; String name[]=new String[4]; String dishMegs[]=new String[4];//菜品 int time[]=new int[4]; String address[]=new String[4];//地址 int states[]=new int[4];//状态;0预定,1完成 double sumprices[]=new double[4];//总金额 // 初始化订单信息 // 第一条 name[0]="张三"; dishMegs[0]="臭豆腐"; time[0]=12; address[0]="天上人间88号"; states[0]=0; sumprices[0]=18; //第二条 name[1]="李四"; dishMegs[1]="螺蛳粉 3份"; time[1]=12; address[1]="天上人间66号"; states[1]=1; sumprices[1]=60; //数据主题;点赞一组数组,菜名,单价,点赞数; String dishName[]={"臭豆腐","螺蛳粉","狗不理"}; double prices[]={12.0,20.0,5.0}; int praiseNum[]={100,200,500}; //循环开始 二 整体框架:循环(外围do-while 内switch分支结构) // 操作:显示主菜单 // 提示用户输入编号,执行功能 // 输入0返回 // 循环条件 Scanner sc=new Scanner(System.in); int num=-1;//记录用户输入的数字 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.println("请选择:"); int choose= sc.nextInt(); boolean isadd=false;//为true时找到位置 //功能编号分支switch switch(choose){ case 1: //我要订餐 // 1.找到信息插入的数组的位置 // 循环先找人名数组空的位置,插入,没找到则提示餐袋已满。等等 // 2.执行添加订餐数据,显示餐品信息 // 输入餐品信息,进行下单 // 输入个人信息 输入姓名 // 送餐时间(10-20整点之间) // 输入有误,重复输入 // 地址 // 计算价格 订单金额=单价*份数 送餐费;当金额到50可免6元 总金额=送餐费+订单金额 // 3.订单信息 // 餐品信息 订单人 时间 地址 金额 // 4.保存到找到的空的数组位置 System.out.println("我要订餐"); for(int i=0;i< name.length;i++){ //空位置记录下来 if(name[i]==null){ isadd =true;//找到位置 //插入数据,显示可以选择的餐品信息 System.out.println("序号\t餐品名\t单价\t点赞数"); for(int j=0;j< dishName.length;j++){ String dishNames=dishName[j]; String price=prices[j]+"元"; String praise =praiseNum[j]+"赞"; System.out.println((j+1)+"\t"+dishNames+"\t"+price+"\t"+praise); } //输入餐品信息,进行下单 System.out.println("你选择的餐品序号:"); int xuhao= sc.nextInt(); System.out.println("你选择几份:"); int fen= sc.nextInt(); //定的餐名和份数 String canMing=dishName[xuhao-1]+" "+fen+"份"; System.out.println(""); //输入个人信息 System.out.println("请输入姓名"); String mingZi=sc.next(); System.out.println("请输入时间(10-20之间整点):"); int shiJian = sc.nextInt(); //输错时间,重新输 if(shiJian<10||shiJian>20){ System.out.println("对不起,该时间不送,请输入时间(10-20之间整点):"); shiJian = sc.nextInt(); } System.out.println("请输入地址:"); String diZhi= sc.next(); //计算价格 double jiaGe=prices[xuhao-1]*fen; //送餐费:double jiaGe=prices[xuhao-1]*fen; double song= jiaGe>=50? 0.0:6.0; double zongJia = jiaGe+song; System.out.println("订餐成功"); System.out.println("你订的是"+canMing); System.out.println("订单人"+mingZi); System.out.println("送餐时间"+shiJian); System.out.println("送餐地址"+diZhi); System.out.println("订单价格"+jiaGe+"元,送餐费"+song); System.out.println("总价"+zongJia+"元" ); // 保存到找到的空的数组位置 name[i]=mingZi; dishMegs[i] =canMing; time[i]=shiJian; address[i]=diZhi; sumprices[i]=zongJia; break; } }//没找到,提示信息 if(!isadd){ System.out.println("餐袋满了"); } break; case 2: //查看餐袋显示订单信息)就是遍历数组 // 序号 餐品信息 人名 时间 地址 状态(0预定,1完成) 总价 System.out.println("查看餐袋"); System.out.println("序号\t订单人\t餐品信息\t时间\t地址\t总价\t状态"); //遍历数组 for(int i=0;i< name.length;i++){ if(name[i]!=null){ String shiJian =time[i]+"点"; String zongJia =sumprices[i]+"元"; String state=states[i]==0?"已预订":"已完成"; System.out.println((i+1)+"\t"+name[i]+"\t"+dishMegs[i]+"\t"+shiJian+"\t"+address[i]+"\t"+zongJia+"\t"+state); } } break; case 3: // 签收订单 // 输入订单序号找到订单(遍历) // 1.找到,完成的 // 2.找到,没完成,签收 // 3.没找到 System.out.println("签收订单"); System.out.println("输入订单号:"); int danHao= sc.nextInt(); boolean find=false;//标志找到还是没找到,true未找到 for(int i=0;i< name.length;i++){ if(name[i]!=null&&states[i]==1&&danHao==i+1){//找到订单,完成的 System.out.println("你的订单已签签收"); find=true; break; } else if (name[i]!=null&&states[i]==0&&danHao==i+1) {//找到订单,没完成,签收 states[i]=1; find=true; break; }} if(!find){ System.out.println("该订单不存在");} break; case 4: // 删除订单 输入订单序号找到订单 // 1.状态完成的删除,序号后面的元素前移一个完成删除,最后一位清空,(所有的数组) // 2.状态未完成的不能删 // 3.没找到 System.out.println("删除订单"); System.out.println("输入序号"); int del= sc.nextInt(); int delIndex=-1; boolean delFind=false; for(int i=0;i< name.length;i++){ if(name[i]!=null&&states[i]==1&&del==i+1){ delIndex=i; delFind=true; break; } else if (name[i]!=null&&states[i]==1&&del==i+1) { System.out.println("订单未签收"); delFind=true; break; } }if(!delFind){ System.out.println("未找到该订单"); } //序号后面的元素前移一个完成删除 if( delIndex!=-1){ for(int i=delIndex+1;i< name.length-1;i++){ name[i-1]=name[i]; dishMegs[i-1]=dishMegs[i]; time[i-1]=time[i]; address[i-1]= address[i]; states[i-1]=states[i]; sumprices[i-1]=sumprices[i]; }//最后一位清空 name[name.length-1]=null; dishMegs[dishMegs.length-1]=null; time[time.length-1]=0; address[address.length-1]= null; states[states.length-1]=0; sumprices[sumprices.length-1]=0; System.out.println("已删除订单"); } break; case 5: // 我要点赞 // 1.显示可以点赞的餐品列表 // 2.输入要点赞的序号 // 3.点赞数加1 // 4.显示 System.out.println("我要点赞"); System.out.println("序号\t餐品名\t单价\t点赞数"); for(int j=0;j< dishName.length;j++){ String dishNames=dishName[j]; String price=prices[j]+"元"; String praise =praiseNum[j]+"赞"; System.out.println((j+1)+"\t"+dishNames+"\t"+price+"\t"+praise); } System.out.println("输入要点赞的序号"); int dianZan=sc.nextInt(); praiseNum[dianZan-1]++; System.out.println("点赞成功"); System.out.println(dishName[dianZan-1]+" "+praiseNum[dianZan-1]+"赞 "); break; case 6: // 退出系统 break; default: break; } //当用户输入1-5以外的数据,退出,否则提示输入0返回 if(choose<1||choose>5){ break; }else{ System.out.println("输入0返回:"); num=sc.nextInt(); } }while(num==0); System.out.println("谢谢使用,欢迎下次光临"); } }
吃货大联盟
最新推荐文章于 2024-07-14 22:18:32 发布