吃货联盟订餐系统

Java基础结业作业


    public class DingDanXinXi {
		String[] names = new String[4]; // 保存订餐人名称
		String[] dish = new String[4]; // 保存所选信息,包括菜品和份数
		int[] time = new int[4]; // 保存送餐时间
		String[] add = new String[4]; // 保存送餐地址
		int[] states = new int[4]; // 保存订单状态:0表示已预定,1表示已完成
		double[] sum = new double[4]; // 保存订单金额
}


public class CaiDan {
	// 供选择的菜品信息
	String[] disnames = { "红烧带鱼", "鱼香肉丝", "时令蔬菜" };
	double[] price = { 38.0, 20.0, 10.0 };
	int[] praise = new int[3]; // 点赞数
	DingDanXinXi g = new DingDanXinXi();

	/**
	 * 主菜单方法
	 */
	public void zhu() {
		Scanner input = new Scanner(System.in);
		boolean g = false; // 标记是否退出系统
		int a = 0;
		do {
			d.k("欢迎使用吃货联盟订餐系统!");
			d.k("**************************************");
			d.k("1.我要订餐");
			d.k("2.查看餐袋");
			d.k("3.签收订单");
			d.k("4.删除订单");
			d.k("5.我要点赞");
			d.k("6.退出系统");
			d.k("**************************************");
			System.out.print("请选择:");
			a = input.nextInt();
			switch (a) {
			case 1:
				d.k("****我要订餐****");
				ding(); // 调用订餐方法
				break;
			case 2:
				d.k("****查看餐袋****");
				cha();
				break;
			case 3:
				d.k("****签收订单****");
				qian();
				break;
			case 4:
				d.k("****删除订单****");
				shan();
				break;
			case 5:
				d.k("****我要点赞****");
				zan();
				break;
			case 6:
				d.k("****退出系统****");
				g = true;
				break;
			}
			if (g != true) {
				System.out.print("输入0返回:");
				a = input.nextInt();
			} else {
				System.out.println("谢谢使用!");
				break;
			}
		} while (a == 0);

	}

	/**
	 * 我要订餐功能
	 */
	public boolean ding() {
		String j = "";
		double money = 0; // 总餐费
		double oop = 0; // 送餐费
		boolean kk = false; // 标记是否可以订餐
		Scanner input = new Scanner(System.in);
		for (int i = 0; i < g.names.length; i++) {
			if (g.names[i] == null) { // 找到第一个空位置,添加订单信息
				kk = true;
				System.out.print("请输入订餐人姓名:");
				String name = input.next();
				System.out.println("序号" + "\t" + "菜名" + "\t" + "单价" + "\t"
						+ "点赞数");
				if (praise[i] > 0) { // 判断是否有点赞数
					j = praise[i] + "赞";
				} else {
					j = "0";
				}
				for (int i1 = 0; i1 < disnames.length; i1++) {
					String arr = price[i1] + "元";
					System.out.println((i1 + 1) + "\t" + disnames[i1] + " "
							+ arr + "\t" + j);
				}
				System.out.print("请选择您要选择的菜品编号:");
				int q = input.nextInt();
				System.out.print("请选择您需要的份数:");
				int qw = input.nextInt();
				String si = disnames[q - 1] + qw + "份"; // 变量接收餐品和份数
				System.out.print("请输入送餐时间(送餐时间是10点到20点之间送餐):");
				int shi = input.nextInt();
				while (shi < 10 || shi > 20) { // 循环判断用户输入的时间是否正确
					System.out.print("时间输入错误!请重新输入送餐时间:");
					shi = input.nextInt();
				}
				System.out.print("请输入送餐地址:");
				String di = input.next();
				d.k("订餐成功!");
				d.k("您订的是:" + si);
				d.k("送餐时间:" + shi);
				money = price[q - 1] * qw; // 计算餐费
				if (money < 50) {
					oop = 5;
					money = money + oop; // 餐费不满50元,加5元送餐费
				} else {
					oop = 0;
				}
				d.k("餐费:" + money + "元," + "送餐费:" + oop + "总计:" + money);

				// 以下是往数组中添加信息
				g.names[i] = name; // 添加姓名
				g.dish[i] = si; // 添加菜品及份数
				g.time[i] = shi; // 添加时间
				g.add[i] = di; // 添加送餐地址
				g.sum[i] = money; // 添加总餐费
				break;
				} 
		}
		if(!kk){
			System.out.println("订单已满!");
			return false;
		}else 
			return true;

	}

