项目实践-吃货联盟订餐系统,实现我要订餐,查看餐袋,签收订单,删除订单,我要点赞以及退出程序等功能!

250 阅读4分钟

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("谢谢使用,欢迎下次光临!");
}

}