今天給大家一個小的專案:吃貨聯盟訂餐系統,專案功能也很簡單:只是模擬日常的訂餐流程呦,所以有錯誤以及功能不完善的地方大家多多包涵 O(∩_∩)O哈哈~
首先,先展示下代碼功能,代碼也不是很多,就200多行!主要功能如下:




首先進入系統后,是選單的展示:

用戶輸入選擇,并對輸入的選擇進行判斷,如果有誤,就退出系統!

用戶輸入1后,進行點餐,并輸入點餐人姓名,以及點的份數和時間、地址,會自動計算出費用回傳給用戶,

用戶輸入2后,可以查看餐袋,發現自己點的訂單已在餐袋中

用戶輸入3后,可以簽收訂單,如果訂單是已預訂狀態,可以進行簽收;如果是已完成狀態,不能簽收訂單;否則提示用戶找不到訂單資訊,不能簽收!

用戶輸入4后,可以對訂單進行洗掉,如果訂單是已預訂狀態,不能洗掉;如果是已完成狀態,可以洗掉;否則提示用戶找不到訂單,不能洗掉!

用戶輸入5后,可以進行點贊,輸入點贊的序號,進行點贊,回傳后可以再次進入進行查看點贊數!!!

用戶輸入6后,退出系統!!!
package cn.kgc.sg.Demo;
import java.util.*;
public class DingCanSystem {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String names[] = new String[4]; //姓名
String dishMsg[] = new String[4]; //菜品資訊
int times[] = new int[4]; //送餐時間
String address[] = new String[4]; //送餐地址
int states[] =new int[4]; //訂單狀態 0:已完成 1:已預訂
double sumPrices[] = new double[4]; //訂單總金額
names[0] = "孫港";
dishMsg[0] = "玉米";
times[0] = 12;
address[0] = "柏悅瀾庭";
states[0] = 1;
sumPrices[0] = 100;
names[1] = "王玥";
dishMsg[1] = "大米";
times[1] = 14;
address[1] = "中博校區";
states[1] = 0;
sumPrices[1] = 200;
System.out.println("歡迎光臨吃貨聯盟訂餐系統》》》》》》》");
System.out.println("**************************");
/**
* 定義并初始化選單資訊
*/
String dishMeg[] = {"西紅柿炒雞蛋","火鍋牛肉","泡椒鳳爪"};
double prices[] ={58,99,36};
int [] zan =new int[4];
boolean isExit = false; //false 不退出系統
int nums = -4; //隨意賦值
do{
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.print("請輸入您的選擇: ");
int choose = sc.nextInt();
boolean isAdd =false; //false 是不能點餐
boolean isFind = false ;//false 不能找到訂單編號
boolean isDel = false; //false 不能洗掉
switch(choose){
case 1:
System.out.println("*****我要訂餐*****");
for(int i = 0;i<names.length;i++){
if(names[i] == null){
isAdd = true;
System.out.print("請輸入訂餐人的姓名:");
String name = sc.next();
//遍歷選單資訊
System.out.println("序號"+"\t\t"+"選單"+"\t\t"+"單價"+"\t\t"+"點贊數");
for(int j = 0 ;j<dishMeg.length;j++){
String yuan = prices[j]+"元";
System.out.println((j+1)+"\t\t"+dishMeg[j]+"\t\t"+yuan+"\t\t"+zan[j]);
}
System.out.print("請輸入訂餐的編號:");
int bianhao = sc.nextInt();
String dishName = dishMeg[bianhao-1];
System.out.print("請輸入訂餐的份數:");
int fen = sc.nextInt();
double p=prices[bianhao-1];
double sumPrice = p*fen;
int ptf = sumPrice>50 ? 0 : 6;
System.out.print("請輸入訂餐時間(營業時間在10-20點):");
int time = sc.nextInt();
while(time<10 || time>20){
System.out.print("請在營業時間內訂餐(10-20點),請重新輸入:");
time = sc.nextInt();
}
System.out.print("請輸入送餐地址:");
String dizhi = sc.next();
System.out.println(".............訂餐成功...........");
System.out.println("您訂的是:"+dishName+" ,"+fen+"份!");
System.out.println("餐費是:"+sumPrice+",送餐費是:"+ptf+"元,合計:"+(sumPrice+ptf)+"元!");
//將對應的值存到陣列中
names[i]=name;
times[i]=time;
address[i]=dizhi;
dishMsg[i]= dishName; //dishMeg
sumPrices[i]=(sumPrice+ptf);
break;
}
}
if(!isAdd){
System.out.println("sorry,餐袋已滿,不能點餐!!!");
}
break;
case 2:
System.out.println("*****查看餐袋*****");
System.out.println("序號"+"\t\t"+"訂餐人"+"\t\t"+"菜品資訊"+"\t\t"+"送餐日期"+"\t\t"+
"送餐地址"+"\t\t"+"總金額"+"\t\t"+"訂單狀態");
for(int i=0;i<names.length;i++){
if(names[i] != null){
String time = times[i]+"時";
String price = sumPrices[i]+"元";
String state=states[i]== 1 ? "已完成" : "已預訂";
System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMsg[i]+"\t\t"+time+
"\t\t"+address[i]+"\t\t"+price+"\t\t"+state);
}
}
break;
case 3:
System.out.println("***********簽收訂單**********");
System.out.print("請選擇要簽收的編號:");
int orderId = sc.nextInt();
for(int i=0;i<names.length;i++){
if(names[i] != null && states[i]==0 && orderId == i+1){
//可以簽收
states[i]=1;
isFind = true;
System.out.println("訂單簽收成功!");
break;
}else if(names[i] != null && states[i]==1 && orderId == i+1){
//不能簽收
isFind = true;
System.out.println("訂單不能簽收!");
break;
}
}
if(!isFind){
System.out.println("輸入的訂單號有誤!!!");
}
break;
case 4:
System.out.println("*********洗掉訂單*********");
System.out.print("請輸入洗掉的訂單編號:");
int delId = sc.nextInt();
//回圈遍歷陣列
for(int i = 0;i<names.length;i++){
//判斷是否可洗掉 存在的狀態
if(names[i] != null && states[i]==1 && delId==i+1){
//能洗掉
isDel = true;
for(int j=delId-1;j<names.length-1;j++){
names[j]=names[j+1];
times[j]=times[j+1];
dishMsg[j]=dishMsg[j+1];
address[j]=address[j+1];
sumPrices[j]=sumPrices[j+1];
states[j]=states[j+1];
}
System.out.println("已完成的訂單已被洗掉!!!");
//將最后一個位置置空
names[names.length-1] = null;
times[names.length-1] = 0;
dishMsg[names.length-1] = null;
address[names.length-1] = null;
sumPrices[names.length-1] = 0;
states[names.length-1] = 0;
break;
}else if(names[i] != null && states[i]==0 && delId==i+1) {
//不能洗掉
isDel = true;
System.out.println("訂單未完成,不能洗掉!!!");
}
}
if(!isDel){
System.out.println("您輸入的訂單號有誤!!!");
}
break;
case 5:
System.out.println("******我要點贊******");
System.out.println("序號"+"\t\t"+"選單"+"\t\t"+"單價"+"\t\t"+"點贊數");
for(int j = 0 ;j<dishMeg.length;j++){
String yuan = prices[j]+"元";
System.out.println((j+1)+"\t\t"+dishMeg[j]+"\t\t"+yuan+"\t\t"+zan[j]);
}
System.out.print("請輸入您要點贊的序號:");
int num = sc.nextInt();
zan[num-1]=zan[num-1]+999;
System.out.println("恭喜您點贊成功!!!");
break;
case 6:
isExit = true;
break;
default:
isExit = true;
}
if(!isExit){
System.out.print("輸入0回傳!(請再次輸入):");
nums = sc.nextInt();
}else{
break;
}
}while(nums == 0);
System.out.println("成功退出系統,歡迎下次使用!");
}
}
好啦,今天就到這里,下次繼續 ,O(∩_∩)O哈哈~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/155295.html
標籤:Java
上一篇:大資料量分批執行封裝