	/**
	 * 实现查看餐袋方法
	 */
	public void cha() {
		String a = "";
		d.k("序号\t送餐人\t餐品信息\t\t送餐时间\t\t送餐地址\t\t总金额\t订单状态");
		for (int i = 0; i < g.names.length; i++) {
			if (g.names[i] != null) {
				if (g.states[i] == 0) {
					a = "已预定";
				} else {
					a = "已完成";
				}
				d.k((i + 1) + "\t" + g.names[i] + "\t" + g.dish[i] + "\t"
						+ g.time[i] + "点" + "\t\t" + g.add[i] + "\t\t"
						+ g.sum[i] + "元" + "\t\t" + a);
			}
		}
	}

	/**
	 * 实现签收订单方法
	 */
	public void qian() {
		boolean is = false; // 标记是否找到签收的订单
		Scanner input = new Scanner(System.in);
		System.out.println("请输入您要签收的订单!");
		int a = input.nextInt();
		for (int i = 0; i < g.names.length; i++) {
			if (g.names[i] != null && g.states[i] == 0 && a == i + 1) {// a==i+1,是为了判断签收的订单序号
				g.states[i] = 1;
				is = true;
				d.k("订单签收成功!");
				break;
			} else if (g.names[i] != null && g.states[i] == 1 && a == i + 1) {
				d.k("订单已签收!不可以重复签收");
				is = true;
				break;
			}
		}
		if (!is) {// 当is为true时,变成false,不执行代码块,当找不到订单时,is为false,is变成true,执行代码块
			d.k("您选择的订单不存在!");
		}
	}

	/**
	 * 删除订单方法
	 */
	public void shan() {
		boolean arr = false; // 标识是否找到要删除的订单
		Scanner input = new Scanner(System.in);
		System.out.print("请输入要删除的订单序号");
		int a = input.nextInt();
		for (int i = 0; i < g.names.length; i++) {
			if (g.names[i] != null && g.states[i] == 1 && a == i + 1) {
				arr = true;
				// 执行删除操作,元素依次往前移
				for (int j = a - 1; j < g.states.length - 1; j++) {
					g.names[j] = g.names[j + 1]; // 姓名
					g.states[j] = g.states[j + 1]; // 订单状态
					g.time[j] = g.time[j + 1]; // 送餐时间
					g.dish[j] = g.dish[j + 1]; // 菜品及份数
					g.add[j] = g.add[j + 1]; // 地址
					g.sum[j] = g.sum[j + 1]; // 总餐费
				}
				// 最后一位清空
				int a1 = g.names.length - 1;
				g.names[a1] = null; // 姓名
				g.states[a1] = 0; // 订单状态
				g.time[a1] = 0; // 送餐时间
				g.dish[a1] = null; // 菜品及份数
				g.add[a1] = null; // 地址
				g.sum[a1] = 0.0; // 总餐费
				d.k("删除订单成功!");
				break;
			} else if (g.names[i] != null && g.states[i] == 0 && a == i + 1) {
				System.out.println("您选择的订单未签收,不能删除!");
				arr = true;
				break;
			}
		}
		if (!arr) {
			d.k("您要删除的订单不存在!");
		}
	}

	/**
	 * 我要点赞
	 */
	public void zan() {
		Scanner input = new Scanner(System.in);
		String kk = "";
		d.k("序号" + "\t" + "菜名" + "\t" + "单价");
		for (int i = 0; i < disnames.length; i++) {
			if (praise[i] > 0) {
				kk = praise[i] + "赞";
			} else {
				kk = "";
			}
			d.k((i + 1) + "\t" + disnames[i] + "\t" + price[i] + "元\t" + kk);
		}
		System.out.print("请选择您要点赞的菜品序号:");
		int g = input.nextInt();
		praise[g - 1]++;
		d.k("点赞成功!");
	}
}

public class d {
	/**
	 * 输出方法
	 */
	public static void k(String a) {
		System.out.println(a);
	}
}
/**
*测试类
*/
public class Test {
	public static void main(String[] args) {
		CaiDan k=new CaiDan();
		k.zhu();
		int i=1;
		if(i>=args.length){
			
		}
	}

}

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳落青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值