1. 程式人生 > 程式設計 >C++實現KFC點餐系統

C++實現KFC點餐系統

本文例項為大家分享了C++實現KFC點餐系統的具體程式碼,供大家參考,具體內容如下

一、題目名稱:模擬肯德基收銀系統
二、題目內容:

同學們應該都去麥當勞或肯德基吃過快餐吧?請同學們參考肯德基官網的資訊模擬肯德基快餐店的收銀系統,合理使用C++或Java或Python結合設計模式(2種以上)至少實現系統的以下功能:

1.正常餐品結算和找零。
2.基本套餐結算和找零。
3.使用優惠劵購買餐品結算和找零。
4.可在一定時間段參與店內活動(自行設計或參考官網資訊)。
5.模擬列印小票的功能(寫到檔案中)。

基本要求:

1.程式設計風格良好,控制檯介面友好,最多兩人一組完成任務。
2.實現功能測試程式碼,確保程式的健壯性。

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

提高要求:

1.實現視覺化介面(使用MFC)。
2.實現會員儲值卡功能,完成儲值卡消費。
實現當天營業額和餐品銷量計算和統計,用資料庫記錄。

三、演算法設計:

C++實現KFC點餐系統

四、程式碼

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;
};

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();
 Food* hamburger3 = fac_h->food();
 //例項化各個漢堡
 //巨無霸
 hamburger1->set_name("巨無霸");
 hamburger1->set_price(17);
 hamburger1->set_num(hamburger[0]);
 //雙層吉士漢堡
 hamburger2->set_name("雙層吉士漢堡");
 hamburger2->set_price(15);
 hamburger2->set_num(hamburger[1]);
 //麥辣雞腿漢堡
 hamburger3->set_name("麥辣雞腿漢堡");
 hamburger3->set_price(15);
 hamburger3->set_num(hamburger[2]);

 //生成小吃工廠類
 Factory_Snack* fac_s = new Factory_Snack();
 //生成具體的小吃類
 Food* snack1 = fac_s->food();
 Food* snack2 = fac_s->food();
 //例項化各個小吃
 //大薯條
 snack1->set_name("大薯條");
 snack1->set_price(11);
 snack1->set_num(snack[0]);
 //麥樂雞
 snack2->set_name("麥樂雞");
 snack2->set_price(9);
 snack2->set_num(snack[1]);

 //生成飲料工廠類
 Factory_Drink* fac_d = new Factory_Drink();
 //生成具體的飲料類
 Food* drink1 = fac_d->food();
 Food* drink2 = fac_d->food();
 Food* drink3 = fac_d->food();
 //例項化各個飲料
 //可口可樂
 drink1->set_name("可口可樂");
 drink1->set_price(7);
 drink1->set_num(drink[0]);
 //七喜
 drink2->set_name("七喜");
 drink2->set_price(7);
 drink2->set_num(drink[1]);
 //橙汁 
 drink3->set_name("橙汁");
 drink3->set_price(7);
 drink3->set_num(drink[2]);

 //生成套餐工廠類
 Factory_Set* fac_se = new Factory_Set();
 //生成具體的套餐類
 Food* set1 = fac_se->food();
 Food* set2 = fac_se->food();
 //例項化各個套餐
 //巨無霸超值套餐
 set1->set_name("巨無霸超值套餐");
 set1->set_price(25);
 set1->set_num(set[0]);
 //雙層吉士漢堡超值套餐
 set2->set_name("雙層吉士漢堡超值套餐");
 set2->set_price(23);
 set2->set_num(set[1]);
 
 //找零部分
 cout << "---------------------" << endl;
 double sum = 0;
 sum = sum + hamburger1->get_sum();
 sum = sum + hamburger2->get_sum();
 sum = sum + hamburger3->get_sum();
 sum = sum + snack1->get_sum();
 sum = sum + snack2->get_sum();
 sum = sum + drink1->get_sum();
 sum = sum + drink2->get_sum();
 sum = sum + drink3->get_sum();
 sum = sum + set1->get_sum();
 sum = sum + set2->get_sum();
 cout << "您共計消費:" << sum << endl;
 cout << "請問您是否使用優惠券?(輸入0已接受)";
 int ch;
 cin >> ch;
 int yhq=0;
 if (0 == ch)
 {
  cout << "您擁有如下優惠券:" << endl;
  cout << "-1.滿50減5" << endl;
  cout << "-2.滿100減15" << endl;
  cout << "-3.滿200減40" << endl;
  cout << "每次消費僅能使用一張優惠券,請選擇使用的優惠券" << endl;
  int flag = 1;
  while (flag)
  {
  int ch;
  cin >> ch;
  if (ch == 1)
  {
   if (sum > 50) { sum -= 5; cout << "使用消費券成功!"; }
   else { cout << "您的消費金額還不能使用優惠券!" << endl; }
   flag = 0;
  }
  if (ch == 2)
  {
   if (sum > 100) { sum -= 15; cout << "使用消費券成功!";}
   else { cout << "您的消費金額還不能使用優惠券!" << endl; }
   flag = 0;
  }
  if (ch == 3)
  {
   if (sum > 200) { sum -= 40; cout << "使用消費券成功!";}
   else { cout << "您的消費金額還不能使用優惠券!" << endl; }
   flag = 0;
  }
  if (ch == 0)
  {
   cout << "不使用優惠券" << endl;
   flag = 0;
  }
  }
 }
 cout << "請問您支付多少:";
 double pay;
 cin >> pay;
 double payback = pay - sum;
 while (0 > payback)
 {
  cout << "您好,您的錢不夠本次消費(微笑.jpg),請重給,謝謝您哦~";
  cin >> pay;    
  payback = pay - sum;
 }
 cout << "共計收您" << pay << "元。" << endl;
 cout << "找零為:" << payback << "元" << endl;
 int cho;
 cout << "---------------------" << endl;
 cout << "請選擇是否列印小票:(輸入0以列印)" << endl;
 cin >> cho;
 if (0 == cho)
 {
  //列印小票部分
  
  /*
  ofstream outfile("receipt.dat",ios::out);
  cout << "---------------------" << endl;
  outfile << "---------------------" << endl;
  cout << "歡迎來到肯德基歡樂餐廳!" << endl;
  outfile << "歡迎來到肯德基歡樂餐廳!" << endl;
  cout << "您共計點餐:" << endl;
  outfile << "您共計點餐:" << endl;
  cout << endl;
  outfile << endl;
  if (0 != hamburger[0]) { cout << "巨無霸--" << hamburger[0] << "份" <<endl;outfile << "巨無霸--" << hamburger[0] << "份" << endl; }
  if (0 != hamburger[1]) { cout << "雙層吉士漢堡--" << hamburger[1] << "份" << endl;outfile << "雙層吉士漢堡--" << hamburger[1] << "份" << endl; }
  if (0 != hamburger[2]) { cout << "麥辣雞腿漢堡--" << hamburger[2] << "份" << endl; outfile << "麥辣雞腿漢堡--" << hamburger[2] << "份" << endl;}
  if (0 != snack[0]) { cout << "大薯條--" << snack[0] << "份" << endl;outfile << "大薯條--" << snack[0] << "份" << endl; }
  if (0 != snack[1]) { cout << "麥樂雞--" << snack[1] << "份" << endl; outfile << "麥樂雞--" << snack[1] << "份" << endl;}
  if (0 != drink[0]) { cout << "可口可樂--" << drink[0] << "份" << endl;outfile << "可口可樂--" << drink[0] << "份" << endl; }
  if (0 != drink[1]) { cout << "七喜--" << drink[1] << "份" << endl; outfile << "七喜--" << drink[1] << "份" << endl;}
  if (0 != drink[2]) { cout << "橙汁--" << drink[2] << "份" << endl;outfile << "橙汁--" << drink[2] << "份" << endl; }
  if (0 != set[0]) { cout << "巨無霸超值套餐--" << set[0] << "份" << endl;outfile << "巨無霸超值套餐--" << set[0] << "份" << endl; }
  if (0 != set[1]) { cout << "雙層吉士漢堡超值套餐--" << set[1] << "份" << endl; outfile << "雙層吉士漢堡超值套餐--" << set[1] << "份" << endl;}
  cout << "---------------------" << endl;
  outfile << "---------------------" << endl;
  cout << "共計收您" << pay << "元。" << endl;
  outfile << "共計收您" << pay << "元。" << endl;
  cout << "找零為:" << payback << "元" << endl;
  outfile << "找零為:" << payback << "元" << endl;
  */
  ofstream outfile("receipt.dat",ios::out);
  cout << "---------------------" << endl;
  outfile << "---------------------" << endl;
  cout << "歡迎來到肯德基歡樂餐廳!" << endl;
  outfile << "歡迎來到肯德基歡樂餐廳!" << endl;
  cout << "您共計點餐:" << endl;
  outfile << "您共計點餐:" << endl;
  cout << endl;
  outfile << endl;
  H1 *h1 = new H1;
  h1->get_num(hamburger[0]);
  H2 *h2 = new H2;
  h2->get_num(hamburger[1]);
  H3 *h3 = new H3;
  h3->get_num(hamburger[2]);
  S1 *s1 = new S1;
  s1->get_num(snack[0]);
  S2 *s2 = new S2;
  s2->get_num(snack[1]);
  D1 *d1 = new D1;
  d1->get_num(drink[0]);
  D2 *d2 = new D2;
  d2->get_num(drink[1]);
  D3 *d3 = new D3;
  d3->get_num(drink[2]);
  SET1 *set1 = new SET1;
  set1->get_num(set[0]);
  SET2 *set2 = new SET2;
  set2->get_num(set[1]);
  Context *ph1 = new Context(h1);
  Context *ph2 = new Context(h2);
  Context *ph3 = new Context(h3);
  Context *ps1 = new Context(s1);
  Context *ps2 = new Context(s1);
  Context *pd1 = new Context(d1);
  Context *pd2 = new Context(d2);
  Context *pd3 = new Context(d3);
  Context *pset1 = new Context(set1);
  Context *pset2 = new Context(set2);
  ph1->Interface();
  ph2->Interface();
  ph3->Interface();
  ps1->Interface();
  ps2->Interface();
  pd1->Interface();
  pd2->Interface();
  pd3->Interface();
  pset1->Interface();
  pset2->Interface();
  cout << endl;
  outfile << endl;
  cout << "---------------------" << endl;
  outfile << "---------------------" << endl;
  cout << "---------------------" << endl;
  outfile << "---------------------" << endl;
  cout << endl;
  outfile << endl;
  cout << "共計收您" << pay << "元。" << endl;
  outfile << "共計收您" << pay << "元。" << endl;
  cout << "找零為:" << payback << "元" << endl;
  outfile << "找零為:" << payback << "元" << endl;
  outfile.close(); 
  //運用策略模式簡化上列大量if語句
 }

 }
};


