java實現(xiàn)外賣訂餐系統(tǒng)
本文實例為大家分享了java實現(xiàn)外賣訂餐系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、使用技術(shù)
javaSE
二、實現(xiàn)功能
外賣訂餐系統(tǒng)
具體要求如下:
使用選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),數(shù)組的知識實現(xiàn)一個外賣訂餐系統(tǒng)
三、運行效果圖
1.訂餐功能
2.查看餐袋
3.簽收訂單
4.刪除訂單
5.點贊
6.退出
分析圖片信息,可以看出我們需要創(chuàng)建一個菜單類,查看餐帶類和點贊菜單類
1.首先我們創(chuàng)建一個菜單類,用來定義菜單的屬性,使用到封裝,構(gòu)造方法,和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.其次,我們在創(chuàng)建一個查看餐袋類
public class SeeFood {//查看餐帶 private int num;//序號 private String name;//訂餐人 //private String information;//信息 private String food;//菜品 private int num1;//份數(shù) private int date;//送餐日期 private String address;//送餐地址 private double money;//金額 private String state;//訂單狀態(tài) @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.再創(chuàng)建一個點贊菜單類
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.創(chuàng)建點餐系統(tǒng)實現(xiàn)其功能,每個功能都使用方法來實現(xiàn)
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(" 歡迎使用“外賣點餐系統(tǒng)”"); System.out.println("*******************************"); orderFood(list,list1,list2); } public static void orderFood(ArrayList<Food> list1,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//點餐系統(tǒng)界面 // System.out.println(" 歡迎使用“外賣點餐系統(tǒng)”"); //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、退出系統(tǒng)"); 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(" 序號 訂餐人 餐品信息 送餐日期 " + " 送餐地址 總金額 訂單狀態(tài)"); 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("請選擇您需要的份數(shù)"); 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)+"元"); //姓名,份數(shù),時間,地址,菜品,餐費 list2.add(new SeeFood(number,name,food,num1,num3,address,(money+6),"已預(yù)定")); 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.退出系統(tǒng)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java并發(fā)工具之CyclicBarrier使用詳解
這篇文章主要介紹了Java并發(fā)工具之CyclicBarrier使用詳解,CyclicBarrier是一個同步器,允許一組線程相互之間等待,直到到達某個公共屏障點(common barrier point),再繼續(xù)執(zhí)行,需要的朋友可以參考下2023-12-12Spring Boot連接超時導(dǎo)致502錯誤的實戰(zhàn)案例
這篇文章主要給大家介紹了關(guān)于Spring Boot連接超時導(dǎo)致502錯誤的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Java生成二維碼的兩種實現(xiàn)方式(基于Spring?Boot)
這篇文章主要給大家介紹了關(guān)于Java生成二維碼的兩種實現(xiàn)方式,文中的代碼基于Spring?Boot,本文基于JAVA環(huán)境,以SpringBoot框架為基礎(chǔ)開發(fā),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-07-07Java static(靜態(tài)變量)和私有化功能與用法分析
這篇文章主要介紹了Java static(靜態(tài)變量)和私有化功能與用法,結(jié)合具體實例形式分析了Java static(靜態(tài)變量)和私有化的相關(guān)概念、原理、使用方法及操作注意事項,需要的朋友可以參考下2019-07-07SpringBoot?使用定時任務(wù)(SpringTask)的詳細步驟
Cron?表達式非常靈活,可以滿足各種定時任務(wù)的需求,但需要注意的是,Cron?表達式只能表示固定的時間點,無法處理復(fù)雜的時間邏輯,本文給大家介紹SpringBoot?使用定時任務(wù)(SpringTask)的詳細步驟,感興趣的朋友一起看看吧2024-02-02