1. 程式人生 > >【第五章】吃貨聯盟訂餐系統

【第五章】吃貨聯盟訂餐系統

package Task;

import java.util.Scanner;

public class DingCan01 {
public static void main(String[] args){
//資料主體,一組訂單資訊
String[] names=new String[4];//訂餐人
String[] dishMegs=new String[4];//所訂餐資訊
int[] times=new int[4];//送餐時間
String[] addresses=new String[4];//送餐地址
int[] states=new int[4];//訂單狀態 0:已預定 1:已完成
double[] sumPrices=new double[4];//總金額

//初始化2條訂單資訊
names[0]="張三";
dishMegs[0]="魚香肉絲 1份";
times[0]=12;
addresses[0]="觀日路48號";
states[0]=0;
sumPrices[0]=24.0;

names[1]="李四";
dishMegs[1]="紅燒帶魚 2份";
times[1]=18;
addresses[1]="長樂路06號";
states[1]=1;
sumPrices[1]=76.0;

//資料主體,一組餐品資訊
String[] dishNames={"紅燒帶魚","魚香肉絲","時令蔬菜"};
double[] prices={38.0,18.0,10.0};//餐品單價
int[] praiseNums=new int[3];//點贊數
Scanner input=new Scanner(System.in);
int num=-1;
do{
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、退出系統");
System.out.println("******************");
System.out.print("請選擇:");
int choose=input.nextInt();//記錄使用者選擇的編號
boolean isAdd=false;//true:記錄找到一個為空的位置,可以插入 false:沒有找到
//根據使用者輸入的功能編號,執行相應的功能
while(choose>6||choose<1){
System.out.print("輸入錯誤,請輸入有效編號:");
choose = input.nextInt();
}
boolean isExit = false; // 標誌使用者是否退出系統: true:退出系統
switch(choose){
case 1:
//1、我要訂餐
System.out.println("********我要訂餐********");
//1.查詢要插入的位置,記錄下來
for(int i=0;i<names.length;i++){
if(names[i]==null){
isAdd=true;//記錄已找到一個為空的位置
//執行插入
//a.顯示所有可供選擇的餐品資訊
System.out.println("序號\t餐品名\t單價\t\t點贊數");
for(int j=0;j<dishNames.length;j++){
String price=prices[j]+"元";
String praise=praiseNums[j]+"贊";
System.out.println((j+1)+"\t"+dishNames[j]+"\t"+price+"\t"+praise);
}
//輸入所選餐品編號以及分數
System.out.print("請選擇所訂餐品序號:");
int chooseDish=input.nextInt();
while(chooseDish>dishNames.length||chooseDish<1) {
System.out.print("對不起,您輸入的序號沒有資訊,請輸重新輸入:");
chooseDish = input.nextInt();
}
System.out.print("請選擇所定份數");
int number=input.nextInt();
String dishMeg=dishNames[chooseDish-1]+" "+number+"份";
//b.輸入訂餐人姓名
System.out.print("請輸入訂餐人姓名:");
String name=input.next();
//c.輸入送餐時間
System.out.print("請輸入送餐時間(10~20整點送餐):");
int time=input.nextInt();
//如果輸錯了,重複輸入
while(time<10||time>20){
System.out.print("對不起,您輸入有誤,請輸入人10~20之間的整數:" );
time=input.nextInt();
}
//d.輸入送餐地址
System.out.print("請輸入送餐地址");
String address=input.next();
//e.計算餐費
double sumPrice=prices[chooseDish-1]*number;
//d.送餐費,當餐費達到50元時,免6元送餐費
double deliCharge=sumPrice>=50?0.0:6.0;
//顯示訂單資訊
System.out.println("訂餐成功");
System.out.println("您定的是:"+dishMeg);
System.out.println("訂餐人:"+name);
System.out.println("送餐時間:"+time+"點");
System.out.println("送餐地址:"+address);
System.out.println("餐費:"+sumPrice+",送餐費:"+deliCharge+"元");
System.out.println("總金額“:"+(sumPrice+deliCharge)+"元");
//儲存資料
names[i]=name;
dishMegs[i]=dishMeg;
times[i]=time;
addresses[i]=address;
sumPrices[i]=sumPrice+deliCharge;
break;
}
}

//如果沒有找到為空的位置,則提示資訊
if(!isAdd){
System.out.println("對不起你的訂單已滿!");
}
break;
case 2:
//2、檢視訂單
System.out.println("********檢視訂單********");
System.out.println("序號\t訂餐人\t所訂餐品資訊\t送餐時間\t送餐地址\t\t總金額\t狀態");
//遍歷陣列
for(int i=0;i<names.length;i++){
if(names[i]!=null){
String time =times[i]+"點";
String sumPrice=sumPrices[i]+"元";
String state=states[i]==0?"已預定":"已完成";
System.out.println((i+1)+"\t"+names[i]+"\t\t"+dishMegs[i]+"\t"+time+"\t\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
}
}
break;
case 3:
//3、刪除訂單
break;
case 4:
//4、簽收訂單
System.out.print("********請輸入要簽收的訂單序號:");
int signOrderId=input.nextInt();
boolean isFind=false;
for(int i=0;i<names.length;i++){
if(names[i]!=null && states[i]==1 && signOrderId==i+1) {
System.out.println("對不起,您選擇的訂單已經完成簽收,不能再次簽收!");
isFind=true;
break;
}else if(names[i]!=null && states[i]==0 && signOrderId==i+1){
states[i]=1;
System.out.println("訂單簽收成功!");
isFind=true;
break;
}
}
if(!isFind){
System.out.println("對不起,此訂單不存在!");
}
break;
case 5:
//5、我要點贊
break;
case 6:
//6、退出系統
isExit=true;
break;
}
if (!isExit) {
System.out.print("輸入0返回:");
num = input.nextInt();
while (num != 0) {
System.out.print("輸入錯誤,輸入0返回:");
num = input.nextInt();
}
}else{
break;
}
}while(num==0);
System.out.println("謝謝使用,歡迎下次光臨");
}
}
//未完待續。。。