天天看點

外賣訂餐系統的實作

一、使用技術

javaSE

二、實作功能

外賣訂餐系統

具體要求如下:

使用選擇結構,循環結構,數組的知識實作一個外賣訂餐系統

三、運作效果圖如下:

1.訂餐功能

外賣訂餐系統的實作

2.檢視餐袋

外賣訂餐系統的實作

3.簽收訂單

外賣訂餐系統的實作

4.删除訂單

外賣訂餐系統的實作

5.點贊

外賣訂餐系統的實作

6.退出

外賣訂餐系統的實作

分析圖檔資訊,可以看出我們需要建立一個菜單類,檢視餐帶類和點贊菜單類

1.首先我們建立一個菜單類,用來定義菜單的屬性,使用到封裝,構造方法,和toString方法。

public class Food {//菜單

    @Override
    public String toString() {
        return "Food{" +
                "num=" + num +
                ", name='" + name + '\'' +
                ", price=" + price +
                '}';
    }

    private int num;
    private String name;
    private double price;

    public Food() {
    }

    public Food(int num, String name, double price) {
        this.num = num;
        this.name = name;
        this.price = price;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}
           

2.其次,我們在建立一個檢視餐袋類

public class SeeFood {//檢視餐帶
    private int num;//序号
    private String name;//訂餐人
    //private String information;//資訊
    private String food;//菜品
    private int num1;//份數
    private int date;//送餐日期
    private String address;//送餐位址
    private double money;//金額
    private String state;//訂單狀态

