KFC点餐系统

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

1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。

基本要求
程序设计风格良好,控制台界面友好,最多两人一组完成任务。
实现功能测试代码,确保程序的健壮性。
画出使用的设计模式图。

提高要求
实现可视化界面。
实现会员储值卡功能,完成储值卡消费。
实现当天营业额和餐品销量计算和统计,用数据库记录。

二、具体代码:

package KFC;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Set;


public class Diancan {
	static HashMap<String, String> hs = new HashMap<>();
	static List<Map> list = new ArrayList<>();
	static int sum = 0;


	public static void main(String[] args) {
	Scanner s = new Scanner(System.in);
	System.out.println("欢迎来到KFC");
	list();
	while (true) {
	String in = s.nextLine();
	String[] remove = in.split("[0-9]");
	if (Character.isDigit(in.charAt(0))) {
	dianCai(in);
	} else if (in.equals("ok")) {
	ok();
	} else if (in.equals("sum")) {
	sum();
	} else if (in.equals("order")) {
	order();
	} else if (remove[0].equals("-")) {
	String[] removes = in.split("-");
	remove(removes[1]);
	} else if (in.equals("list")) {
	list();
	} else if (in.equals("help")) {
	help();
	} else if (in.equals("exit")) {
	break;
	}
	}
	System.out.println("退出系统");
	}


	public static void list() {
	System.out.println("本店提供:");
	System.out.println("1.热辣香骨鸡      \t37.5元");
	System.out.println("2.原味圣代     \t15元");
	System.out.println("3.嫩牛五方                  \t89元");
	System.out.println("4.吮指原味鸡             \t49元");
	System.out.println("5.超级翅桶           \t69.5元");
	System.out.println("点击编号点菜,ok下单,help帮助");
	}


	public static void dianCai(String name) {
	switch (name) {
	case "1":
	hs.put("1.热辣香骨鸡", "37.5");
	System.out.println("热辣香骨鸡已添加");
	break;
	case "2":
	hs.put("2.原味圣代", "15");
	System.out.println("原味圣代已添加");
	break;
	case "3":
	hs.put("3.嫩牛五方", "89元");
	System.out.println("嫩牛五方已添加");
	break;
	case "4":
	hs.put("4.吮指原味鸡", "49元");
	System.out.println("吮指原味鸡已添加");
	break;
	case "5":
	hs.put("5.超级翅桶", "69.5元");
	System.out.println("超级翅桶已添加");
	break;
	}
	Set<String> set = hs.keySet();
	for (String key : set) {
	String values = hs.get(key);
	System.out.println(key + "-----" + values);
	}
	}


	public static void ok() {
		
	list.add(hs);
	hs = new HashMap<>();
	System.out.println("下单成功!");
	}


	public static void order() {
	Set<String> set = hs.keySet();
	for (String key : set) {
	String values = hs.get(key);
	System.out.println(key + "-----" + values);
	}
	}


	public static void remove(String removes) {
	switch (removes) {
	case "1":
	hs.remove("1.热辣香骨鸡");
	break;
	case "2":
	hs.remove("2.原味圣代");
	break;
	case "3":
	hs.remove("3.嫩牛五方");
	break;
	case "4":
	hs.remove("4.吮指原味鸡");
	break;
	case "5":
	hs.remove("5.超级翅桶");
	break;
	}
	Set<String> set = hs.keySet();
	for (String key : set) {
	String values = hs.get(key);
	System.out.println(key + "------" + values);
	}
	}


	public static void sum() {
	for (Map m : list) {
	Set<String> set = m.keySet();
	for (String key : set) {
	String values = (String) m.get(key);
	String[] prices = values.split("元");
	int price = Integer.parseInt(prices[0]);// 将字符串转类型换为int型
	sum += price;
	}
	}
	System.out.println("今天收入"+sum+"元");
	}


	public static void help() {
	System.out.println("list\t-列菜单");
	System.out.println("数字\t-点菜");
	System.out.println("-数字\t-移除已点的菜");
	System.out.println("ok\t-结束点菜并生成订单,然后下单");
	System.out.println("order\t-查看已点的菜");
	System.out.println("sum\t-统计销售额");
	System.out.println("exit\t-退出");
	System.out.println("help\t-打印帮助信息");
	}

}

三、测试截图:
在这里插入图片描述

四、点餐界面:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值