java實(shí)現(xiàn)外賣(mài)訂餐系統(tǒng)
本文實(shí)例為大家分享了java實(shí)現(xiàn)外賣(mài)訂餐系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
一、使用技術(shù)
javaSE
二、實(shí)現(xiàn)功能
外賣(mài)訂餐系統(tǒng)
具體要求如下:
使用選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),數(shù)組的知識(shí)實(shí)現(xiàn)一個(gè)外賣(mài)訂餐系統(tǒng)
三、運(yùn)行效果圖
1.訂餐功能

2.查看餐袋

3.簽收訂單

4.刪除訂單

5.點(diǎn)贊

6.退出

分析圖片信息,可以看出我們需要?jiǎng)?chuàng)建一個(gè)菜單類,查看餐帶類和點(diǎn)贊菜單類
1.首先我們創(chuàng)建一個(gè)菜單類,用來(lái)定義菜單的屬性,使用到封裝,構(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.其次,我們?cè)趧?chuàng)建一個(gè)查看餐袋類
public class SeeFood {//查看餐帶
private int num;//序號(hào)
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)建一個(gè)點(diǎn)贊菜單類
public class FabulousFood {//點(diǎn)贊菜單
private int num;//序號(hào)
private String name;
private double price;
private int numfabulous;//點(diǎn)贊序號(hào)
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)建點(diǎn)餐系統(tǒng)實(shí)現(xiàn)其功能,每個(gè)功能都使用方法來(lái)實(shí)現(xiàn)
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class OrderFood {//點(diǎn)餐
static Scanner sc=new Scanner(System.in);
static int date;//送餐時(shí)間
static int number=0;//餐帶序號(hào)
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, "魚(yú)香肉絲", 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, "魚(yú)香肉絲", 32,0,"贊"));
ArrayList<SeeFood> list1 = new ArrayList<>();
System.out.println(" 歡迎使用“外賣(mài)點(diǎn)餐系統(tǒng)”");
System.out.println("*******************************");
orderFood(list,list1,list2);
}
public static void orderFood(ArrayList<Food> list1,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//點(diǎn)餐系統(tǒng)界面
// System.out.println(" 歡迎使用“外賣(mài)點(diǎn)餐系統(tǒng)”");
//System.out.println("*******************************");
System.out.println("1、我要點(diǎn)餐");
System.out.println("2、查看餐帶");
System.out.println("3、簽收訂單");
System.out.println("4、刪除訂單");
System.out.println("5、我要點(diǎn)贊");
System.out.println("6、退出系統(tǒng)");
System.out.println("*******************************");
System.out.println("請(qǐng)選擇:");
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("輸出錯(cuò)誤,請(qǐng)重新輸入!");
orderFood(list1,list2,list3);
}
}
public static void fabulousFood(ArrayList<Food> list,ArrayList<SeeFood> list2,ArrayList<FabulousFood> list3){//點(diǎn)贊
System.out.println("******我要點(diǎn)贊******");
System.out.println("序號(hào) 菜名 單價(jià)");
Iterator<FabulousFood> it = list3.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
System.out.println("請(qǐng)選擇您要點(diǎn)贊的菜品序號(hào):");
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("點(diǎn)贊成功!");
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("請(qǐng)輸入要?jiǎng)h除的訂單序號(hào)");
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("請(qǐng)輸入要簽收的的訂單序號(hào):");
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(" 序號(hào) 訂餐人 餐品信息 送餐日期 " +
" 送餐地址 總金額 訂單狀態(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("請(qǐng)輸入訂餐人的姓名:");
String name=sc.next();
System.out.println("序號(hào) 菜名 單價(jià)");
Iterator<Food> it = list1.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
System.out.println("請(qǐng)輸入您要點(diǎn)的菜品編號(hào)");
int num=sc.nextInt();
System.out.println("請(qǐng)選擇您需要的份數(shù)");
int num1=sc.nextInt();
foodDelilvery();
int num3=date;//送餐時(shí)間
System.out.println("請(qǐng)輸入送餐地址");
String address=sc.next();
System.out.println("訂餐成功!");
number++;//餐帶序號(hào)
System.out.print("您訂的是:");
String food=list1.get(num-1).getName();//菜品
System.out.println(food+" "+num1+"份");
System.out.println("送餐時(shí)間:"+date+"點(diǎn)");
double money=list1.get(num-1).getPrice()*num1;//餐費(fèi)
System.out.println("餐費(fèi):"+money
+"元,送餐費(fèi)6.0元,總計(jì):"+(money+6)+"元");
//姓名,份數(shù),時(shí)間,地址,菜品,餐費(fèi)
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(){//送餐時(shí)間
System.out.println("請(qǐng)輸入送餐的時(shí)間(送餐時(shí)間是10點(diǎn)至20點(diǎn)間整點(diǎn)送餐):");
int num2=sc.nextInt();
date=num2;
if (num2<10||num2>20){
System.out.println("不在送餐時(shí)間!");
foodDelilvery();
}
}
}
1.點(diǎn)餐功能

2.查看餐帶

3.簽收訂單

4.刪除訂單

5.我要點(diǎn)贊

6.退出系統(tǒng)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中@Transactional用法詳細(xì)介紹
這篇文章主要介紹了Spring中@Transactional用法詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-02-02
Java并發(fā)工具之CyclicBarrier使用詳解
這篇文章主要介紹了Java并發(fā)工具之CyclicBarrier使用詳解,CyclicBarrier是一個(gè)同步器,允許一組線程相互之間等待,直到到達(dá)某個(gè)公共屏障點(diǎn)(common barrier point),再繼續(xù)執(zhí)行,需要的朋友可以參考下2023-12-12
Spring Boot連接超時(shí)導(dǎo)致502錯(cuò)誤的實(shí)戰(zhàn)案例
這篇文章主要給大家介紹了關(guān)于Spring Boot連接超時(shí)導(dǎo)致502錯(cuò)誤的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
解析SpringBoot項(xiàng)目開(kāi)發(fā)之Gzip壓縮過(guò)程
這篇文章主要介紹了SpringBoot項(xiàng)目開(kāi)發(fā)之Gzip壓縮過(guò)程,本文給大家分享幾種Gzip壓縮方式,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
idea修改maven模塊名稱還顯示老名稱問(wèn)題解決
本文主要介紹了idea修改maven模塊名稱還顯示老名稱問(wèn)題解決,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
Java生成二維碼的兩種實(shí)現(xiàn)方式(基于Spring?Boot)
這篇文章主要給大家介紹了關(guān)于Java生成二維碼的兩種實(shí)現(xiàn)方式,文中的代碼基于Spring?Boot,本文基于JAVA環(huán)境,以SpringBoot框架為基礎(chǔ)開(kāi)發(fā),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
Java static(靜態(tài)變量)和私有化功能與用法分析
這篇文章主要介紹了Java static(靜態(tài)變量)和私有化功能與用法,結(jié)合具體實(shí)例形式分析了Java static(靜態(tài)變量)和私有化的相關(guān)概念、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-07-07
SpringBoot?使用定時(shí)任務(wù)(SpringTask)的詳細(xì)步驟
Cron?表達(dá)式非常靈活,可以滿足各種定時(shí)任務(wù)的需求,但需要注意的是,Cron?表達(dá)式只能表示固定的時(shí)間點(diǎn),無(wú)法處理復(fù)雜的時(shí)間邏輯,本文給大家介紹SpringBoot?使用定時(shí)任務(wù)(SpringTask)的詳細(xì)步驟,感興趣的朋友一起看看吧2024-02-02

