package OrderSystem_new; public interface Ishow { public void show(); }——接口
package OrderSystem_new; public class Table { public static String foodName[]=new String [100]; public static double foodPrice[]=new double [100]; public static int goods[]=new int [100]; public static String orderPerson[]=new String [100]; public static String orderFood[]=new String [100]; public static String orderNumber[]=new String [100]; public static String orderDate[]=new String [100]; public static String orderAddress[]=new String [100]; public static double orderPrice[]=new double [100]; public static String orderFlag[]=new String [100]; public static String orderFood_orderNumber[]=new String [100]; public static int vip=2; public static int delete=0; public static String name; public void reset_A(){ String reset_foodName[]={"红烧带鱼","鱼香肉丝","时令鲜蔬"}; double reset_foodPrice[]={38.0,20.0,10.0}; int reset_goods[]={0,0,0}; for(int i=0;i<3;i++){ foodName[i]=reset_foodName[i]; foodPrice[i]=reset_foodPrice[i]; goods[i]=reset_goods[i]; } } public void reset_B(){ String reset_orderPerson[]={"张晴","张晴"}; String reset_orderFood[]={"红烧带鱼","鱼香肉丝"}; String reset_orderNumber[]={"2份","2份"}; String reset_orderDate[]={"03日","10日"}; String reset_orderAddress[]={"天成路207号","天成路207号"}; double reset_orderPrice[]={76.0,45.0}; String reset_orderFlag[]={"已完成","已预订"}; for(int i=0;i<2;i++){ orderPerson[i]=reset_orderPerson[i]; orderFood[i]=reset_orderFood[i]; orderNumber[i]=reset_orderNumber[i]; orderDate[i]=reset_orderDate[i]; orderAddress[i]=reset_orderAddress[i]; orderPrice[i]=reset_orderPrice[i]; orderFlag[i]=reset_orderFlag[i]; orderFood_orderNumber[i]=orderFood[i]+" "+orderNumber[i]; } } }——全局变量表单,赋值表单,初始化表单
package OrderSystem_new; import java.util.Scanner; import java.util.Arrays; public class A_orderFood extends Table implements Ishow { public static int number; public static int time; public static String address; public double allfoodOrderPrice=0; public static int No; public static String again; public static String allOrderfood[]=new String[100]; public static int allOrderfoodnumber[]=new int[100]; public static String allOrderfood_allOrderfoodnumber[]=new String[100]; public static int againNumber=0; public static String findallOrderfood_allOrderfoodnumber[]=new String[100]; @Override public void show() { if(delete!=88){ reset_A(); } Scanner Sc = new Scanner(System.in); System.out.println("*****我要订餐*****"); System.out.println("请输入订餐人姓名:"); name=Sc.next(); vip++; orderPerson[vip-1 ]=name; System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数"); for(int i=0;i<3;i++){ System.out.println((i+1)+"\t\t\t"+foodName[i]+"\t\t\t"+foodPrice[i]+"\t\t\t"+goods[i]); } System.out.println("请选择您要点的菜品编号:"); No=Sc.nextInt(); if(No>3||No<1){ do { System.out.println("请输入正确序号(1-3)!"); No=Sc.nextInt(); }while (No>3||No<1); } orderFood[vip-1]=foodName[No-1]; System.out.println("请选择您需要的份数:"); number=Sc.nextInt(); orderNumber[vip-1]=number+"份"; allfoodOrderPrice+=number*foodPrice[No-1]; again(); System.out.println("请输入送餐时间(送餐时间是10点至20点之间整数):"); System.out.println("10-14点送餐费为2元,14-18点送餐费为3.5元,18-20点送餐费为2.5元"); time=Sc.nextInt(); if(time>20||time<10){ do { System.out.println("请输入正确的送餐时间(送餐时间是10点至20点之间整数):"); System.out.println("10-13点送餐费为2元,14-17点送餐费为3.5元,18-20点送餐费为2.5元"); time = Sc.nextInt(); }while(time>20||time<10); } orderDate[vip-1]=time+"时"; double setGold=0; if(time<=13){ setGold=2.0; } if(time>=14&&time<=17){ setGold=3.5; } if(time>17){ setGold=2.5; } System.out.println("请输入送餐地址:"); address=Sc.next(); orderAddress[vip-1]=address; System.out.println("订餐成功!"); System.out.println(""); if(againNumber==0){ allOrderfood_allOrderfoodnumber[0]=foodName[No-1]+number+"份"; System.out.println("您订的是:"+foodName[No-1]+number+"份"); orderFood_orderNumber[vip-1]=orderFood[vip-1]+" "+orderNumber[vip-1]; }else{ System.out.print("您订的是:"); orderFood_orderNumber[vip-1]=""; //System.out.println("您订的是:"+ Arrays.toString(allOrderfood_allOrderfoodnumber)); for(int i=0;i<=againNumber;i++){ System.out.print(allOrderfood_allOrderfoodnumber[i]+" "); orderFood_orderNumber[vip-1]+=allOrderfood_allOrderfoodnumber[i]+" "; } System.out.println(""); } System.out.println("送餐时间是:"+time+"点"); orderPrice[vip-1]=(setGold+allfoodOrderPrice); orderFlag[vip-1]="已预订"; System.out.println("餐费:"+allfoodOrderPrice+",送餐费:"+setGold+",总计:"+(setGold+allfoodOrderPrice)); System.out.println("送餐地址为:"+address); allfoodOrderPrice=0; } public void again(){ do { Scanner Sc = new Scanner(System.in); System.out.println("是否还需要点其他物品"); System.out.println("是请按Y,不需要请按任意键"); again=Sc.next(); if (again .equals( "Y" ) || again.equals("y") ) { System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数"); for(int i=0;i<3;i++){ System.out.println((i+1)+"\t\t\t"+foodName[i]+"\t\t\t"+foodPrice[i]+"\t\t\t"+goods[i]); } System.out.println("请选择您要点的菜品编号:"); No=Sc.nextInt(); System.out.println("请选择您需要的份数:"); number=Sc.nextInt(); allfoodOrderPrice+=number*foodPrice[No-1]; allOrderfood[againNumber]=foodName[No-1]; allOrderfoodnumber[againNumber]=number; allOrderfood_allOrderfoodnumber[0]=foodName[No-1]+number+"份"; allOrderfood_allOrderfoodnumber[againNumber+1]=allOrderfood[againNumber]+" "+allOrderfoodnumber[againNumber]+"份"; againNumber++; } }while (again .equals( "Y" ) || again.equals("y")); } ——功能1——点餐全功能
package OrderSystem_new; public class B_orderingUtil extends A_orderFood implements Ishow{ public void show(){ if (orderFlag[1]!="已完成"&&delete!=88){ reset_B(); } System.out.println("*****查看餐袋*****"); System.out.println("序号\t\t订餐人\t\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t\t订单状态"); for(int i=0;i<vip;i++){ System.out.println((i+1)+"\t\t"+orderPerson[i]+"\t\t"+orderFood_orderNumber[i]+"\t\t"+orderDate[i]+"\t\t"+orderAddress[i]+"\t\t\t"+orderPrice[i]+"\t\t\t"+orderFlag[i]); } } }
——功能2——查看菜单全功能
package OrderSystem_new; import java.util.*; public class C_orderSign extends B_orderingUtil implements Ishow{ public static int numberC; @Override public void show() { if (orderFlag[1]!="已完成"&&delete!=88){ reset_B(); } System.out.println("*****签收订单*****");System.out.println("序号\t\t订餐人\t\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t\t订单状态"); for(int i=0;i<vip;i++){ System.out.println((i+1)+"\t\t"+orderPerson[i]+"\t\t"+orderFood_orderNumber[i]+"\t\t"+orderDate[i]+"\t\t"+orderAddress[i]+"\t\t\t"+orderPrice[i]+"\t\t\t"+orderFlag[i]); } System.out.println("请选择要签收的订单序号:"); System.out.println(""); System.out.println(" 按0返回菜单"); Scanner Sc = new Scanner(System.in); do{ numberC=Sc.nextInt(); if(numberC>=1&&numberC<=vip||numberC==0){ if(numberC>=1&&numberC<=vip) { if (orderFlag[numberC-1].equals("已完成")){ System.out.println("订单已经签收完成,无需再行签收"); break; }else { System.out.println("订单签收成功"); System.out.println("*****订单现状*****"); orderFlag[numberC - 1] = "已完成"; for (int i = 0; i < vip; i++) { System.out.println((i + 1) + "\t\t" + orderPerson[i] + "\t\t" + orderFood_orderNumber[i] + "\t\t" + orderDate[i] + "\t\t" + orderAddress[i] + "\t\t\t" + orderPrice[i] + "\t\t\t" + orderFlag[i]); } System.out.println("订单已签收完成,请按0返回菜单!"); } } if(numberC==0){ Main main =new Main(); main.begain(); } } else{ System.out.println("请输入正确的编号:(1-" + vip + ")"); } }while(numberC<1||numberC>vip); } }——功能3——签收全功能
package OrderSystem_new; import java.util.Scanner; public class D_deleteForm extends C_orderSign implements Ishow { public int numberD=0; public int numberD_new=0; @Override public void show() { if (orderFlag[1] != "已完成" && delete != 88) { reset_B(); } Scanner Sc = new Scanner(System.in); System.out.println("*****删除订单*****"); for (int i = 0; i < vip; i++) { System.out.println((i + 1) + "\t\t" + orderPerson[i] + "\t\t" + orderFood_orderNumber[i]+ "\t\t" + orderDate[i] + "\t\t" + orderAddress[i] + "\t\t\t" + orderPrice[i] + "\t\t\t" + orderFlag[i]); } System.out.println("请输入要删除的订单序号:"); System.out.println(" 0.返回主菜单"); numberD = Sc.nextInt(); if (numberD == 0) { Main main = new Main(); main.begain(); } if (numberD < 0 || numberD > vip) { do { numberD = Sc.nextInt(); System.out.println("请输入正确的编号:(1-" + vip + ")"); } while (numberD < 1 || numberD > vip); } if (numberD >= 1 && numberD <= vip) { if (orderFlag[numberD - 1].equals("已预订")) { System.out.println("您选择的订单未签收。。。。。。"); System.out.println("无法删除!"); } else { for(numberD_new=numberD;numberD_new<=vip-1;numberD_new++) { orderPerson[numberD_new - 1] = orderPerson[numberD_new]; orderFood[numberD_new - 1] = orderFood[numberD_new]; orderNumber[numberD_new - 1] = orderNumber[numberD_new]; orderFood_orderNumber[numberD_new - 1]= orderFood_orderNumber[numberD_new]; orderDate[numberD_new - 1] = orderDate[numberD_new]; orderAddress[numberD_new - 1] = orderAddress[numberD_new]; orderPrice[numberD_new - 1] = orderPrice[numberD_new]; orderFlag[numberD_new - 1] = orderFlag[numberD_new]; } //if (orderPerson[numberD-1]==null){orderPerson[numberD-1]="";} vip--; delete = 88; System.out.println("*****删除完成后订单详情*****"); for (int i = 0; i < vip; i++) { System.out.println((i + 1) + "\t\t" + orderPerson[i] + "\t\t" + orderFood_orderNumber[i]+ "\t\t" + orderDate[i] + "\t\t" + orderAddress[i] + "\t\t\t" + orderPrice[i] + "\t\t\t" + orderFlag[i]); } System.out.println("删除已完成,按0返回主菜单!"); } } } }——功能4——删除全功能
package OrderSystem_new; import java.util.Scanner; public class E_plusGoods extends D_deleteForm implements Ishow { public int numberE; @Override public void show() { if (orderFlag[1] != "已完成" && delete != 88) { reset_B(); reset_A(); } System.out.println("*****我要点赞*****"); System.out.println("序号" + "\t\t" + "菜名" + "\t\t" + "单价" + "\t\t" + "点赞数"); for (int i = 0; i < 3; i++) { System.out.println((i + 1) + "\t\t" + foodName[i] + "\t\t" + foodPrice[i] + "\t\t" + goods[i]); } Scanner Sc = new Scanner(System.in); System.out.println("请输入要点赞的餐品。"); System.out.println(" 0.返回主菜单"); numberE = Sc.nextInt(); if (numberE == 0) { Main main = new Main(); main.begain(); } if (numberE < 1 || numberE > 3) { do { System.out.println("请输入正确的序号:(1-3)"); numberE = Sc.nextInt(); } while (numberE < 1 || numberE > 3); } goods[numberE - 1]++; System.out.println("*****点赞完成*****"); System.out.println("序号" + "\t\t" + "菜名" + "\t\t" + "单价" + "\t\t" + "点赞数"); for (int i = 0; i < 3; i++) { System.out.println((i + 1) + "\t\t" + foodName[i] + "\t\t" + foodPrice[i] + "\t\t" + goods[i]); } System.out.println("点赞已完成,按0返回主菜单!"); delete = 88; } }——功能5——点赞全功能
package OrderSystem_new; import carsystem.Space; import java.util.InputMismatchException; import java.util.Scanner; public class Main { public static int re = -1; public static void main(String[] args) { begain(); } public static void begain() { Table A = new A_orderFood(); Table B = new B_orderingUtil(); Table C = new C_orderSign(); Table D = new D_deleteForm(); Table E = new E_plusGoods(); do { Main.interFace(); try { do { re = -1; Scanner Sc = new Scanner(System.in); int number = Sc.nextInt(); switch (number) { case 1: ((A_orderFood) A).show(); re(); re = Sc.nextInt(); reProblem(); continue; case 2: ((B_orderingUtil) B).show(); re(); re = Sc.nextInt(); reProblem(); continue; case 3: ((C_orderSign) C).show(); re(); re = Sc.nextInt(); reProblem(); continue; case 4: ((D_deleteForm) D).show(); re(); re = Sc.nextInt(); reProblem(); continue; case 5: ((E_plusGoods) E).show(); re(); re = Sc.nextInt(); reProblem(); continue; case 6: break; default: re = 2; System.out.println("请输入1-6的正确数字!"); break; } } while (re == 2); } catch (InputMismatchException e) { System.out.println("请输入1-6的整数"); System.out.println("请重新输入!"); re = 0; }
catch(ArrayIndexOutOfBoundsException e){ System.out.println("对不起,餐袋已满(目前上限为100)~,请删除部分餐品再行添加!"); Table table=new Table(); table.vip--; re=0; }
finally { System.out.println("--------------------------------------------------------------"); } } while (re == 0); } public static void reProblem() { if (re != 0) { do { Scanner Sc = new Scanner(System.in); System.out.println("请输入数字0以返回菜单!"); re = Sc.nextInt(); } while (re != 0); } } public static void interFace() { System.out.println("欢迎使用“吃货联盟订餐系统”"); Space.space(20); System.out.println("1.我要订餐"); System.out.println("2.参看餐带"); System.out.println("3.签收订单"); System.out.println("4.删除订单"); System.out.println("5.我要点赞"); System.out.println("6.退出系统"); Space.space(20); } public static void re() { System.out.println(""); System.out.println(" 0.返回主菜单"); } }
——Main函数