循环嵌套的典型案例——吃货联盟源码

吃货联盟系统

public class EatUnion {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String[]name = new String[]{"张静","张晴",null,null};//用于保存点餐人的姓名
		//String[]menu = new String[]{"1         红烧带鱼	 68.0","2          鱼香肉丝	 35.5","3          时令鲜蔬	 38.0",
		//"4         麻辣小龙虾	92.0"};//保存所选信息,包括菜品名及份数
		String[]menu = new String[]{"红烧带鱼","鱼香肉丝"," 时令鲜蔬","麻辣小龙虾"};
		double[]price = new double[]{68.0  ,35.5  ,38.0  ,92.0};//菜品价格
		int[]praiseNum = new int[]{1,0,0,0};//点赞
		int[]copies = new int[]{2,2,0,0};//份数
		int[]time = new int[]{12,18,0,0};//用于保存送餐时间
		String[]address = new String[]{"天成路207","天成路208",null,null};//用于保存送餐地址
		int[]stats = new int[]{1,0,0,0};//保存订单状态:0表示已预订,1表示已完成
		double[]sumprice = new double[]{136.0,71,0,0};//用于保存客户订餐总价
		int s=0;
		boolean flag=false;
		int num;//用于用户选择
		do{
			System.out.println("欢迎使用“吃货联盟订餐系统”");
			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:{
				System.out.println("\t******我要订餐******");
				for(int i=0;i<name.length;i++){
					if(name[i]==null){
						flag = true;
					System.out.print("请输入你的姓名:");
					String names = input.next();
				System.out.println("单号\t"+"菜单\t"+"价格\t"+"点赞数");
				String praiseNums = (praiseNum[i])>0?praiseNum[i]+"赞" : "0";
				for(int j=0;j<4;j++){
					System.out.println((j+1)+"         "+menu[j]+"	"+price[j]+"	"+praiseNum[j]);
				}
				System.out.print("请选择你要选择的菜品单号:");
				int n =input.nextInt();
				System.out.print("请选择份数:");
				int m =input.nextInt();
				double sumprices =m*price[n-1];
				int canFei = (sumprices>50)?0:5;
				sumprices +=canFei; 
				System.out.print("请输入送餐时间(8-22)");
				int times = input.nextInt();
				while(times<8 || times>22){
					System.out.println("您输入的时间不在送餐时间范围内,请重新输入(8-22):");
					times = input.nextInt();
				}
				System.out.print("请输入送餐地址:");           
				String ad = input.next();
				System.out.println("订餐成功!");
				System.out.println("订餐人:"+names);
				System.out.println("您定的是:"+menu[n-1]+""+m+"份");
				System.out.println("订餐地址:"+ad);
				System.out.println("送餐时间是:"+times+"点");
				System.out.println("餐费:"+sumprices+"元");
				//添加数据
				name[i] = names;
				time[i] = times;
				address[i] = ad;
				sumprice[i] = sumprices;
				System.out.println("您是否继续点餐(输入y继续点餐,输入n返回主界面):");
				String st = input.next();
				if(st.equals("y")){
					while(i==3){
						System.out.println("对不起您的餐袋满了!");
						flag = false;
						break;
					}
					if(!flag){
						break;
					}
				}
				else if(st.equals("n")){
					flag = false;
					break;
				}
				else{
					System.out.println("输入有误,请重新输入(y/n):");
					st = input.next();
				}
					}
				}
			}break;
			case 2:{
				System.out.println("\t******查看餐袋******");
				System.out.println("序号\t"+"订餐人\t"+"菜名\t"+"份数\t"+"送餐时间\t"+"  送餐地址\t"+"   总金额\t"+"   订单状态");
				for(int i=0;i<4;i++){
					if(name[i]!=null){
					String stat = (stats[i]==0)?"已预订":"已完成";
					System.out.println((i+1)+"\t"+name[i]+"\t"+menu[i]+"\t"+copies[i]+"\t"+"  "+time[i]+"\t"+address[i]+"\t"+" "+sumprice[i]+"\t"+stats[i]);
				}
				}
			}break;
			case 3:{
				System.out.println("\t******签收订单******");
				System.out.print("请输入你要签收的订单号:");
					boolean flag1 = false;
					int q =input.nextInt();//q代表要签收的订单号
				for(int i=0;i<name.length;i++){
					if(name[i]!=null && stats[i]==0 && q==(i+1)){
						stats[i]=1;
						System.out.println("签收成功!");
						flag1 = true;
					}
					else if(name[i]!=null && stats[i]==1 && q==(i+1)){
						System.out.println("您选择的订单已签收");
						flag1 = true;
					}
				}
					if(!flag1){
						System.out.println("没有找到要签收的订单!");
					}
			}break;
			case 4:{
				System.out.println("\t******删除订单******");
				boolean flag2 = false;
				System.out.print("请输入要删除的订单号:");
				int sc = input.nextInt();//存放要删除的订单号
					for(int i=0;i<4;i++){
					if(stats[i]==1 && name[i]!=null && sc==i+1){
						flag2 = true;
						for(int j=sc-1;j<name.length-1;j++){
							name[j] = name[j+1];
							time[j] = time[j+1];
							address[j] = address[j+1];
							sumprice[j] = sumprice[j+1];
							stats[j] = stats[j+1];
							menu[j] = menu[j+1];
						}
						int end = name.length-1;//删除数据的数组最后一位下标置为.length-1
						name[end] = null;
						time[end] = 0;
						address[end] = null;
						sumprice[end] = 0;
						stats[end] = 0;
						menu[end] = null;
						System.out.println("删除订单成功!");
						break;
					}
					else if(name[i]!=null && stats[i]==0 && sc==i+1){
						System.out.println("订单未签收,不能删除!");
						flag2 = true;
						break;
					
					}
				}
					if(!flag){
						System.out.println("未找到您要删除的订单!");
					}
			}break;
			case 5:{
				System.out.println("\t******我要点赞******");
				System.out.println("单号\t"+"菜单\t"+"价格\t"+"赞数");
				for(int j=0;j<4;j++){
					String praiseNums = (praiseNum[j])>0?praiseNum[j]+"赞" : "0";
					System.out.println((j+1)+"         "+menu[j]+"	"+price[j]+"	"+praiseNum[j]);
				}
				System.out.print("请选择你要点赞的菜品序号:");
				int zan = input.nextInt();
				praiseNum[zan-1]++;
				System.out.println("点赞成功!");
			}break;
			case 6:{
				flag=true;
				System.out.println("退出系统!");
				break;
			}
			default:{
				flag = true;
				System.out.println("输入有误,自动退出系统!");
				break;
			}
		}
			if(!flag){
				System.out.print("输入0返回:");
				num =input.nextInt();
			}
			else{
				break;
			}
		}while(num==0);
			
	}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值