欧美午夜精品久久久久免费视/欧美黄色精品/国产一级A片在线播出/A片免费视频在线观看

模擬肯德基快餐店的收銀系統-模擬打印小票的功能
2023-09-02 10:02:51 歡樂點

一、題目名稱:模擬麥當勞收銀系統

二、題目內容:

朋友們應當都去肯德基或麥當勞吃過快餐吧?請朋友們參考麥當勞官網的信息模擬麥當勞快餐店的收銀系統,合理使用C++或Java或結合設計模式(2種以上)起碼實現系統的以下功能:

1.正常餐品結算和找零。

2.基本套餐結算和找零。

3.使用讓利劵訂購餐品結算和找零。

4.可在一定時間段參與店內活動(自行設計或參考官網信息)。

5.模擬復印小票的功能(講到文件中)。

基本要求:

1.程序設計風格良好,控制臺界面友好,最多四人一組完成任務。

2.實現功能測試代碼,確保程序的強壯性。

3.畫出使用的設計模式圖。

增強要求:

1.實現可視化界面(使用MFC)。

2.實現會員儲值卡功能,完成儲值卡消費。

實現當日營業額和餐品銷量估算和統計,用數據庫記錄。

三、算法設計:

四、代碼

1.點餐系統代碼

#include
#include
#include
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;
};
class D2 : 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 D3 : 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 SET1 : 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 SET2 : public xiaopiao
{
public:
	void get_num(int n)
	{
		num = n;
	}
     void output()
     {
          
		  if(0 != num)
		  {
		  ofstream outfile("receipt.dat", ios::out);
		  cout << "雙層吉士漢堡超值套餐--" << 1 << "份" <<endl;
		  outfile << "雙層吉士漢堡超值套餐--" << 1 << "份" << endl;
		  outfile.close();
		  }
     }
protected:
	int num;
};
//運用策略模式簡化 
class Context
{
public:
     Context(xiaopiao *p) : pStrategy(p)
     {
     }
     void Interface()
     {
          pStrategy->output();
     }
private:
     xiaopiao *pStrategy;
};
class collect
{
private:
	
public:
	void main_menu()
	{
		cout << "---------------------" << endl;
		cout << "歡迎進入肯德基點餐系統!" << endl;
		cout << "---------------------" << endl;
		cout << "請問你選擇單點(1)或者套餐(2):" << endl;
	}
	void single_menu()
	{
		cout << "---------------------" << endl;
		cout << "請選擇您要點的產品:  " << endl;
		cout << "主食:				  " << endl;
		cout << " 1.巨無霸      --17元 " << endl;
		cout << " 2.雙層吉士漢堡--15元 " << endl;
		cout << " 3.麥辣雞腿漢堡--15元 " << endl;
		cout << "配餐:				  " << endl;
		cout << " 4.大薯條      --11元 " << endl;
		cout << " 5.麥樂雞      --9元 " << endl;
		cout << "飲料:				  " << endl;
		cout << " 6.可口可樂    --7元 " << endl;
		cout << " 7.七喜	    --7元 " << endl;
		cout << " 8.橙汁      --10元 " << endl;
		cout << "若點餐結束,請輸入0以結束點餐!" << endl;
	}
	void set_menu()
	{
		cout << "---------------------" << endl;
		cout << "請選擇您要點的套餐:  " << endl;
		cout << " 1.巨無霸超值套餐   --25元" << endl;
		cout << " (包含巨無霸一份、大薯條一份、可口可樂一份)" << endl;
		cout << " 2.雙層吉士漢堡超值套餐 --23元" << endl;
		cout << " (包含雙層吉士漢堡一份、大薯條一份、可口可樂一份)" << endl;
		cout << "若點餐結束,請輸入0以結束點餐!" << endl;
	}
	void menu()
	{
		main_menu();
		int choose;
		int hamburger[3], snack[2], drink[3],set[2];
		for (int i = 0; i < 3; i++) { hamburger[i] = 0; drink[i] = 0; }
		for (int i = 0; i < 2; i++) { snack[i] = 0; set[i] = 0; }
		cin >> choose;
		if (1 == choose)
		{
			single_menu();
			int ch,flag=1;
			while(flag)
			{
				cout << "請輸入對應商品的序號:" ;
				cin >> ch;
				switch (ch)
				{
				case(0):
				{
					flag = 0;
					break;
				}
				case(1):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					hamburger[0] = number;
					break;
				}
				case(2):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					hamburger[1] = number;
					break;
				}
				case(3):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					hamburger[2] = number;
					break;
				}
				case(4):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					snack[0] = number;
					break;
				}
				case(5):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					snack[1] = number;
					break;
				}
				case(6):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					drink[0] = number;
					break;
				}
				case(7):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					drink[1] = number;
					break;
				}
				case(8):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					drink[2] = number;
					break;
				}
				default:
				{
					cout << "請輸入正確的序號!" << endl;
					break;
				}
				}
			}
		}
		else if (2 == choose)
		{
			set_menu();
			int ch, flag = 1;
			while (flag)
			{
				cout << "請輸入對應商品的序號:";
				cin >> ch;
				switch (ch)
				{
				case(0):
				{
					flag = 0;
					break;
				}
				case(1):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					set[0] = number;
					break;
				}
				case(2):
				{
					cout << "請輸入需要幾份?:";
					int number;
					cin >> number;
					set[1] = number;
					break;
				}
				
				default:
				{
					cout << "請輸入正確的序號!" << endl;
					break;
				}
				}
			}
		}
		//生成漢堡工廠類
		Factory_Hamburger* fac_h = new Factory_Hamburger();
		//生成具體的漢堡類
		Food* hamburger1 = fac_h->food();
		Food* hamburger2 = fac_h->food(
					
					

免責聲明:部分文章信息來源于網絡以及網友投稿,本站只負責對文章進行整理、排版、編輯,出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其內容的真實性,如本站文章和轉稿涉及版權等問題,請作者在及時聯系本站,我們會盡快為您處理。

歡樂點

留言咨詢

×

掃一掃關注,獲取最新資訊。