// 菜单信息类
package 对象和集合.吃货联盟订餐系统; public class Food { private String names;//姓名 private String disMigs;//菜品 private int times;//时间 private String addresses;//地址 private Double sumPrices;//总金额 //订单状态 0 已预定 1已完成 private int states; public String getNames() { return names; } public void setNames(String names) { this.names = names; } public String getDisMigs() { return disMigs; } public void setDisMigs(String disMigs) { this.disMigs = disMigs; } public int getTimes() { return times; } public void setTimes(int times) { this.times = times; } public String getAddresses() { return addresses; } public void setAddresses(String addresses) { this.addresses = addresses; } public Double getSumPrices() { return sumPrices; } public void setSumPrices(Double sumPrices) { this.sumPrices = sumPrices; } public int getStates() { return states; } @Override public String toString() { String s=states==0?"未完成":"已完成"; return names + '\t' + disMigs + '\t' + times + "点\t"+ addresses + '\t' + sumPrices +"元\t"+ s; } public void setStates(int states) { this.states = states; } public Food(String names, String disMigs, int times, String addresses, Double sumPrices, int states) { this.names = names; this.disMigs = disMigs; this.times = times; this.addresses = addresses; this.sumPrices = sumPrices; this.states = states; } public Food() { } }
//菜品类
package 对象和集合.吃货联盟订餐系统; public class Order { private String dishNames;//菜品 private double prices;//价格 private int praiseNums;//点赞数 @Override public String toString() { return dishNames + '\t' + prices + "元\t"+ praiseNums+"赞"; } public Order(String dishNames, double prices, int praiseNums) { this.dishNames = dishNames; this.prices = prices; this.praiseNums = praiseNums; } public String getDishNames() { return dishNames; } public void setDishNames(String dishNames) { this.dishNames = dishNames; } public double getPrices() { return prices; } public void setPrices(double prices) { this.prices = prices; } public int getPraiseNums() { return praiseNums; } public void setPraiseNums(int praiseNums) { this.praiseNums = praiseNums; } public Order() { } }
//功能类 or 业务需求
package 对象和集合.吃货联盟订餐系统; import java.util.List; import java.util.Scanner; public class Business { public static Scanner sc = new Scanner(System.in); public static void giveTheThumbsup(List<Order> orders, Scanner sc) { printcanpin(orders); System.out.println("请输入你觉得好吃的菜:"); int xuhao2= sc.nextInt(); while (xuhao2<1||xuhao2>orders.size()-1){ System.out.println("输入错误请重新输入!"); xuhao2= sc.nextInt(); } orders.get(xuhao2-1).setPraiseNums(orders.get(xuhao2-1).getPraiseNums()+1); System.out.println("点赞成功!!"); } public static void delete(List<Food> foods, Scanner sc) { printArrays(foods); boolean falg2=false; System.out.println("请输入你要删除的订单!"); int xuhao1= sc.nextInt(); while (xuhao1<1||xuhao1>foods.size()){ System.out.println("输入有悟请重新输入!"); xuhao1= sc.nextInt(); } //定义一个值用来记住索引 for (int i = 0; i < foods.size(); i++) { if (foods.get(i).getStates()==1&&xuhao1==i+1){ foods.remove(i); System.out.println("删除成功!"); break; }else if (foods.get(i).getStates()==0&&xuhao1==i+1){ System.out.println("该订单未签收不能删除!"); break; } } } public static void signFor(List<Food> foods, Scanner sc) { printArrays(foods); boolean falg1=false; System.out.println("请输入你要签收的订单!"); int xuhao= sc.nextInt(); //定义一个值 用来签收订单 for (int i = 0; i < foods.size(); i++) { if (foods.get(i).getStates()==1&&xuhao==i+1){ falg1=true; System.out.println("该订单已签收!"); break; }else if (foods.get(i).getStates()==0&&xuhao==i+1){ falg1=true; foods.get(i).setStates(1); System.out.println("签收完成!"); break; } } if (!falg1){ System.out.println("输入有误!"); } } public static void orderaMeal(List<Food> foods, List<Order> orders, Scanner sc) { boolean falg=false; System.out.println("------------------------我要订餐---------------------------"); printcanpin(orders); for (int i = 0; i <foods.size() ; i++) { falg=true; System.out.println("请输入你要点的菜品序号:"); int xuhao = sc.nextInt(); while (xuhao>3||xuhao<1){ System.out.println("对不起你输入错误!请重新输入!"); xuhao = sc.nextInt(); } System.out.println("请输入你要点几份"); int number = sc.nextInt(); while (number<=0){ System.out.println("输入有误!!!"); number = sc.nextInt(); } //汇总 String disMag=orders.get(xuhao).getDishNames()+" "+number+"份"; System.out.println("请输入你的姓名"); String name= sc.next(); System.out.println("请输入你的订餐时间:"); int time= sc.nextInt(); while (time>20||time<10){ System.out.println("对不起不在配送时间请重新输入!"); time= sc.nextInt(); } System.out.println("请输入你的配送地址!"); String address= sc.next(); Double Price=orders.get(xuhao-1).getPrices()*number; //配送废 Double psf=Price>=50?0.0:6.0; double sumPrice=Price+psf; Food f3=new Food(name,disMag,time,address,sumPrice,0); foods.add(f3); System.out.println("创建成功!"); break; } if (!falg){ System.out.println("对不起餐袋已满!"); } } public static void printcanpin(List<Order> orders) { System.out.println("序号"+"\t餐品名"+"\t单价"+" \t点赞数"); for (int i = 0; i < orders.size(); i++) { String rs = orders.get(i).getPraiseNums()+"赞"; System.out.println((i+1)+"\t"+ orders.get(i).getDishNames()+"\t"+ orders.get(i).getPrices()+"\t"+rs ); } } public static void printArrays(List<Food> foods) { System.out.println("-----------------------------查看餐袋---------------------------------------"); System.out.println("序号"+"\t订餐人"+"\t餐品名 份数"+"\t时间"+"\t商品送餐地址"+"\t总金额"+"\t订单状态"); for (int i = 0; i < foods.size(); i++) { String rs =foods.get(i).getStates()==0?"未签收":"已签收"; System.out.println((i + 1) + "\t" + foods.get(i).getNames()+"\t"+ foods.get(i).getDisMigs()+"\t" + foods.get(i).getTimes()+"\t"+ foods.get(i).getAddresses()+"\t"+ foods.get(i).getSumPrices()+"\t"+ rs); } } }
//测试类
package 对象和集合.吃货联盟订餐系统; import java.util.*; public class Test { public static final List<Food> foods = new ArrayList<>(); public static final List<Order> orders = new ArrayList<>(); public static void main(String[] args) { //定义数组来储存对象 //初始化 Food f1 = new Food("王小明", "红烧带鱼 2份", 12, "天河路666号", 76.0, 1); Food f2 = new Food("陈大鸿", "凉拌鸡丝 2份", 10, "天河路786号", 22.0, 0); foods.add(f1); foods.add(f2); //初始化 Order o1 = new Order("红烧带鱼", 38.0, 0); Order o2 = new Order("小炒肉", 32.0, 0); Order o3 = new Order("凉半鸡丝", 11.0, 0); //定义数组储存 orders.add(o1); orders.add(o2); orders.add(o3); int num = -1; Scanner sc = new Scanner(System.in); 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("请选择(1-6)"); int comy = sc.nextInt(); if (comy <= 6 && comy >= 1) { switch (comy) { case 1: //展示菜品 Business.orderaMeal(foods, orders, sc); break; case 2: //查看餐袋 Business.printArrays(foods); break; case 3: //签收订单 Business.signFor(foods, sc); break; case 4: //删除订单 Business.delete(foods, sc); break; case 5: //我要点赞 Business.giveTheThumbsup(orders, sc); break; case 6: System.out.println("感谢你的光临!!"); return; } } else { System.out.println("输入错误!"); } System.out.print("输入0返回:"); num = sc.nextInt(); while (num != 0) { System.out.println("输入0返回:!!!!!!!!!"); num = sc.nextInt(); } } while (num == 0); } }