2018.1.8 任务
作业链接:链接:https://pan.baidu.com/s/1jV6oGRtC3Z1_hyo3ZMEkgQ
提取码:xhyh
package com.work; import java.util.Scanner; /** * 吃货联盟订餐系统 * @author 宇 * 2018.1.8 */ public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("欢迎使用吃货联盟订餐系统"); String choose=null; String names[]=new String[6];//订餐人 String dishmeges[]=new String[6];//餐品信息 String address[]=new String[6];//送餐地址 int states[]=new int[6];//订餐状态 double sumPrices[]=new double[6];//总金额 int times[]=new int[6];//送餐时间 String dishName[]= {"红烧带鱼","鱼香肉丝","时令鲜蔬","宫保鸡丁","肉末茄子"};//菜 double prices[]= {38.0,20.0,10.0,25.0,19.9};//单价 names[0]="张晴"; dishmeges[0]="红烧带鱼 2份"; address[0]="天秤路115号"; states[0]=1; sumPrices[0]=76.0; times[0]=12; names[1]="张晴"; dishmeges[1]="鱼香肉丝 2份"; address[1]="天秤路115号"; states[1]=0; sumPrices[1]=45.0; times[1]=18; do { System.out.println("**********************"); System.out.println("1我要订餐\n2查看餐袋\n3签收订单\n4删除订单\n5我要点赞\n6退出系统"); System.out.println("**********************"); System.out.print("请选择:"); choose=sc.next(); switch(choose) { case "1": System.out.println("***我要订餐***"); for(int i=0;i<names.length;i++) { if(names[i]==null) { System.out.print("请输入您的姓名:"); String name=sc.next(); System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"); for(int j=0;j<dishName.length;j++) { System.out.println(j+1+"\t"+dishName[j]+"\t"+prices[j]); } System.out.print("请选择您要点的菜品编号:"); int chooseDish=sc.nextInt(); System.out.print("请输入您要选择的份数:"); int copies=sc.nextInt(); String dishMeg=dishName[chooseDish-1]+" "+copies+"份"; double sumPrice=prices[chooseDish-1]*copies; double trancost=(sumPrice>=50)?5:0; System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):"); int time= sc.nextInt(); while(time<10||time>20) { System.out.print("您的输入有误!请输入10到20之间的整数:"); time=sc.nextInt(); } System.out.print("请输入送餐地址:"); String addres=sc.next(); System.out.println("订餐成功!"); System.out.println("您订的是"+dishMeg); System.out.println("送餐时间"+time+"点"); System.out.println("餐费:"+sumPrice+"元 "+"送餐费:"+trancost+"元 " + "总计:"+(sumPrice+trancost)+"元"); names[i]=name; dishmeges[i]=dishMeg; address[i]=addres; sumPrices[i]=sumPrice+trancost; times[i]=time; break; } } break; case "2": System.out.println("***查看餐袋***"); System.out.println("序号\t订餐人\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"+dishmeges[i]+"\t"+ times[i]+"点\t"+address[i]+"\t\t"+sumPrices[i]+"元\t"+state); } } break; case "3": System.out.println("***签收订单***"); System.out.print("请选择要签收的订单序号:"); int order=sc.nextInt(); for(int i=0;i<names.length;i++) { if(names[i]!=null&&states[i]==0&&order==i+1) { states[i]=1; System.out.println("订单签收成功!"); }else if(names[i]!=null&&states[i]==1&&order==i+1) { System.out.println("您选择的订单已经完成签收,不能再次签收!"); } } break; case "4": System.out.println("***删除订单***"); System.out.print("请输入要删除的订单序号:"); int deleteOrder=sc.nextInt(); for(int i=0;i<names.length;i++) { if(names[i]!=null && states[i]==1 && deleteOrder==i+1){ for(int j=deleteOrder-1;j<names.length-1;j++){ names[j] = names[j+1]; dishmeges[j] = dishmeges[j+1]; times[j] = times[j+1]; address[j] = address[j+1]; states[j] = states[j+1]; } names[names.length-1] = null; dishmeges[names.length-1] = null; times[names.length-1] = 0; address[names.length-1] = null; states[names.length-1] = 0; System.out.println("删除订单成功!"); break; }else if(names[i]!=null && states[i]==0 && deleteOrder==i+1){ System.out.println("您选择的订单未签收,不能删除!"); break; } } break; case "5": break; case "6": System.out.println("***退出系统***"); System.out.println("欢迎下次光临!"); break; default : System.out.println("您输入有误,请重新输入:"); break; } }while(!"6".equals(choose)); } }
package com.work; import java.util.Scanner; public class Test1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("欢迎使用“吃货联盟订餐系统”"); String choose = "";//菜单选择的变量 //初始化数据 int length = 5; String[] names = new String[length];//订餐人 String[] descs = new String[length];//订单餐品信息 int[] dates =new int[length];//送餐日期 String[] addresses = new String[length];//送餐地址 double[] moneys = new double[length];//总价 boolean[] status = new boolean[length];//订餐状态:true:完成;false未完成 int[] nums = new int[length];//订餐数量 double[] prices = new double[10];//单价 String[] foods = new String[10];//菜品信息 int[] zan = new int[10];//点赞数量 //初始化值 zan[0] = 12;zan[2] = 5;zan[4]=25; foods[0] = "黄焖鸡";foods[1] = "东坡肉";foods[2] = "蛋炒饭";foods[3] = "北京烤鸭";foods[4] = "大肘子"; prices[0] = 16.0;prices[1] = 15.5;prices[2] = 8.0;prices[3] = 49.9;prices[4] = 18.8; names[0] = "陈明"; descs[0] = "黄焖鸡"; nums[0] = 2; moneys[0] = 32.0; dates[0] = 7; addresses[0] = "北大青鸟"; status[0] = true; names[1] = "刘铭辉"; descs[1] = "东坡肉"; nums[1] = 3; moneys[1] = 46.5; dates[1] = 8; addresses[1] = "机房8"; status[1] = false; //键盘输入的值为6退出循环,否则一直执行循环(没有输入case指定的值则重新输入,继续完成操作。) do { System.out.println("******************************"); System.out.println("1、我要订餐 2、查看餐袋 3、签收订单 4、删除订单 5、我要点赞 6、退出系统"); System.out.print("请选择:"); choose = sc.next(); switch (choose) { case "1": System.out.println("****我要订餐****"); int index = -1;//定义要添加的位置下标 for(int i = 0 ;i<length;i++) { if(names[i]==null) { index = i;//找到下标 break; } } if(index<0) { //下标存在开始订餐 System.out.println("当前餐袋已满!!!"); }else { System.out.print("请输入订餐人姓名:"); names[index] = sc.next();//输入的姓名等于要添加的位置下 System.out.println("序号\t菜名\t单价\t点赞数量"); int max = foods.length; for(int i = 0;i<foods.length;i++) {//遍历菜单 if(foods[i]==null) {//找到菜单下有值的最大下标 max = i; break; } System.out.println((i+1)+"\t"+foods[i]+"\t"+prices[i]+"元\t"+zan[i]+"次"); } System.out.print("请选择您要点的菜品编号:"); int id = 0;//判断输入值存不存在在菜单内,不存在菜品编号时提示重新输入,直到存在 do { id = sc.nextInt(); if(id<1||id>max) { System.out.print("不存在此编号菜品,请重新输入:"); } } while (id<1||id>max); descs[index] = foods[id-1];//foods[]下标从0开始所以减1 System.out.print("请选择您需要的份数:"); int num = sc.nextInt(); nums[index] = num;//添加的位置的值等于输入的值 System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐)"); int date = 0;//判断输入送餐时间的值 do { date = sc.nextInt(); if(date<10||date>20) { System.out.print("您的输入有误,请输入10~20间的整数!:"); } } while (date<10||date>20); dates[index] = date;//添加的位置的值等于输入的值 System.out.print("请输入送餐地址:"); addresses[index] = sc.next();//添加的位置的值等于输入的值 double money = prices[id-1]*num;//餐费 System.out.println("订餐成功:"); System.out.println("您订的是:"+foods[id-1]+" "+num+"份"); System.out.println("送餐时间:"+date+"点"); double song = 0.0; if(money<20) {//满20免送餐费 song = 3.0; } moneys[index] = money+song;//总价=餐价+送餐费, 添加的位置的值等于输入的值 System.out.println("餐费:"+money+"。送餐费:"+song+"元,总计:"+(money+song)+"元"); } break; case "2": System.out.println("****查看餐袋****"); System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t订单状态"); for(int i = 0;i<length;i++) { //遍历信息,同时数组为空的值不遍历 if(names[i]==null) { break; } String canpin = descs[i]+" "+nums[i]+"份";//菜品信息包括订单餐品信息和订单数量 String zhuangtai = status[i]?"已完成":"已预订";//判断状态 System.out.println((i+1)+"\t"+names[i]+"\t"+canpin+"\t"+dates[i]+"点\t\t"+addresses[i]+"\t\t"+moneys[i]+"元\t"+zhuangtai); } break; case "3": System.out.println("****签收订单****"); System.out.print("请输入要签收的订单编号:"); boolean isTrue = false; int id = -1; do { id = sc.nextInt(); if(id<1||id>descs.length) {//判断订单是否存在 isTrue = true; }else { if(descs[id-1]==null) {//判断订单是否存在且有值 isTrue = true; }else { isTrue = false; } } if(isTrue) {//单isTrue为true时提示 并继续循环重新输入 System.out.print("不存在此编号的订单信息,请重新输入:"); } } while (isTrue);//单isTrue为false时退出循环 status[id-1] = true;//状态改为已完成 System.out.println("签收完成"); break; case "4": System.out.println("****删除订单****"); System.out.print("请输入要删除的订单编号:"); int big = length; for(int i = 0;i<length;i++) {//找到没有值那行的下标 if(descs[i]==null) { big = i; break; } } int no = 0; do { no = sc.nextInt(); if(no<1||no>big) {//判断输入编号是否存在,存在退出循环,不存在重新输入 System.out.print("不存在此编号菜品,请重新输入:"); } } while (no<1||no>big); if(status[no-1]==false) {//对于没有签收的订单不能删除 System.out.println("订单未完成,不能删除"); }else { //删除位置后的元素依次前移 for(int i=no-1;i<length-1;i++) { names[i] = names[i+1]; descs[i] = descs[i+1]; nums[i] = nums[i+1]; dates[i] = dates[i+1]; addresses[i] = addresses[i+1]; moneys[i] = moneys[i+1]; status[i] = status[i+1]; } //最后一位清空,即初始化值 names[length-1] = null; descs[length-1] = null; nums[length-1] = 0; dates[length-1] = 0; addresses[length-1] = null; moneys[length-1] = 0.0; status[length-1] = false; System.out.println("删除订单成功"); } break; case "5": System.out.println("****我要点赞****"); System.out.println("序号\t菜名\t单价\t点赞数量"); int max = foods.length; for(int i = 0;i<foods.length;i++) {//找到没有值那行的下标 if(foods[i]==null) { max = i; break; } System.out.println((i+1)+"\t"+foods[i]+"\t"+prices[i]+"元\t"+zan[i]+"次"); } System.out.print("请选择您要点赞的菜品编号:"); int bianhao = 0; do { bianhao = sc.nextInt(); if(bianhao<1||bianhao>max) {//判断输入编号是否存在 System.out.print("不存在此编号菜品,请重新输入:"); } } while (bianhao<1||bianhao>max);//存在退出循环 zan[bianhao-1]++;//选择点赞的编号下的赞数+1 System.out.println("点赞成功,谢谢您的反馈"); break; case "6": System.out.println("****退出系统****"); System.out.println("谢谢使用"); break; default: System.out.print("输入错误,请重新选择!"); break; } }while(!"6".equals(choose)); } }