import java.util.Scanner;
public class OrderingMrg {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] name = 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];//保存订单总金额
String[] dishNames = {"红烧带鱼", "鱼香肉丝", "时令鲜蔬"};
double[] price = {38.0, 20.0, 10.0};
int[] praiseNums = new int[3];
name[0] = "张三";
dishMegs[0] = "红烧带鱼 2份";
times[0] = 12;
addresses[0] = "天成路207号";
sumPrices[0] = 76.0;
states[0] = 1;
name[1] = "李四";
dishMegs[1] = "鱼香肉丝 2份";
times[1] = 18;
addresses[1] = "天成路702号";
sumPrices[1] = 45.0;
states[1] = 0;
System.out.println("欢迎使用\"吃货联盟订餐系统\"");
int num;
boolean isExit = false;
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("请选择:");
num = input.nextInt();
switch (num) {
case 1:
//判断订单有没有满,满了的话就直接跳过case1
int g = 0;
for(int i=0; i<name.length; i++){
if(name[i] != null){
g++;
}
}
if(g == name.length){
System.out.println("订单已满,请稍后再拨!");
break;
}
System.out.println("***我要订餐***");
System.out.println("请输入订餐人姓名:");
String ord_name = input.next();
//显示菜单
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for(int i=0; i<dishNames.length; i++){
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+
price[i]+"\t"+praiseNums[i]);
}
//拼接菜品信息
System.out.println("请选择菜品编号:");
int chooseDish = input.nextInt();
System.out.println("请选择菜的份数:");
int chooseDish_nums = input.nextInt();
String ord_dishMegs = dishNames[chooseDish-1] + " " +
chooseDish_nums + "份";
//判断用户输入的送餐时间是否合法
System.out.println("请输入您所需要的到达时间(送餐时间是10点到20点,过期不候!):");
int ord_times = input.nextInt();
while(true){
if(ord_times>=10 && ord_times<=20){
break;
}
System.out.println("请输入正确的送餐时间!");
ord_times = input.nextInt();
}
System.out.println("请输入订餐地址:");
String ord_address = input.next();
//计算总价并且判断是否需要送餐费
double ord_sumPrices = price[chooseDish-1] * chooseDish_nums;
int deliCharge = ord_sumPrices>=50?0:5;
for(int i=0; i<name.length;i++){
if(name[i] == null){
name[i] = ord_name;
dishMegs[i] = ord_dishMegs;
times[i] = ord_times;
addresses[i] = ord_address;
sumPrices[i] = ord_sumPrices+deliCharge;
System.out.println("订餐成功!");
System.out.println("您订的是:"+ord_dishMegs);
System.out.println("送餐时间是:"+ord_times);
System.out.println("餐费: "+ord_sumPrices+" "+"送餐费: "+deliCharge+
" "+"总计: "+(ord_sumPrices+deliCharge));
break;
}
// if(!isAdd){
// System.out.println("订单已满,请稍后再拨!");
// }
}
break;
case 2:
System.out.println("***查看餐袋***");
System.out.println("序号"+"\t"+"订餐人"+"\t"+"餐品信息 "+"\t"+
" 送餐时间"+"\t"+"送餐地址"+"\t"+"总金额"+
"\t"+"订单状态");
for(int i=0; i<4; i++){
String name_ = name[i];
String dishMegs_ = dishMegs[i];
int times_ = times[i];
String addresses_ = addresses[i];
double sumPrices_ = sumPrices[i];
int states_ = states[i];
String states_chr = "";
switch (states_) {
case 1:
states_chr = "已完成";
break;
case 0:
states_chr = "未完成";
break;
}
if(name_ != null){
System.out.println((i+1)+"\t"+name_+"\t"+dishMegs_+" "+times_+
"\t"+addresses_+
" "+sumPrices_+"\t"+states_chr);
}
}
break;
case 3:
System.out.println("***签收订单***");
System.out.print("请选择要签收的订单序号: ");
int ord_num = input.nextInt();
if(name[ord_num-1] == null){
System.out.println("该订单不存在!");
break;
}else if(states[ord_num-1] == 1){
System.out.println("该订单已完成,请勿重复修改!");
break;
}
states[ord_num-1] = 1;
if(states[ord_num-1] == 1){
System.out.println("订单接收成功!");
}
break;
case 4:
System.out.println("***删除订单***");
boolean isDel = false;
System.out.print("请输入删除的订单: ");
int ord_del = input.nextInt();
while(!isDel){
for(int i=0; i<name.length; i++){
if(name[i]!=null && states[i]==1 && ord_del==i+1){
isDel = true;
for(int j=ord_del-1; j<name.length-1; j++){
name[j] = name[j+1];
dishMegs[j] = dishMegs[j+1];
times[j] = times[j+1];
addresses[j] = addresses[j+1];
states[j] = states[j+1];
sumPrices[j] = sumPrices[j+1];
}
int endIndex = name.length-1;
name[endIndex] = null;
dishMegs[endIndex] = null;
times[endIndex] = 0;
addresses[endIndex] = null;
states[endIndex] = 0;
sumPrices[endIndex] = 0;
System.out.println("删除成功!");
break;
}else if(name[i]!=null && states[i]==0 && ord_del==i+1){
System.out.println("订单未完成,删除失败!");
isDel = false;
break;
}else if(name[i]==null && ord_del==i+1){
System.out.println("订单不存在!");
isDel = false;
break;
}
}
if(!isDel){
System.out.print("请输入删除的订单: ");
ord_del = input.nextInt();
}
}
break;
case 5:
System.out.println("***我要点赞***");
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价");
for(int i=0; i<dishNames.length; i++){
String praiseNums_str = (praiseNums[i]==0)?"":praiseNums[i]+"赞";
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+
price[i]+"元"+"\t"+praiseNums_str);
}
System.out.print("请输入您要点赞的菜品序列号: ");
int ord_praise = input.nextInt();
praiseNums[ord_praise-1]++;
System.out.println("点赞成功!");
break;
case 6:
isExit = true;
break;
default:
break;
}
if(isExit){
break;
}
System.out.print("输入“0”返回:");
num = input.nextInt();
while(num!=0){
System.out.println("输入非法,请重新输入!");
num = input.nextInt();
}
}while(num == 0);
System.out.println("欢迎使用~");
}
}