    @Override
    public String toString() {
        return "SeeFood{" +
                "num=" + num +
                ", name='" + name + '\'' +
                ", food='" + food + '\'' +
                ", num1=" + num1 +
                ", date='" + date + '\'' +
                ", address='" + address + '\'' +
                ", money=" + money +
                ", state='" + state + '\'' +
                '}';
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFood() {
        return food;
    }

    public void setFood(String food) {
        this.food = food;
    }

    public int getNum1() {
        return num1;
    }

    public void setNum1(int num1) {
        this.num1 = num1;
    }

    public int getDate() {
        return date;
    }

    public void setDate(int date) {
        this.date = date;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public SeeFood() {
    }

    public SeeFood(int num, String name, String food,
                   int num1, int date, String address,
                   double money, String state) {
        this.num = num;
        this.name = name;
        this.food = food;
        this.num1 = num1;
        this.date = date;
        this.address = address;
        this.money = money;
        this.state = state;
    }
}
           

3.再建立一個點贊菜單類

public class FabulousFood {//點贊菜單
    private int num;//序号
    private String name;
    private double price;
    private int numfabulous;//點贊序号
    private String fabulous;

    @Override
    public String toString() {
        return "FabulousFood{" +
                "num=" + num +
                ", name='" + name + '\'' +
                ", price=" + price +"    "+
                 numfabulous +
                 fabulous + '\'' +
                '}';
    }

    public FabulousFood() {
    }

    public FabulousFood(int num, String name, double price, int numfabulous, String fabulous) {
        this.num = num;
        this.name = name;
        this.price = price;
        this.numfabulous = numfabulous;
        this.fabulous = fabulous;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getNumfabulous() {
        return numfabulous;
    }

    public void setNumfabulous(int numfabulous) {
        this.numfabulous = numfabulous;
    }

    public String getFabulous() {
        return fabulous;
    }

    public void setFabulous(String fabulous) {
        this.fabulous = fabulous;
    }
}

           

4.建立點餐系統實作其功能,每個功能都使用方法來實作

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class OrderFood {//點餐
    static Scanner sc=new Scanner(System.in);
    static int date;//送餐時間
    static int number=0;//餐帶序号
    public static void main(String[] args) {
        ArrayList<Food> list = new ArrayList<>();
        list.add(new Food(1, "紅燒茄子", 24));
        list.add(new Food(2, "紅燒排骨", 36));
        list.add(new Food(3, "魚香肉絲", 32));
        ArrayList<FabulousFood> list2 = new ArrayList<>();
        list2.add(new FabulousFood(1, "紅燒茄子", 24,0,"贊"));
        list2.add(new FabulousFood(2, "紅燒排骨", 36,0,"贊"));
        list2.add(new FabulousFood(3, "魚香肉絲", 32,0,"贊"));
        ArrayList<SeeFood> list1 = new ArrayList<>();
        System.out.println("      歡迎使用“外賣點餐系統”");
        System.out.println("*******************************");
        orderFood(list,list1,list2);
    }

    public static void orderFood(ArrayList<Food> list1,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//點餐系統界面
        // System.out.println("      歡迎使用“外賣點餐系統”");
        //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("請選擇:");
        String num=sc.next();
        if (num.equals("1")){
                orderingFood(list1,list2,list3);
        }else if (num.equals("2")){
            seeFood(list1, list2,list3);
        }else if (num.equals("3")){
            signFor(list1, list2,list3);
        }else if (num.equals("4")){
            deletFood(list1,list2,list3);
        }else if (num.equals("5")){
            fabulousFood(list1,list2,list3);
        }else if (num.equals("6")){
            System.out.println("謝謝使用,歡迎下次光臨!");
            return;
        }else {
            System.out.println("輸出錯誤,請重新輸入!");
            orderFood(list1,list2,list3);
        }
    }

    public static void fabulousFood(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//點贊
        System.out.println("******我要點贊******");
        System.out.println("序号   菜名   單價");
        Iterator<FabulousFood> it = list3.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("請選擇您要點贊的菜品序号:");
        int num=sc.nextInt();
        for (int i = 0; i <list.size() ; i++) {
            if (num==list.get(i).getNum()){
                 list3.get(i).setNumfabulous((list3.get(i).getNumfabulous()+1));
            }
        }
        System.out.println("點贊成功!");
        System.out.println("輸入0傳回");
        int b=sc.nextInt();
        if (b==0){
            orderFood(list,list2,list3);
        }
    }

    public static void deletFood(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//删除訂單
        System.out.println("請輸入要删除的訂單序号");
        int a=sc.nextInt();
        for (int i = 0; i <list2.size() ; i++) {
            if (a==list2.get(i).getNum()){
                list2.remove(list2.get(i));

            }
        }
        System.out.println("删除訂單成功!");
        System.out.println("輸入0傳回");
        int b=sc.nextInt();
        if (b==0){
            orderFood(list,list2,list3);
        }
    }

    public static void signFor(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//簽收訂單
        System.out.println("請輸入要簽收的的訂單序号:");
        int sign=sc.nextInt();
        for (int i = 0; i <list.size() ; i++) {
            if (sign==(list.get(i).getNum())){
                list2.get(i).setState("已簽收");
            }
        }
        System.out.println("訂單簽收成功!");
        System.out.println("輸入0傳回");
        int a=sc.nextInt();
        if (a==0){
            orderFood(list,list2,list3);
        }
    }

    public static void seeFood(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//檢視餐帶
        System.out.println("******檢視餐帶******");
        System.out.println("         序号       訂餐人           餐品資訊       送餐日期  " +
                "     送餐位址        總金額        訂單狀态");
        Iterator<SeeFood> it = list2.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("輸入0傳回");
        int a=sc.nextInt();
        if (a==0){
            orderFood(list,list2,list3);
        }


    }
    public static void orderingFood(ArrayList<Food> list1,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//訂餐
        System.out.println("我要訂餐");
        System.out.println("請輸入訂餐人的姓名:");
        String name=sc.next();
        System.out.println("序号   菜名   單價");
        Iterator<Food> it = list1.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("請輸入您要點的菜品編号");
        int num=sc.nextInt();
        System.out.println("請選擇您需要的份數");
        int num1=sc.nextInt();
        foodDelilvery();
        int num3=date;//送餐時間
        System.out.println("請輸入送餐位址");
        String address=sc.next();
        System.out.println("訂餐成功!");
        number++;//餐帶序号
        System.out.print("您訂的是:");
        String food=list1.get(num-1).getName();//菜品
        System.out.println(food+"  "+num1+"份");
        System.out.println("送餐時間:"+date+"點");
        double money=list1.get(num-1).getPrice()*num1;//餐費
        System.out.println("餐費:"+money
        +"元,送餐費6.0元,總計:"+(money+6)+"元");
        //姓名,份數,時間,位址,菜品,餐費
        list2.add(new SeeFood(number,name,food,num1,num3,address,(money+6),"已預定"));
        System.out.println("輸入0傳回:");
        String input=sc.next();
        if (input.equals("0")){
            orderFood(list1,list2,list3);
        }else {
            System.out.println("歡迎下次光臨");
        }

    }



    static public void foodDelilvery(){//送餐時間
        System.out.println("請輸入送餐的時間(送餐時間是10點至20點間整點送餐):");
        int num2=sc.nextInt();
        date=num2;
        if (num2<10||num2>20){
            System.out.println("不在送餐時間!");
            foodDelilvery();
        }

    }
}
           

1.點餐功能

外賣訂餐系統的實作

2.檢視餐帶

外賣訂餐系統的實作

3.簽收訂單

外賣訂餐系統的實作

4.删除訂單

外賣訂餐系統的實作

5.我要點贊

外賣訂餐系統的實作

6.退出系統

外賣訂餐系統的實作