package cn.bdqn.demo01;
import java.util.Scanner;
public class demo01 {
public static void main(String[] args) {
//定义数据主体:菜品
String[] menus={"红烧带鱼","鱼香肉丝","时令蔬菜"};//菜名
double[] prices={38.0,20.0,10.0};//单价
int[] praiseNums=new int[3];//点赞数
//定义数据主体:订单-订餐人 餐品信息 送餐时间 送餐地址 总金额 订单状态
String[] name=new String[4];
String[] mealsMes=new String[4];//菜品名称+份数
int[] time=new int[4];
String[] address=new String[4];
double[] total=new double[4];
int[] states=new int[4];//0,已预订;1,已完成
//初始化两个订单信息
name[0]="张三";
mealsMes[0]="红烧带鱼 2份";
time[0]=8;
address[0]="蒙城路";
total[0]=76.0;//餐费>50免配送费,否则,加6元
states[0]=0;
name[1]="李四";
mealsMes[1]="鱼香肉丝 2份";
time[1]=10;
address[1]="亳州路";
total[1]=40.0;//餐费>50免配送费,否则,加6元
states[1]=1;
Scanner sc = new Scanner(System.in);
int num=-1;//用户输入0时返回时的输入数字,num=0,重复显示主菜单
System.out.println("欢迎使用吃“货联盟订餐系统”");//里面的引号用中文状态
//System.out.println("欢迎使用吃\"货联盟订餐系统\"");第二种
//记录用户是否退出系统的状态.退出true 不退出false.
boolean flag=false;
//不知道循环次数,采用do-while循环,先运行,在判断.
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=sc.nextInt();
switch(choose){
case 1:
System.out.println("*********我要订餐*********");
boolean isAdd=false;
for(int i=0;i<name.length;i++){
if(name[i]==null){//订餐未满,可以订餐
isAdd=true;
//订餐
System.out.print("请输入订餐人姓名:");
String name1=sc.next();
//循环输出菜品信息
System.out.println("序号\t菜名\t单价");
for(int j=0;j<menus.length;j++){
String praise=(praiseNums[j]==0)?"":praiseNums[j]+"赞";
System.out.println((j+1)+"\t"+menus[j]+"\t"+prices[j]+"\t"+praise);
}
//菜品编号的输入及判断
System.out.print("请输入您要点的菜品编号:");
int num2=sc.nextInt();
while(num2<1||num2>menus.length){
System.out.print("本店没有这个菜品,请重新选择");
num2=sc.nextInt();
}
//点菜份数
System.out.print("请输入您要点的份数:");
int num3=sc.nextInt();
//送餐时间的输入及判断
System.out.print("请输入送餐时间(送餐时间只能是10-20的整点):");
int times =sc.nextInt();
while(times<10||times>20){
System.out.print("您的输入有误,请重新输入");
times=sc.nextInt();
}
//送餐地址
System.out.print("请输入送餐地址:");
String addresses=sc.next();
//添加到订单信息
System.out.println("订餐成功!");
//菜品信息:菜名名称 份数
String menuInfo=menus[num2-1]+""+num3+"份";
System.out.println("您订的是:"+menuInfo);
System.out.println("送餐时间:"+times+"点");
//餐费 配送费 总计
double dishPrice=prices[num2-1]*num3;
double peiSong=(dishPrice>50)?0:6;
double totals=dishPrice+peiSong;
System.out.println("餐费:"+dishPrice+"元 ;配送费:"+peiSong+"元;总计:"+totals+"元");
name[i]=name1;
mealsMes[i]=menuInfo;
time[i]=times;
address[i]=addresses;
total[i]=totals;
break;
}
}
break;
case 2:
System.out.println("*********查看餐带*********");
System.out.println("序号\t订餐人\t菜名\t\t时间\t地址\t总金额\t状态");
for(int i=0;i<name.length;i++){
if(name[i]!=null){
String times=time[i]+"点";
String state=(states[i]==0)?"已预订":"已完成";//三目运算符
System.out.println(i+1+"\t"+name[i]+"\t"+mealsMes[i]+"\t"+times+"\t"+address[i]+"\t"+total[i]+"\t"+state);
}
}
break;
case 3:
System.out.println("*********签收订单*********");
boolean isSign=false;
System.out.println("请输入您要签收的订单编号");
int sign=sc.nextInt();
for(int i=0;i<4;i++){
if(name[i]!=null&&states[i]==0&&i==sign-1){
isSign=true;
states[i]=1;
System.out.println("订单签收成功");
}else if(name[i]!=null&&states[i]==1&&i==sign-1){
isSign=true;
System.out.println("您选择的订单已完成签收,不能再次签收!");
}
}
if(!isSign){
System.out.println("您的订单不存在");
}
break;
case 4:
System.out.println("*********删除订单*********");
//删除之前,判断订单是否存在,boolean
//false-不存在,不能删除;true-存在,且预定状态,不能删除;存在,完成状态,删除
boolean delete=false;
System.out.println("请输入您要删除的订单编号");
int delete1=sc.nextInt();
for(int i=0;i<4;i++){
if(name[i]!=null&&states[i]==0&&i==delete1-1){
delete=true;
System.out.println("您选择的订单未接收,不能删除!");
}else if(name[i]!=null&&states[i]==1&&i==delete1-1){
delete=true;
}
}
if(!delete){
System.out.println("您选择的订单不存在");
}
for(int j=0;j<name.length;j++){
name[j]=name[j+1];
mealsMes[j]=mealsMes[j+1];
time[j]=time[j+1];
address[j]=address[j+1];
total[j]=total[j+1];
states[j]=states[j+1];
}
name[name.length-1]=null;
mealsMes[mealsMes.length-1]=null;
time[time.length-1]=0;
address[address.length-1]=null;
total[total.length-1]=0;
states[states.length-1]=0;
break;
case 5:
System.out.println("*********我要点赞*********");
System.out.println("序号\t菜名\t单价");
for(int j=0;j<menus.length;j++){
String praise=(praiseNums[j]==0)?"":praiseNums[j]+"赞";
System.out.println((j+1)+"\t"+menus[j]+"\t"+prices[j]+"\t"+praise);
}
System.out.println("请输入您要点赞的菜品序号");
int praiseNo=sc.nextInt();
while(praiseNo<1||praiseNo>4){
System.out.println("本店没有这个菜品,无法点赞,请重新输入一个菜品序号");
praiseNo=sc.nextInt();
}
praiseNums[praiseNo]++;
break;
case 6:
flag=true;
System.out.println("*********退出系统*********");
break;
default:
flag=true;
break;
}
if(!flag){
System.out.println("请输入0返回");
num=sc.nextInt();
}else{
break;
}
}while(num==0);
System.out.println("谢谢使用,欢迎下次光临");
}
}