用C++模拟KFC点餐系统

一、题目名称:模拟肯德基收银系统
二、题目内容:
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:
1.正常餐品结算和找零。
2.基本套餐结算和找零。
3.使用优惠劵购买餐品结算和找零。
4.可在一定时间段参与店内活动(自行设计或参考官网信息)。
5.模拟打印小票的功能(写到文件中)。
基本要求:
1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。
2.实现功能测试代码,确保程序的健壮性。
3.画出使用的设计模式图。
提高要求:
1.实现可视化界面(使用MFC)。
2.实现会员储值卡功能,完成储值卡消费。
实现当天营业额和餐品销量计算和统计,用数据库记录。
三、算法设计:
在这里插入图片描述
四、代码
1.点餐系统代码

#include<iostream>
#include<string>
#include<fstream>
using namespace std;

class Food
{
   
protected:
	string name;
	double price;
	int num;
public:
	virtual double get_sum()
	{
   
		double sum = price * num;
		return sum;
	}
	virtual void set_name(string name)
	{
   
		this->name = name;
	}
	virtual string get_name()
	{
   
		return name;
	}
	virtual void set_price(double price)
	{
   
		this->price = price;
	}
	virtual double get_price()
	{
   
		return price;
	}
	virtual void set_num(int num)
	{
   
		this->num = num;
	}
	virtual int get_num()
	{
   
		return num;
	}
};

class Hamburger :public Food
{
   
public:
	virtual double get_sum()
	{
   
		double sum = price * num;
		return sum;
	}
};

class Snack :public Food
{
   
public:
	virtual double get_sum()
	{
   
		double sum = price * num;
		return sum;
	}
};

class Drink :public Food
{
   
public:
	virtual double get_sum()
	{
   
		double sum = price * num;
		return sum;
	}
};

class Set :public Food
{
   
public:
	virtual double get_sum()
	{
   
		double sum = price * num;
		return sum;
	}
};

class Factory
{
   
public:
	virtual Food* food() = 0;
};

class Factory_Hamburger :public Factory
{
   
public:
	Food* food()
	{
   
		return new Hamburger;
	}
};

class Factory_Snack :public Factory
{
   
public:
	Food* food()
	{
   
		return new Snack;
	}
};

class Factory_Drink :public Factory
{
   
public:
	Food* food()
	{
   
		return new Drink;
	}
};

class Factory_Set :public Factory
{
   
public:
	Food* food()
	{
   
		return new Set;
	}
};

class xiaopiao
{
   
	public:
		virtual void output() = 0;
} ;

class H1 : public xiaopiao
{
   
public:
	void get_num(int n)
	{
   
		num = n;
	}
     void output()
     {
   
		  if(0 != num)
		  {
   
		  	ofstream outfile("receipt.dat", ios::out);
			cout << "巨无霸--" << num << "份" <<endl;
			outfile << "巨无霸--" << num << "份" << endl;
			outfile.close();
		  }
     }
protected:
	int num;
};

class H2 : public xiaopiao
{
   
public:
	void get_num(int n)
	{
   
		num = n;
	}
     void output()
     {
   
          
		  if(0 != num)
		  {
   
		  	ofstream outfile("receipt.dat", ios::out);
		  cout << "双层吉士汉堡--" << num << "份" <<endl;
		  outfile << "双层吉士汉堡--" << num << "份" << endl;
		  outfile.close();
		  }
     }
protected:
	int num;
};

class H3 : public xiaopiao
{
   
public:
	void get_num(int n)
	{
   
		num = n;
	}
     void output()
     {
   
          
		  if(0 != num)
		  {
   
		  	ofstream outfile("receipt.dat", ios::out);
		  cout << "麦辣鸡腿汉堡--" << num << "份" <<endl;
		  outfile << "麦辣鸡腿汉堡--" << num << "份" << endl;
		  outfile.close();
		  }
     }
protected:
	int num;
};

class S1 : public xiaopiao
{
   
public:
	void get_num(int n)
	{
   
		num = n;
	}
     void output()
     {
   
          
		  if(0 != num)
		  {
   
		  	ofstream outfile("receipt.dat", ios::out);
		  cout << "大薯条--" << num << "份" <<endl;
		  outfile << "大薯条--" << num << "份" << endl;
		  outfile.close();
		  }
		  
     }
protected:
	int num;
};

class S2 : public xiaopiao
{
   
public:
	void get_num(int n)
	{
   
		num = n;
	}
     void output()
     {
   
          
		  if(0 != num)
		  {
   
		  	ofstream outfile("receipt.dat", ios::out);
		  cout << "麦乐鸡--" << num << "份" <<endl;
		  outfile << "麦乐鸡--" << num << "份" << endl;
		  outfile.close();
		  }
     }
protected:
	int num;
};

class D1 : public xiaopiao
{
   
public:
	void get_num(int n)
	{
   
		num = n;
	}
     void output()
     {
   
          
		  if(0 != num)
		  {
   
		  	ofstream outfile("receipt.dat", ios::out);
		  cout << "可口可乐--" << num << "份" <<endl;
		  outfile << "可口可乐--" << num << "份" << endl;
		  outfile.close();
		  }
     }
protected:
	int num;
};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值