C语言编程:点餐系统实现与代码详解

22 下载量 171 浏览量 更新于2024-09-01 9 收藏 55KB PDF 举报
"C语言实现点餐系统,包括菜品类(shiwu)与套餐类(Taocan),以及简单的用户交互和数据存储功能。" 本文将深入探讨如何使用C语言设计并实现一个简单的点餐系统。这个系统包含了菜单、套餐的选择以及用户订单的保存功能。首先,我们创建了一个名为`shiwu`的类来表示菜品,包含两个属性:菜品名称(mingzi)和价格(price)。这个类还提供了默认构造函数和带参数的构造函数,以便于创建菜品对象。 ```cpp class shiwu { public: string mingzi; int price; shiwu() {} shiwu(string n, int p) : mingzi(n), price(p) {} }; ``` 接着,我们定义了三类菜品数组:主食(zhucan)、小吃(fushi)和饮料(drink),并填充了具体的菜品实例。例如,主食类中包含大汉堡、烤肉饭和鸡肉卷等。 为了组合菜品形成套餐,我们创建了`Taocan`类。它包含套餐名称(mingzi)、三个菜品对象(tc)以及套餐总价(price)。`Taocan`类同样提供了一个构造函数,用于根据指定的菜品构建套餐,并计算总价(减去10元优惠)。 ```cpp class Taocan { public: string mingzi; shiwu tc[3]; int price; Taocan() {} Taocan(string n, shiwu a, shiwu b, shiwu c) { mingzi = n; tc[0] = a; tc[1] = b; tc[2] = c; price = a.price + b.price + c.price - 10; } }; ``` 系统中定义了多个套餐实例,如鸡腿鸡翅套餐、鳕鱼鸡米花套餐和鸡肉卷薯条套餐,分别由不同组合的菜品构成。 用户点餐的部分,我们使用一个动态数组`shiwumyshiwu`来存储用户选择的菜品,变量`mymoney`记录用户当前的钱数,`mynum`则表示用户选择的菜品数量。程序还包含一个`write()`函数,用于将用户的消费清单写入文件,方便查看。 ```cpp shiwu myshiwu[13]; int mymoney; int mynum = 0; void write() { ofstream f("list.txuant"); int i; f << "KFC消费清单\n"; for (i = 0; i < mynum; i++) f << i + 1 << "、" << myshiwu[i].mingzi << "价格:" << myshiwu[i].price << endl; f.close(); } ``` 此外,程序还可能包含其他功能,如用户输入钱数、浏览菜单、选择套餐或菜品、计算总价、确认订单等。这些功能通常会通过控制台交互实现,利用`iostream`库进行输入输出,`conio.h`库中的`_getch()`函数可能用于等待用户按键,使交互更流畅。 通过这样的设计,我们可以构建一个基本的点餐系统,虽然简单,但包含了类的使用、数组操作、文件读写等核心C++特性。这个系统可以根据需求进一步扩展,比如增加用户登录、数据库存储等功能,使其更加完善。对于初学者来说,这是一个很好的实践项目,有助于理解和运用面向对象编程思想。