吃货联盟订餐系统

“吃货联盟定餐系统”需求说明

  现今已进入网络时代,网上购物、看新闻、交友等人们的日常生活已离不开网络。“只要点点手指,就能送餐上门”,网上定餐越来越受到都市年轻人的青睐    现要求开发一个网上订餐系统,其具体功能如下:

  • 我要订餐

       完成用户订餐,每条订单包含如下信息:

  1. 订餐人姓名:要求用户输入
  2. 选择菜品及份数:显示三个菜单序号、名称、单价、点赞数,提示用户输入要选择的菜品序号及份数
  1. 送餐时间:要求当天10到20点间整点送餐,要求用户输入10~20的整数,输入错误,重复输入。
  1. 送餐地址:要求用户输入
  2. 状态:两种状态:0:已预定(默认状态) 1、已完成(订单已签收)
  3. 总金额:

    总金额 = 菜品单价*份数-送餐费

   (送餐费:当单笔订单金额达到50元时,免送餐费,否则,需交纳6元送餐费)

  订餐成功后,显示订单信息。

  •   查看订单

        遍历显示已有定单

        内容包括:序号、订餐人姓名、订餐信息(菜品名和份数)、送餐时间、送餐地址、  状态(已预定或已完成)、总金额

  •   签收定单

        将定单中状态改为已完成

  • 删除定单

    用户输入订单序号,如该序号定单为已完成状态,可以删除,其它情况给出相应提示信息

  • 我要点赞

        显示菜品序号、菜品名、单价、点赞数,提示用户输入要点赞的菜品序号完成对菜品的点赞。

  • 退出系统

退出整个系统,显示“谢谢使用,欢迎下次光临”。

  • 菜单切换

用户可根据显示的主菜单,输入功能编号执行相应的功能,当输入1~5时,执行相应功能(如图1所示)。

如输入6或其他数字,则退出系统

当用户输入1~5之间的功能编号,功能执行完毕后,显示“输入0返回”(如图1所示),此时输入0,则返回主菜单,否则,退出系统

代码实现

package project;

import java.util.Arrays;
import java.util.Scanner;

