同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品

package 肯德基订餐;

import java.util.Scanner;
import java.util.*;

/**

  • date:2018年10月26日
  • @author xiaoxiannv

*/

public class Order {

public static void main(String[] args) {
	String[] names = new String[4]; // 定义订餐人员
	String[] menu = new String[4]; // 定义菜单
	int[] states = new int[4]; // 订单状态: 0:已预定 1:已完成
	double[] sumPrices = new double[4]; // 总金额

	// 初始化2个订单信息
	names[0] = "小仙女";
	menu[0] = "鸡肉堡 1份";
	sumPrices[0] = 12.0;
	states[0] = 1;

	names[1] = "小仙女";
	menu[1] = "炸薯条 1份";
	sumPrices[1] = 25.0;
	states[1] = 1;

	// 供选择的菜品信息
	String[] dishNames = { "牛肉堡", "鸡肉堡", "炸薯条", "炸鸡", "炸鱿鱼", "可乐", "奶茶", "咖啡", "(秘制面皮,中可,鸡米块)", "(酸辣粉,南瓜粥,汉堡)",
			"(紫薯块,麻辣鸡块,汤圆)" };
	double[] prices = new double[] { 14.0, 12.0, 10.0, 20.0, 10.0, 8.0, 8.5, 13.0, 25.0, 30.0, 28.0 }; // 菜品单价
	int[] praiseNums = new int[3];
	Scanner in = new Scanner(System.in);
	int num = 0; // 用户输入0返回主菜单,否则退出系统
	boolean isExit = false; // 标志用户是否退出系统: true:退出系统
	System.out.println("\n欢迎使用“肯德基订餐系统”");
	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("请选择你的操作(1-6):");
		int choose = in.nextInt(); // 记录用户选择的功能编号
		boolean isOrder = false; // 记录是否需要订餐
		boolean isSignFind = false; // 是否查看订单
		boolean isDelFind = false; // 是否删除订单
		switch (choose) {
		case 1:
			// 我要订餐
			System.out.println("   我要订餐   ");
			System.out.print("请输入订餐人姓名:");
			String name = in.next();
			isOrder = true;
			for (int j = 0; j < names.length; j++) {
				if (names[j] == null) {
					names[j] = name;
					break;
				} else {
					isOrder = true;
				}
			}
			while (isOrder) {
				System.out.println("序号" + "\t\t\t\t\t" + "菜单" + "\t\t\t\t\t" + "价格");
				for (int i = 0; i < dishNames.length; i++) {
					System.out.print(i+1 + "\t\t\t\t\t" + dishNames[i] + "\t\t\t\t\t" + prices[i] + "\n");
				}
				System.out.print("请输入菜单编号:");
				int dishNum = in.nextInt();
				System.out.print("请输入订餐数量:");
				int dishCount = in.nextInt();
				double sumPrice = prices[dishNum - 1] * dishCount;
				double deliCharge; // 定义打包带走的包装费
				if (sumPrice > 50) {
					deliCharge = 0;
				} else {
					deliCharge = 5;
				}
				System.out.print("请输入客户给的金额:");
				int money = in.nextInt();
				System.out.println(
						"餐费:" + sumPrice + "元,送餐费:" + deliCharge + "元,总计:" + (sumPrice + deliCharge) + "元");
				System.out.println("应收取:" + (sumPrice + deliCharge));
				if (money < (sumPrice + deliCharge)) {
					System.out.println("对不起,您的钱不够!");
				} else {
					System.out.println("应找零:" + (money - (sumPrice + deliCharge)));
				}
				// 判断是否继续进行点餐
				Scanner input = new Scanner(System.in);
				System.out.println("是否继续,请输入:");
				int num1 = in.nextInt();// 用户输入0返回主菜单,否则继续点餐
				if (num1 == 0) {
					break;
				} else {
					continue;
				}
			}
			break;
		case 2:
			// 查看定单
			System.out.println("   查看定单   ");
			System.out.println("序号\t订餐人\t餐品信息\t总金额\t订单状态");
			for (int i = 0; names[i] != null; i++) {
				String sta = (states[i] == 1) ? "已完成" : "已预定";
				System.out.print(
						(i + 1) + "\t" + names[i] + "\t" + menu[i] + "\t" + sumPrices[i] + "\t" + sta + "\n");
			}
			System.out.print("请选择要查看的订单序号:");
			int n = in.nextInt();
			states[n - 1] = 1;
			System.out.println("序号\t订餐人\t餐品信息\t总金额\t订单状态");
			for (int i = 0; names[i] != null; i++) {
				String sta = (states[i] == 1) ? "已完成" : "已预定";
				System.out.print(
						(i + 1) + "\t" + names[i] + "\t" + menu[i] + "\t" + sumPrices[i] + "\t" + sta + "\n");
				Scanner input = new Scanner(System.in);
				System.out.println("是否继续,请输入:");
				int num2 = in.nextInt();// 用户输入0返回主菜单,否则继续查看订单
				if (num2 == 0) {
					break;
				} else {
					continue;
				}
			}
			break;
		case 3:
			// 打印订单
			System.out.println("   打印订单   ");
			System.out.println("序号\t订餐人\t餐品信息\t总金额\t订单状态");
			for (int i = 0; names[i] != null; i++) {
				String sta = "0";// 定义订单的状态
				if (states[i] == 1) {
					System.out.println("已完成");
				} else {
					System.out.println("已预定");
				}
				System.out.print(
						(i + 1) + "\t" + names[i] + "\t" + menu[i] + "\t" + sumPrices[i] + "\t" + sta + "\n");
				Scanner input = new Scanner(System.in);
				System.out.println("是否继续,请输入:");
				int num3 = in.nextInt();// 用户输入0返回主菜单,否则继续打印订单
				if (num3 == 0) {
					break;
				} else {
					continue;
				}
			}
			break;

		case 4:
			// 删除订单
			System.out.println("   删除订单   ");
			System.out.println("序号\t订餐人\t餐品信息\t总金额\t订单状态");
			for (int i = 0; i < 4; i++) {
				String sta = (states[i] == 1) ? "已完成" : "已预定";
				System.out.print(
						(i + 1) + "\t" + names[i] + "\t" + menu[i] + "\t" + sumPrices[i] + "\t" + sta + "\n");

			}
			System.out.print("请输入要删除的订单序号:");
			int m = in.nextInt();
			for (int k = m; k < 4; k++) {
				names[k - 1] = names[k];
				menu[k - 1] = menu[k];
				sumPrices[k - 1] = sumPrices[k];
				states[k - 1] = states[k];
			}
			System.out.println("序号\t订餐人\t餐品信息\t总金额\t订单状态");
			for (int i = 0; i < 4; i++) {
				String sta = (states[i] == 1) ? "已完成" : "已预定";
				System.out.print(
						(i + 1) + "\t" + names[i] + "\t" + menu[i] + "\t" + sumPrices[i] + "\t" + sta + "\n");
			}
			Scanner input = new Scanner(System.in);
			System.out.println("是否继续,请输入:");
			int num4 = in.nextInt();// 用户输入0返回主菜单,否则继续删除订单
			if (num4 == 0) {
				break;
			} else {
				continue;
			}
		case 5:
			// 我要评价
			System.out.println("   我要评价     ");
			// 显示菜单信息
			System.out.println("序号" + "\t" + "菜名" + "\t" + "单价");
			for (int i = 0; i < dishNames.length; i++) {
				System.out.print(i + 1 + "\t" + dishNames[i] + "\t" + prices[i] + "\t" + praiseNums[i] + "赞" + "\n");
			}
			System.out.print("请输入评价序号:");
			int number = in.nextInt();
			praiseNums[number - 1] = praiseNums[number - 1] + 1;
			System.out.println("序号" + "\t" + "菜名" + "\t" + "单价");
			for (int i = 0; i < dishNames.length; i++) {
				System.out
						.print(i + 1 + "\t" + dishNames[i] + "\t" + prices[i] + "\t" + praiseNums[i] + "赞" + "\n");
			}
			System.out.println("是否继续,请输入:");
			int num5 = in.nextInt();// 用户输入0返回主菜单,否则继续评价
			if (num5 == 0) {
				break;
			} else {
				continue;
			}
		case 6:
			// 退出系统
			isExit = true;
			break;
		default:
			// 退出系统
			isExit = true;
			break;
		}
		if (!isExit) {
			System.out.print("输入0返回:");
			num = in.nextInt();
		} else {
			break;
		}
	} while (num == 0);
	System.out.println("谢谢使用,欢迎下次光临!");
}

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值