吃货联盟订餐系统(全功能全情况) ——By msy

 
 
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函数

猜你喜欢

转载自blog.csdn.net/qq_37455615/article/details/80956807