JAVA基础学习笔记 day006_作业02(点餐小程序训练)


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("欢迎使用~");
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值