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

2.查看餐袋

3.簽收訂單

4.刪除訂單

5.點贊

6.退出

分析圖片信息,可以看出我們需要創(chuàng)建一個菜單類,查看餐帶類和點贊菜單類
1.首先我們創(chuàng)建一個菜單類,用來定義菜單的屬性,使用到封裝,構造方法,和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),"已預定"));
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)

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