int main()
{
 collect c;
 c.menu();
 
}

2.測試程式碼

#include <iostream>
#include <fstream>
using namespace std;
 
class xiaopiao
{
 public:
 virtual void output() = 0;
} ;

class H1 : public xiaopiao
{
public:
 void get_num(int n)
 {
 num = n;
 }
   void output()
   {
     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()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "雙層吉士漢堡--" << num << "份" <<endl;
  outfile << "雙層吉士漢堡--" << num << "份" << endl;
  outfile.close();
   }
   protected:
 int num;
};

class H3 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "麥辣雞腿漢堡--" << 1 << "份" <<endl;
  outfile << "麥辣雞腿漢堡--" << 1 << "份" << endl;
  outfile.close();
   }
};

class S1 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "大薯條--" << 1 << "份" <<endl;
  outfile << "大薯條--" << 1 << "份" << endl;
  outfile.close();
   }
};

class S2 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "麥樂雞--" << 1 << "份" <<endl;
  outfile << "麥樂雞--" << 1 << "份" << endl;
  outfile.close();
   }
};

class D1 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "可口可樂--" << 1 << "份" <<endl;
  outfile << "可口可樂--" << 1 << "份" << endl;
  outfile.close();
   }
};

class D2 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "七喜--" << 1 << "份" <<endl;
  outfile << "七喜--" << 1 << "份" << endl;
  outfile.close();
   }
};

