import java.util.Scanner; public class OrderMrg { public static void main(String[] args) { Scanner input =new Scanner(System.in); //创建数据主体 //1.订单信息 String [] names=new String [5]; String [] dishMegs=new String [5]; int [] times=new int[5]; String [] addresses=new String [5]; double [] sumPrices=new double [5]; int [] states =new int[5]; //2.创建3个假的消费主体 names[0]="张三"; dishMegs[0]="红烧带鱼2份"; times[0]=12; addresses[0]="南京路531号"; sumPrices[0]=60; states[0]=0;
names[1]="李四";
dishMegs[1]="红烧鸡块1份";
times[1]=15;
addresses[1]="上海路531号";
sumPrices[1]=31;
states[1]=1;
names[2]="王五";
dishMegs[2]="红烧牛肉2份";
times[2]=11;
addresses[2]="马鞍山路531号";
sumPrices[2]=90;
states[2]=0;
//3.菜品信息3
String [] dishNames=new String [5];
double [] prices=new double [5];
int []praiseNums=new int [5];
dishNames[0]="红烧带鱼";
prices[0]=30;
dishNames[1]="红烧鸡块";
prices[1]=25;
dishNames[2]="红烧牛肉";
prices[2]=45;
boolean flag=false;
int num =0;
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.println("请您选择:");
int choice=input.nextInt();
switch(choice) {
case 1:
System.out.println("****我要点餐****");
//首先判断订单是否满了
boolean isAdd=false;
for(int i=0;i<dishNames.length;i++) {
if(dishNames[i]==null) {
flag=true;
System.out.print("请输入订餐人姓名:");
String name=input.next();
System.out.println("序号\t菜品名\t单价(元)");
for(int j=0;j<names.length;j++) {
if(dishNames[j]!=null) {
String praise=(praiseNums[j]==0)? "":praiseNums[j]+"赞";
System.out.println((j+1)+"\t"+dishNames[j]+"\t"+prices[j]+"\t"+"\t"+praise);
}
}
System.out.print("请选择你要点的菜品名:");
int no =input.nextInt();
while(no<1||no>5) {
System.out.println("对不起,没有这个菜名!请重新输入:");
no =input.nextInt();
}
System.out.print("请选择你要点的份数:");
int number=input.nextInt();
//送餐时间
System.out.print("请输入你选择的送餐时间:");
int time =input.nextInt();
while(time<10||time>20) {
System.out.println("对不起,您输入的时间无效,请重新输入:");
time =input.nextInt();
}
//送餐地址
System.out.print("请输入你选择的送餐地址:");
String address=input.next();
System.out.println("**订餐成功**");
String dishInfo=dishNames[no-1]+""+number+"份";
System.out.println("您定的是:"+dishInfo);
System.out.println("送餐时间:"+time+"点");
System.out.println("送餐地点:"+address);
//送餐费用
double canfei=prices[no-1]*number;
double peisong=(canfei>50)?0:6;
double sumPrice=canfei+peisong;
System.out.println("餐费:"+canfei+"元,配送费:"+peisong+"元,总费用:"+sumPrice+"元。");
//存储订单
names[i]=name;
dishMegs[i]=dishInfo;
times[i]=time;
addresses[i]=address;
states[i]=0;
sumPrices[i]=sumPrice;
break;
}
}
if(!flag) {
System.out.println("对不起,订单已满,无法订餐!");
}
break;
case 2:
System.out.println("****查看餐袋****");
System.out.println("序号\t订餐人\t订餐信息\t\t订餐时间\t订餐地址\t\t订餐费用\t订单状态");
for(int i=0;i<names.length;i++) {
if(names[i]!=null) {
int state=(states[i]==0)?0:1;
System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"
+addresses[i]+"\t"+sumPrices[i]+"\t"+state);
}
}
break;
case 3:
System.out.println("****签收订单****");
//首先得判断订单是否存在
boolean isSign=false;
System.out.println("请您输入您要签收的订单编号:");
int signNo=input.nextInt();
//遍历数组
for(int i=0;i<names.length;i++) {
if(names[i]!=null &&states[i]==0 && i==signNo-1) {
isSign=true;
states[i]=1;
System.out.println("您输入的订单已经签收成功");
break;
}else if(names[i]!=null &&states[i]==1 && i==signNo-1) {
isSign=true;//表明订单在这次签收之前已经签收
System.out.println("您输入的订单已经签收,不能再次签收!");
}
}
if(!isSign) {
System.out.println("对不起,您输入的订单编号不存在!");
}
break;
case 4:
System.out.println("****删除订单****");
//你输入的订单需要存在
//并且是可以删除的状态 states==1
//删除需要将6个数组中对应位置的元素删除掉
boolean isDelete=false;
System.out.println("请您输入您要删除的订单编号:");
int deleteNo=input.nextInt();
for(int i=0;i<names.length;i++) {
if(names[i]!=null&&states[i]==1 && i==deleteNo-1) {
isDelete=true;
//索引位置后面的元素全部前移,
for(int j=i;j<names.length-1;j++) {
names[j]=names[j+1];
dishMegs[j]=dishMegs[j+1];
times[j]=times[j+1];
addresses[j]=addresses[j+1];
sumPrices[j]=sumPrices[j+1];
states[j]=states[j+1];
}
//最后一个元素一定要置空
names[names.length-1]=null;
dishMegs[dishMegs.length-1]=null;
times[times.length-1]=0;
addresses[addresses.length-1]=null;
sumPrices[sumPrices.length-1]=0.0;
states[states.length-1]=0;
System.out.println("删除订单成功!");
break;
}else if(names[i]!=null && states[i]==0 && i==deleteNo-1) {
isDelete=true;//
System.out.println("您输入的订单未签收,无法删除!");
}
}
if(!isDelete) {
System.out.println("对不起,您输入的订单不存在!");
}
break;
case 5:
System.out.println("****我要点赞****");
System.out.println("序号\t菜品名\t单价(元)");
for(int i=0;i<dishNames.length;i++) {
if(dishNames[i]!=null) {
String praise=(praiseNums[i]==0)? "":praiseNums[i]+"赞";
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+prices[i]+"\t"+praise);
}
}
System.out.print("请您输入您要点赞的编号:");
int praiseNo=input.nextInt();
while(praiseNo<1 || praiseNo>dishNames.length) {
System.out.println("对不起,您输入的菜单不存在,请重新输入:");
praiseNo=input.nextInt();
}
praiseNums[praiseNo-1]++;
break;
case 6:
System.out.println("****退出程序****");
flag=true;
break;
default:
System.out.println("请输入正确的数字!");
break;
}
System.out.print("请输入0返回:");
num=input.nextInt();
}while(num==0);
System.out.print("谢谢使用,欢迎下次光临!");
}
}