C++实现KFC点餐系统

 更新时间:2020年07月23日 10:03:33   作者:Cynthia!  
这篇文章主要为大家详细介绍了C++实现KFC点餐系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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;
};

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

五、结果展示

六、总结

1.本次作业为KFC点餐系统,刚开始的想法是用Java做,但是在看了许多资料结合自己的情况,最终采用C++来写程序,C++确实较Java熟悉了很多。
2.这次只做了基本要求,没有做提高要求,我会在后面的学习中,结合可视化界面和数据库连接,将点餐系统完善。
3.主要运用到设计模式中的策略模式和工厂模式,其中工厂模式负责生产餐厅中的各种食物的对象,策略模式负责在生成小票时避免出现冗杂的if语句。
4.从RPG游戏和KFC点餐系统两次的作业来看,这两次的代码认为量来说都是比较大的,对于其中的一些函数功能的使用,还有设计模式的理解并且不到位。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C语言实现信号槽的项目实践

    C语言实现信号槽的项目实践

    信号槽是观察者模式的一种实现,一个信号就是一个能够被观察的事件,本文主要介绍了C语言实现信号槽的项目实践模具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • C++实现一个扫雷小游戏

    C++实现一个扫雷小游戏

    这篇文章主要为大家详细介绍了C++实现一个扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C++中declspec(dllexport)和declspec(dllimport) 的用法介绍

    C++中declspec(dllexport)和declspec(dllimport) 的用法介绍

    这篇文章介绍了C++中declspec(dllexport)和declspec(dllimport) 的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C++ 压缩文件及文件夹方法 使用zlib开源库

    C++ 压缩文件及文件夹方法 使用zlib开源库

    下面小编就为大家分享一篇C++ 压缩文件及文件夹方法 使用zlib开源库,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • C++超详细讲解单链表的实现

    C++超详细讲解单链表的实现

    单链表是后面要学的双链表以及循环链表的基础,要想继续深入了解数据结构以及C++,我们就要奠定好这块基石!接下来就和我一起学习吧
    2022-03-03
  • C++ STL实现非变易查找算法的示例代码

    C++ STL实现非变易查找算法的示例代码

    C++ STL 中的非变易算法(Non-modifying Algorithms)是指那些不会修改容器内容的算法,是C++提供的一组模板函数,下面我们就来看看这一算法的应用吧
    2023-08-08
  • 带你分分钟玩转C语言指针

    带你分分钟玩转C语言指针

    c语言指针其实是一个整形变量,与其它数据不同的是,它的作用是用来存储其它变量的地址,下面这篇文章主要给大家介绍了关于C语言指针的相关资料,需要的朋友可以参考下
    2022-06-06
  • C++模拟实现string类的实例代码

    C++模拟实现string类的实例代码

    这篇文章主要给大家介绍了C++如何模拟实现string类,文章通过代码示例讲解的非常详细,有完整的实现过程,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • 深度揭秘C++面向对象编程中继承的核心概念

    深度揭秘C++面向对象编程中继承的核心概念

    我们知道C语言是面向过程的编程语言,C++在C语言的基础上进化出了面向对象的模型,而继承就是面向对象的重要属性,下面就让小编来和大家详细讲讲吧
    2023-07-07
  • C语言中((type *)0) 和(type *0)区别小结

    C语言中((type *)0) 和(type *0)区别小结

    ((type *)0) 和 (type *0) 在 C 和 C++ 中有不同的含义和用途,本文主要介绍了C语言中((type *)0) 和(type *0)区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08

最新评论