public class Demo {
	public static void main(String[] args) {
		// 菜单
		String[] menusname = { "鱼香肉丝", "麻婆豆腐", "香辣猪蹄" };
		double[] price = { 36.9, 19.9, 59.9 };
		int[] star = { 0, 0, 0 };

		// 订单人信息
		String[] userName = new String[4];
		String[] caiName = new String[4];
		int[] caiCount = new int[4];
		int[] time = new int[4];
		String[] address = new String[4];
		boolean[] status = new boolean[4];
		double[] allPrice = new double[4];

		// 初始化订单信息
		userName[0] = "张三";
		caiName[0] = "鱼香肉丝";
		caiCount[0] = 2;
		time[0] = 12;
		address[0] = "敖家堡乡";
		status[0] = false;
		allPrice[0] = 73.8;

		userName[1] = "哈小";
		caiName[1] = "麻婆豆腐";
		caiCount[1] = 1;
		time[1] = 10;
		address[1] = "洋县溢水";
		status[1] = true;
		allPrice[1] = 25.9;

		// 程序开始
		Scanner sc = new Scanner(System.in);
		System.out.println("欢迎使用“吃货联盟订餐系统”");
		while (true) {
			int index = userName.length;
			for (int i = 0; i < userName.length; i++) {
				if (userName[i] == null) {
					index = i;
					break;
				}
			}
			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("请选择");
			int num = sc.nextInt();
			switch (num) {
			// 我要订餐
			case 1:
				if (index == 4) {
					System.out.println("抱歉,现在订单已满,不可再次下单");
				} else {
					System.out.print("请输入订单人姓名:");
					userName[index] = sc.next();
					System.out.println("序号\t名称\t\t单价\t点赞数");
					for (int i = 0; i < menusname.length; i++) {
						System.out.println((i + 1) + "\t" + menusname[i]
								+ "\t\t" + price[i] + "\t" + star[i]);
					}
					System.out.print("请输入序号点菜:");
					int flag;
					while (true) {
						flag = sc.nextInt();
						if (flag >= 0 && flag <= 3) {
							caiName[index] = menusname[flag - 1];
							break;
						} else {
							System.out.print("输入错误,请重新输入序号:");
						}
					}
					System.out.print("请输入份数:");
					while (true) {
						int temp = sc.nextInt();
						if (temp > 0) {
							caiCount[index] = temp;
							break;
						} else {
							System.out.print("输入错误,请重新输入数量:");
						}
					}
					System.out.print("请输入送餐时间(10点~20点):");
					while (true) {
						int temp = sc.nextInt();
						if (temp >= 10 && temp <= 20) {
							time[index] = temp;
							break;
						} else {
							System.out.print("输入错误,请重新输入时间(10点~20点):");
						}
					}
					System.out.print("请输入送餐地址:");
					address[index] = sc.next();
					allPrice[index] = price[flag - 1] * caiCount[index];
					if (allPrice[index] < 50) {
						System.out.println("当单笔订单金额未达到50元时,需交纳6元送餐费");
						allPrice[index] += 6;
					}
					System.out.println("订餐人信息");
					System.out.println("姓名:    \t" + userName[index]
							+ "\n菜名:  \t" + caiName[index] + "\n数量:  \t"
							+ caiCount[index] + "\n送餐时间:\t" + time[index]
							+ "\n送餐地址:\t" + address[index] + "\n总金额: \t"
							+ allPrice[index] + "¥");

				}
				System.out.print("输入0返回(或者任意整数)");
				sc.nextInt();
				break;
			// 查看餐袋
			case 2:
				System.out.println("序号\t姓名\t菜名\t\t份数\t送餐时间\t\t送餐地址\t\t状态\t总金额");
				for (int i = 0; i < index; i++) {
					System.out.println((i + 1) + "\t" + userName[i] + "\t"
							+ caiName[i] + "\t\t" + caiCount[i] + "\t"
							+ time[i] + "\t\t" + address[i] + "\t\t"
							+ (status[i] ? "已签收" : "未签收") + "\t" + allPrice[i]
							+ "¥");
				}
				System.out.print("输入0返回(或者任意整数)");
				sc.nextInt();
				break;
			// 签收订单
			case 3:
				System.out.println("序号\t姓名\t菜名\t\t份数\t送餐时间\t\t送餐地址\t\t状态\t总金额");
				for (int i = 0; i < index; i++) {
					System.out.println((i + 1) + "\t" + userName[i] + "\t"
							+ caiName[i] + "\t\t" + caiCount[i] + "\t"
							+ time[i] + "\t\t" + address[i] + "\t\t"
							+ (status[i] ? "已签收" : "未签收") + "\t" + allPrice[i]
							+ "¥");
				}
				System.out.print("请输入序号签收订单:");
				while (true) {
					int temp = sc.nextInt();
					if (temp - 1 >= 0 && temp <= index) {
						status[temp - 1] = true;
						break;
					} else {
						System.out.print("输入错误,请重新输入序号:");
					}
				}
				System.out.println("序号\t姓名\t菜名\t\t份数\t送餐时间\t\t送餐地址\t\t状态\t总金额");
				for (int i = 0; i < index; i++) {
					System.out.println((i + 1) + "\t" + userName[i] + "\t"
							+ caiName[i] + "\t\t" + caiCount[i] + "\t"
							+ time[i] + "\t\t" + address[i] + "\t\t"
							+ (status[i] ? "已签收" : "未签收") + "\t" + allPrice[i]
							+ "¥");
				}
				System.out.print("输入0返回(或者任意整数)");
				sc.nextInt();
				break;
			// 删除订单
			case 4:
				System.out.println("序号\t姓名\t菜名\t\t份数\t送餐时间\t\t送餐地址\t\t状态\t总金额");
				for (int i = 0; i < index; i++) {
					System.out.println((i + 1) + "\t" + userName[i] + "\t"
							+ caiName[i] + "\t\t" + caiCount[i] + "\t"
							+ time[i] + "\t\t" + address[i] + "\t\t"
							+ (status[i] ? "已签收" : "未签收") + "\t" + allPrice[i]
							+ "¥");
				}
				System.out.print("请输入序号删除订单:");
				while (true) {
					int temp = sc.nextInt();
					if (temp - 1 >= 0 && temp <= index) {
						for (int i = temp - 1; i < index - 1; i++) {
							userName[i] = userName[i + 1];
							caiName[i] = caiName[i + 1];
							caiCount[i] = caiCount[i + 1];
							time[i] = time[i + 1];
							address[i] = address[i + 1];
							status[i] = status[i + 1];
							allPrice[i] = allPrice[i + 1];
						}
						userName[index - 1] = null;
						caiName[index - 1] = null;
						caiCount[index - 1] = 0;
						time[index - 1] = 0;
						address[index - 1] = null;
						status[index - 1] = false;
						allPrice[index - 1] = 0.0;
						index--;
						break;
					} else {
						System.out.print("输入错误,请重新输入序号:");
					}
				}
				System.out.println("序号\t姓名\t菜名\t\t份数\t送餐时间\t\t送餐地址\t\t状态\t总金额");
				for (int i = 0; i < index; i++) {
					System.out.println((i + 1) + "\t" + userName[i] + "\t"
							+ caiName[i] + "\t\t" + caiCount[i] + "\t"
							+ time[i] + "\t\t" + address[i] + "\t\t"
							+ (status[i] ? "已签收" : "未签收") + "\t" + allPrice[i]
							+ "¥");
				}
				System.out.print("输入0返回(或者任意整数)");
				sc.nextInt();
				break;
			// 我要点赞
			case 5:
				System.out.println("序号\t名称\t\t单价\t点赞数");
				for (int i = 0; i < menusname.length; i++) {
					System.out.println((i + 1) + "\t" + menusname[i] + "\t\t"
							+ price[i] + "\t" + star[i]);
				}
				System.out.print("输入序号给菜品点赞");
				while (true) {
					int temp = sc.nextInt();
					if (temp > 0 && temp <= 3) {
						time[index] = temp;
						star[temp - 1]++;
						break;
					} else {
						System.out.print("输入错误,请重新输入序号:");
					}
				}

				System.out.println("序号\t名称\t\t单价\t点赞数");
				for (int i = 0; i < menusname.length; i++) {
					System.out.println((i + 1) + "\t" + menusname[i] + "\t\t"
							+ price[i] + "\t" + star[i]);
				}
				System.out.print("输入0返回(或者任意整数)");
				sc.nextInt();
				break;
			// 退出系统
			default:
				System.out.println("谢谢使用,欢迎下次使用");
				return;
			}
		}
	}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值