class D3 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "橙汁--" << 1 << "份" <<endl;
  outfile << "橙汁--" << 1 << "份" << endl;
  outfile.close();
   }
};

class SET1 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "巨無霸超值套餐--" << 1 << "份" <<endl;
  outfile << "巨無霸超值套餐--" << 1 << "份" << endl;
  outfile.close();
   }
};

class SET2 : public xiaopiao
{
public:
   void output()
   {
     ofstream outfile("receipt.dat",ios::out);
  cout << "雙層吉士漢堡超值套餐--" << 1 << "份" <<endl;
  outfile << "雙層吉士漢堡超值套餐--" << 1 << "份" << endl;
  outfile.close();
   }
};

class Context
{
public:
   Context(xiaopiao *p) : pStrategy(p)
   {
   }
   void Interface()
   {
     pStrategy->output();
   }
private:
   xiaopiao *pStrategy;
};

int main()
{
 ofstream outfile("receipt.dat",ios::out);
 cout << "---------------------" << endl;
 outfile << "---------------------" << endl;
 cout << "歡迎來到麥當勞歡樂餐廳!" << endl;
 outfile << "歡迎來到麥當勞歡樂餐廳!" << endl;
 cout << "您共計點餐:" << endl;
 outfile << "您共計點餐:" << endl;
 cout << endl;
 outfile << endl;
 H1 *h1 = new H1;
 h1->get_num(2);
 H2 *h2 = new H2;
 h2->get_num(3);
 H3 *h3 = new H3;
 S1 *s1 = new S1;
 S2 *s2 = new S2;
 D1 *d1 = new D1;
 D2 *d2 = new D2;
 D3 *d3 = new D3;
 SET1 *set1 = new SET1;
 SET2 *set2 = new SET2;
 Context *ph1 = new Context(h1);
 Context *ph2 = new Context(h2);
 Context *ph3 = new Context(h3);
 Context *ps1 = new Context(s1);
 Context *ps2 = new Context(s1);
 Context *pd1 = new Context(d1);
 Context *pd2 = new Context(d2);
 Context *pd3 = new Context(d3);
 Context *pset1 = new Context(set1);
 Context *pset2 = new Context(set2);
 ph1->Interface();
 ph2->Interface();
 ph3->Interface();
 ps1->Interface();
 ps2->Interface();
 pd1->Interface();
 pd2->Interface();
 pd3->Interface();
 pset1->Interface();
 pset2->Interface();
 if (h1) delete h1;
 if (h2) delete h2;
 if (h3) delete h3;
 if (s1) delete s1;
 if (s2) delete s2;
 if (d1) delete h1;
 if (d2) delete d2;
 if (d3) delete d3;
 if (set1) delete set1;
 if (set2) delete set2;
}

五、結果展示

C++實現KFC點餐系統

六、總結

1.本次作業為KFC點餐系統,剛開始的想法是用Java做,但是在看了許多資料結合自己的情況,最終採用C++來寫程式,C++確實較Java熟悉了很多。
2.這次只做了基本要求,沒有做提高要求,我會在後面的學習中,結合視覺化介面和資料庫連線,將點餐系統完善。
3.主要運用到設計模式中的策略模式和工廠模式,其中工廠模式負責生產餐廳中的各種食物的物件,策略模式負責在生成小票時避免出現冗雜的if語句。
4.從RPG遊戲和KFC點餐系統兩次的作業來看,這兩次的程式碼認為量來說都是比較大的,對於其中的一些函式功能的使用,還有設計模式的理解並且不到位。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。