👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。
C++实现餐厅点餐管理系统(控制台程序)
1. 设计要求
使用c++编写一个餐厅点餐管理系统,主要功能如下:
1.1 主菜单
- 客户点餐功能
- 管理后台功能
- 退出系统功能
2.2 管理后台功能
- 添加菜品信息(名称、价格、数量)
- 删除菜品信息
- 查看菜品信息
- 修改菜品信息
- 客户订单信息
- 返回主菜单
2.3 客户点餐功能
- 显示菜品信息
- 提交菜品订单
2、运行结果
2.1 主菜单
源码关注【测试开发自动化】公众号,回复“餐厅点餐管理系统”获取。文章来源地址https://www.toymoban.com/news/detail-771229.html
2.2 添加菜品
2.3 查看菜品
源码关注【测试开发自动化】公众号,回复“餐厅点餐管理系统”获取。
2.4 删除菜品
2.5 修改菜品
2.6 返回主菜单
2.7 客户点餐
2.8 订单显示
源码关注【测试开发自动化】公众号,回复“餐厅点餐管理系统”获取。
3、代码设计
代码实现了一个简单的餐厅管理系统,包括客户点餐和管理后台两个模式。
3.1 添加菜品
addDish()
: 用于向菜单中添加菜品。函数会提示用户输入菜品名称、价格和数量,并将菜品信息添加到menu
(一个std::map
对象)中。
void addDish() {
std::string name;
double price;
int quantity;
std::cout << "输入菜品名称: ";
std::cin >> name;
std::cout << "输入菜品价格: ";
std::cin >> price;
std::cout << "输入菜品数量: ";
std::cin >> quantity;
menu[name] = { name, price, quantity };
std::cout << "菜品添加成功!" << std::endl;
}
3.2 删除菜品
deleteDish()
: 用于从菜单中删除指定菜品。函数会提示用户输入要删除的菜品名称,然后在menu
中查找并删除该菜品。
void deleteDish() {
std::string name;
std::cout << "输入要删除的菜品名称: ";
std::cin >> name;
menu.erase(name);
std::cout << "菜品删除成功!" << std::endl;
}
3.3 显示菜品
viewDishes()
: 显示当前菜单中的所有菜品及其价格和数量。遍历menu
,输出每个菜品的信息。
void viewDishes() {
for (auto& dish : menu) {
std::cout << dish.second.name << " - ¥" << dish.second.price << " - 数量: " << dish.second.quantity << std::endl;
}
}
3.4 主函数
main()
: 程序的入口函数。根据用户选择的模式执行相应的操作。如果选择模式2(管理后台),则进入一个循环,允许用户选择添加菜品、删除菜品、查看菜品、修改菜品或查看订单等操作。如果选择模式1(客户点餐),则调用placeOrder()
函数来进行点餐。如果选择模式3(退出),则程序结束。
int main() {
int mode;
while (true) {
std::cout << "***********************************************" << std::endl;
std::cout << " 欢迎使用餐厅管理系统" << std::endl;
std::cout << "***********************************************" << std::endl;
std::cout << "选择模式: \n1. 客户点餐 \n2. 管理后台 \n3. 退出" << std::endl;
std::cout << "***********************************************" << std::endl;
std::cout << "请输入模式:";
std::cin >> mode;
if (mode == 2) {
int choice;
while (true) {
std::cout << "-----------------------------------------------" << std::endl;
std::cout << "1. 添加菜品\n2. 删除菜品\n3. 查看菜品\n4. 修改菜品\n5. 查看订单\n6. 返回主菜单" << std::endl;
std::cout << "-----------------------------------------------" << std::endl;
std::cin >> choice;
switch (choice) {
case 1:
addDish();
break;
case 2:
deleteDish();
break;
case 3:
viewDishes();
break;
case 4:
modifyDish();
break;
case 5:
viewOrders();
break;
case 6:
goto mainMenu;
default:
std::cout << "无效选择." << std::endl;
break;
}
}
}
else if (mode == 1) {
static int orderNumber = 1;
placeOrder(orderNumber);
orderNumber++;
}
else if (mode == 3) {
return 0;
}
else {
std::cout << "无效模式." << std::endl;
}
mainMenu:;
}
return 0;
}
四、总结
这段代码实现了一个餐厅管理系统,具有客户点餐和管理后台两种模式。通过使用std::map容器存储菜单和订单信息,代码实现了添加菜品、删除菜品、查看菜品、修改菜品、查看订单和客户点餐等功能。
代码的设计思路主要采用了面向过程的编程范式,将不同的功能封装为独立的函数,实现了模块化的设计。通过主循环和条件判断,代码能够根据用户的选择执行相应的操作,并通过输入和输出处理用户的数据和系统的信息。
尽管代码实现了基本的功能,但它仍然可以进一步改进。例如,可以采用面向对象的设计思路,引入类来表示菜品和订单,并使用更复杂的数据结构和算法来提高系统的性能和灵活性。此外,代码还可以考虑引入持久化数据存储的机制,将菜单和订单信息保存到文件或数据库中。文章来源:https://www.toymoban.com/news/detail-771229.html
源码关注【测试开发自动化】公众号,回复“餐厅点餐管理系统”获取。
到了这里,关于【C++面向对象】C++餐厅点餐管理系统【独一无二】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!