学校拟开发一套食堂菜品管理系统,以便对菜品和同学们的评价进行管理,其中包含如下信息:
商户:商户名称、柜面位置、电话……
菜品:菜品编号、菜品名称、价格、所属商户……
学生:注册账号、昵称、电话……
食堂里的商户均不同名,一个商户可以提供多样菜品;
食堂对所有商户的菜品进行编号,每样菜品由其唯一的商户提供;
学生可对菜品进行评价,系统要存储学生对菜品的评分、评价内容和评价时间。
基本要求包括:
1.提供用户操作的菜单和界面,用户至少可分为学生和商户两种类型。
2.设计相应的信息表,用于记录信息,如学生信息表、商户信息表、菜品信息表、评价信息表等,要求以文件的形式存储,格式可以自行设计。
3.商户可进行如下操作:本商户信息的新增、查看、修改、删除等。发布和更新菜品信息。查询本商户菜品评价信息。
4.学生可进行如下操作:个人信息的新增、查看、修改、删除等。对各菜品信息、评价信息、统计信息(评分高低排序)的浏览。对各菜品的评分和评价。
5.系统退出时,更新相应文件中的信息;当下次运行程序时,从文件读取所有信息。
食堂菜品管理系统c++代码
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
13条回答 默认 最新
关注🌈🌈🌈参考通义千问和郭老师的小迷弟雅思莫了-编写提供🌈🌈🌈
您可以参考如下,如果回答的不正确,及时评论区回复我,我会根据你错误描述追加回复,直到您满意为止。先提供你运行截图:

代码:
#include <iostream> #include <fstream> #include <vector> #include <algorithm> using namespace std; // 商户结构体 struct Merchant { string name; string location; string phone; }; // 菜品结构体 struct FoodItem { int id; string name; double price; string merchantName; }; // 学生结构体 struct Student { string username; string nickname; string phone; }; // 评价结构体 struct Review { string studentUsername; int foodItemId; int rating; string comment; string timestamp; }; // 存储商户信息的容器 vector<Merchant> merchants; // 存储菜品信息的容器 vector<FoodItem> foodItems; // 存储学生信息的容器 vector<Student> students; // 存储评价信息的容器 vector<Review> reviews; // 保存商户信息到文件 void saveMerchantsToFile() { ofstream file("merchants.txt"); for (const auto& merchant : merchants) { file << merchant.name << " " << merchant.location << " " << merchant.phone << endl; } file.close(); } // 从文件加载商户信息 void loadMerchantsFromFile() { ifstream file("merchants.txt"); Merchant merchant; while (file >> merchant.name >> merchant.location >> merchant.phone) { merchants.push_back(merchant); } file.close(); } // 商户菜单 void merchantMenu() { int choice; do { cout << "商户菜单:" << endl; cout << "1. 新增菜品" << endl; cout << "2. 查看菜品" << endl; cout << "3. 修改菜品" << endl; cout << "4. 删除菜品" << endl; cout << "5. 查询评价信息" << endl; cout << "6. 返回上一级菜单" << endl; cout << "请选择操作: "; cin >> choice; switch (choice) { case 1: { cout << "请输入新增菜品的信息:" << endl; FoodItem newItem; cout << "菜品编号:"; cin >> newItem.id; cout << "菜品名称:"; cin >> newItem.name; cout << "价格:"; cin >> newItem.price; cout << "所属商户名称:"; cin >> newItem.merchantName; // 将新菜品加入容器 foodItems.push_back(newItem); cout << "菜品新增成功!" << endl; break; } case 2: { cout << "当前菜品信息如下:" << endl; for (const auto& item : foodItems) { cout << "菜品编号:" << item.id << endl; cout << "菜品名称:" << item.name << endl; cout << "价格:" << item.price << endl; cout << "所属商户名称:" << item.merchantName << endl; cout << "-------------------------" << endl; } break; } case 3: { int idToModify; cout << "请输入要修改的菜品编号:"; cin >> idToModify; auto it = find_if(foodItems.begin(), foodItems.end(), [idToModify](const FoodItem& item) { return item.id == idToModify; }); if (it != foodItems.end()) { cout << "请输入新的菜品信息:" << endl; cout << "菜品名称:"; cin >> it->name; cout << "价格:"; cin >> it->price; cout << "修改成功!" << endl; } else { cout << "未找到该菜品编号!" << endl; } break; } case 4: { int idToDelete; cout << "请输入要删除的菜品编号:"; cin >> idToDelete; auto it = remove_if(foodItems.begin(), foodItems.end(), [idToDelete](const FoodItem& item) { return item.id == idToDelete; }); if (it != foodItems.end()) { foodItems.erase(it, foodItems.end()); cout << "删除成功!" << endl; } else { cout << "未找到该菜品编号!" << endl; } break; } case 5: { int idToQuery; cout << "请输入要查询评价信息的菜品编号:"; cin >> idToQuery; cout << "菜品编号为 " << idToQuery << " 的评价信息如下:" << endl; for (const auto& review : reviews) { if (review.foodItemId == idToQuery) { cout << "学生用户名:" << review.studentUsername << endl; cout << "评分:" << review.rating << endl; cout << "评价内容:" << review.comment << endl; cout << "时间戳:" << review.timestamp << endl; cout << "-------------------------" << endl; } } break; } case 6: { cout << "返回上一级菜单" << endl; break; } default: cout << "无效的选择,请重新选择!" << endl; } } while (choice != 6); } // 学生菜单 void studentMenu() { int choice; do { cout << "学生菜单:" << endl; cout << "1. 查看菜品信息" << endl; cout << "2. 评价菜品" << endl; cout << "3. 返回上一级菜单" << endl; cout << "请选择操作: "; cin >> choice; switch (choice) { case 1: cout << "查看菜品信息功能暂未实现" << endl; break; case 2: cout << "评价菜品功能暂未实现" << endl; break; case 3: cout << "返回上一级菜单" << endl; break; default: cout << "无效的选择,请重新选择!" << endl; } } while (choice != 3); } // 运行系统 void runSystem() { int choice; do { cout << "欢迎使用食堂菜品管理系统" << endl; cout << "1. 商户登录" << endl; cout << "2. 学生登录" << endl; cout << "3. 退出" << endl; cout << "请选择操作: "; cin >> choice; switch (choice) { case 1: merchantMenu(); break; case 2: studentMenu(); break; case 3: cout << "感谢使用,再见!" << endl; // 退出系统前保存信息到文件 saveMerchantsToFile(); // 保存菜品、学生和评价信息到文件的代码类似 break; default: cout << "无效的选择,请重新选择!" << endl; } } while (choice != 3); } int main() { // 从文件加载商户信息 loadMerchantsFromFile(); // 类似的方式加载菜品、学生和评价信息 runSystem(); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录