Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng)
本文實(shí)例為大家分享了Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
import java.util.Scanner;
import java.util.*;
public class OrderingMsg {
public static void main(String[] args) {
// 數(shù)據(jù)主體:一組訂單信息
String[] names = new String[4]; // 訂餐人名稱
String[] dishMegs = new String[4]; // 所選菜品
int[] times = new int[4]; // 送餐時(shí)間
String[] addresses = new String[4]; // 送餐地址
int[] states = new int[4]; // 訂單狀態(tài): 0:已預(yù)定 1:已完成
double[] sumPrices = new double[4]; // 總金額
//初始化2個(gè)訂單信息
names[0] = "張晴";
dishMegs[0] = "紅燒帶魚 2份";
times[0] = 12;
addresses[0] = "天成路207號(hào)";
sumPrices[0] = 76.0;
states[0] = 1;
names[1] = "張晴";
dishMegs[1] = "魚香肉絲 2份";
times[1] = 18;
addresses[1] = "天成路207號(hào)";
sumPrices[1] = 20.0;
// 供選擇的菜品信息
String[] dishNames = { "紅燒帶魚", "魚香肉絲", "時(shí)令鮮蔬" }; // 菜品名稱
double[] prices = new double[] { 38.0, 20.0, 10.0 }; // 菜品單價(jià)
int[] praiseNums = new int[3];
Scanner input = new Scanner(System.in);
int num = -1; // 用戶輸入0返回主菜單,否則退出系統(tǒng)
boolean isExit = false; // 標(biāo)志用戶是否退出系統(tǒng): true:退出系統(tǒng)
System.out.println("\n歡迎使用“吃貨聯(lián)盟訂餐系統(tǒng)”");
// 循環(huán):顯示菜單,根據(jù)用戶選擇的數(shù)字執(zhí)行相應(yīng)功能
do {
// 顯示菜單
System.out.println("****************************");
System.out.println("1、我要訂餐");
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.print("請(qǐng)選擇:");
int choose = input.nextInt(); // 記錄用戶選擇的功能編號(hào)
boolean isAdd = false; //記錄是否可以訂餐
boolean isSignFind = false; //找到要簽收的訂單
boolean isDelFind = false; //找到要?jiǎng)h除的訂單
// 根據(jù)用戶選擇的功能編號(hào)執(zhí)行相應(yīng)功能
switch (choose) {
case 1:
// 我要訂餐
System.out.println("***我要訂餐***");
System.out.print("請(qǐng)輸入訂餐人姓名:");
String name=input.next();
isAdd=true;
int j = 0;
for (; j < names.length; j++) {
//todo
if(names[j]==null){
names[j]=name;
break;
}
else {
isAdd=true;
}
}
if(!isAdd){
System.out.println("對(duì)不起,您的餐袋已滿!");
}
else {
System.out.println("序號(hào)"+"\t"+"菜品名"+"\t"+"價(jià)格");
for(int i=0;i<dishNames.length;i++){
System.out.print(i+1+"\t"+dishNames[i]+"\t"+prices[i]+"\n");
}
System.out.print("請(qǐng)輸入菜品編號(hào):");
int dishNum=input.nextInt();
System.out.print("請(qǐng)輸入菜品數(shù)量:");
int dishCnt=input.nextInt();
String dishMeg=dishNames[dishNum-1]+dishCnt+"份";
dishMegs[j]=dishMeg;
System.out.print("請(qǐng)輸入收貨地址:");
String Addr=input.next();
addresses[j]=Addr;
System.out.print("請(qǐng)輸入收貨時(shí)間:");
int time=input.nextInt();
times[j]=time;
double sumPrice=prices[dishNum-1]*dishCnt;
double deliCharge=(sumPrice>50)?0:5;
System.out.println("餐費(fèi):"+sumPrice+"元,送餐費(fèi):"+deliCharge+"元,總計(jì):"+(sumPrice+deliCharge)+"元。");
sumPrices[j]=sumPrice+deliCharge;
}
break;
case 2:
// 查看餐袋
System.out.println("***查看餐袋***");
System.out.println("序號(hào)\t訂餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t總金額\t訂單狀態(tài)");
//todo
for(int i=0;names[i]!=null;i++) {
String sta=(states[i]==1)?"已完成":"已預(yù)定";
System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");
}
break;
case 3:
// 簽收定單
System.out.println("***簽收定單***");
//todo
System.out.println("序號(hào)\t訂餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t總金額\t訂單狀態(tài)");
for(int i=0;names[i]!=null;i++) {
String sta=(states[i]==1)?"已完成":"已預(yù)定";
System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");
}
System.out.print("請(qǐng)選擇要簽收的訂單序號(hào):");
int n=input.nextInt();
states[n-1]=1;
System.out.println("序號(hào)\t訂餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t總金額\t訂單狀態(tài)");
for(int i=0;names[i]!=null;i++) {
String sta=(states[i]==1)?"已完成":"已預(yù)定";
System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");
}
break;
case 4:
// 刪除訂單
System.out.println("***刪除訂單***");
System.out.println("序號(hào)\t訂餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t總金額\t訂單狀態(tài)");
for(int i=0;i<4;i++) {
String sta=(states[i]==1)?"已完成":"已預(yù)定";
System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");
}
System.out.print("請(qǐng)輸入要?jiǎng)h除的訂單序號(hào):");
//todo
int m=input.nextInt();
for(int k=m; k<4;k++)
{
names[k-1]=names[k];
dishMegs[k-1]=dishMegs[k];
times[k-1]=times[k];
addresses[k-1]=addresses[k];
sumPrices[k-1]=sumPrices[k];
states[k-1]=states[k];
}
System.out.println("序號(hào)\t訂餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t總金額\t訂單狀態(tài)");
for(int i=0;i<4;i++) {
String sta=(states[i]==1)?"已完成":"已預(yù)定";
System.out.print((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+sta+"\n");
}
break;
case 5:
// 我要點(diǎn)贊
System.out.println("***我要點(diǎn)贊***");
// 顯示菜品信息
System.out.println("序號(hào)" + "\t" + "菜名"+"\t"+"單價(jià)");
for(int i=0;i<dishNames.length;i++){
System.out.print(i+1+"\t"+dishNames[i]+"\t"+prices[i]+"\t"+praiseNums[i]+"贊"+"\n");
}
//todo
System.out.print("請(qǐng)輸入點(diǎn)贊序號(hào):");
int number=input.nextInt();
praiseNums[number-1]=praiseNums[number-1]+1;
System.out.println("序號(hào)" + "\t" + "菜名"+"\t"+"單價(jià)");
for(int i=0;i<dishNames.length;i++){
System.out.print(i+1+"\t"+dishNames[i]+"\t"+prices[i]+"\t"+praiseNums[i]+"贊"+"\n");
}
break;
case 6:
// 退出系統(tǒng)
isExit = true;
break;
default:
//退出系統(tǒng)
isExit = true;
break;
}
if (!isExit) {
System.out.print("輸入0返回:");
num = input.nextInt();
} else {
break;
}
} while (num == 0);
System.out.println("謝謝使用,歡迎下次光臨!");
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
通過(guò)實(shí)例了解java spring使用構(gòu)造器注入的原因
這篇文章主要介紹了通過(guò)實(shí)例了解spring使用構(gòu)造器注入的原因,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Springcloud seata nacos環(huán)境搭建過(guò)程圖解
這篇文章主要介紹了Springcloud seata nacos環(huán)境搭建過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
淺談Mybatis中resultType為hashmap的情況
這篇文章主要介紹了淺談Mybatis中resultType為hashmap的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
解決idea services窗口不見的一種特殊情況(小白采坑系列)
這篇文章主要介紹了解決idea services窗口不見的一種特殊情況(小白采坑系列),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
Java中DateTimeFormatter的使用方法和案例
在Java中,DateTimeFormatter類用于格式化和解析日期時(shí)間對(duì)象,它是日期時(shí)間格式化的強(qiáng)大而靈活的工具,本文將和大家一起探討Java中DateTimeFormatter的使用方法和案例,需要的朋友可以參考下2023-10-10
java基于ConcurrentHashMap設(shè)計(jì)細(xì)粒度實(shí)現(xiàn)代碼
這篇文章主要介紹了java基于ConcurrentHashMap設(shè)計(jì)細(xì)粒度實(shí)現(xiàn)代碼,通過(guò)ConcurrentHashMap實(shí)現(xiàn)細(xì)粒度,具有一定參考價(jià)值,需要的朋友可以了解。2017-10-10

