C++实现顺序存储结构的科技竞赛志愿者名册管理程序:多功能菜单操作全解析
```cpp #include <iostream> #include <string> #include <vector> #include <algorithm> struct Volunteer { std::string id; std::string name; std::string phone; int hours; }; std::vector<Volunteer> roster; void addVolunteer(int n) { std::string id, name, phone; std::cout << "Please enter the information for " << n << " volunteers:" << std::endl; for (int i = 0; i < n; i++) { Volunteer vol; std::cout << "Volunteer #" << i+1 << " - ID: "; std::cin >> vol.id; std::cout << "Volunteer #" << i+1 << " - Name: "; std::cin >> vol.name; std::cout << "Volunteer #" << i+1 << " - Phone: "; std::cin >> vol.phone; vol.hours = 0; roster.push_back(vol); } } void insertVolunteer(int pos) { Volunteer vol; std::cout << "Enter the information for the volunteer to be inserted:" << std::endl; std::cout << "Volunteer ID: "; std::cin >> vol.id; std::cout << "Volunteer Name: "; std::cin >> vol.name; std::cout << "Volunteer Phone: "; std::cin >> vol.phone; vol.hours = 0; roster.insert(roster.begin() + pos - 1, vol); } void editVolunteer(std::string identifier) { for (int i = 0; i < roster.size(); i++) { if (roster[i].id == identifier || roster[i].name == identifier) { std::cout << "Enter new information for the volunteer:" << std::endl; std::cout << "New ID: "; std::cin >> roster[i].id; std::cout << "New Name: "; std::cin >> roster[i].name; std::cout << "New Phone: "; std::cin >> roster[i].phone; return; } } std::cout << "Volunteer not found." << std::endl; } void deleteVolunteer(std::string identifier) { for (auto it = roster.begin(); it != roster.end(); ) { if (it->id == identifier) { it = roster.erase(it); } else { ++it; } } } void printRoster() { std::cout << "Volunteer Roster:" << std::endl; for (const Volunteer& vol : roster) { std::cout << "ID: " << vol.id << " | Name: " << vol.name << " | Phone: " << vol.phone << " | Hours: " << vol.hours << std::endl; } std::cout << "Total volunteers: " << roster.size() << std::endl; } void sortRoster() { std::sort(roster.begin(), roster.end(), [](const Volunteer& a, const Volunteer& b) { return a.hours > b.hours; }); } int main() { addVolunteer(10); int choice; while (true) { std::cout << "\nMenu:" << std::endl; std::cout << "1. Add volunteers" << std::endl; std::cout << "2. Insert volunteer" << std::endl; std::cout << "3. Edit volunteer" << std::endl; std::cout << "4. Delete volunteer" << std::endl; std::cout << "5. Print roster" << std::endl; std::cout << "6. Sort roster by hours" << std::endl; std::cout << "7. Exit" << std::endl; std::cout << "Enter your choice: "; std::cin >> choice; switch (choice) { case 1: int n; std::cout << "Enter number of volunteers to add: "; std::cin >> n; addVolunteer(n); break; case 2: int pos; std::cout << "Enter position to insert volunteer: "; std::cin >> pos; insertVolunteer(pos); break; case 3: std::string identifier; std::cout << "Enter volunteer ID or Name to edit: "; std::cin >> identifier; editVolunteer(identifier); break; case 4: std::cout << "Enter volunteer ID to delete: "; std::cin >> identifier; deleteVolunteer(identifier); break; case 5: printRoster(); break; case 6: sortRoster(); std::cout << "Roster sorted by hours." << std::endl; printRoster(); break; case 7: return 0; default: std::cout << "Invalid choice. Please try again." << std::endl; break; } } return 0; } ``` ######[AI写代码神器 | 2934点数解答 | 2024-12-16 11:11:39]
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)102
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)108
- Java实现有序集合合并与交集算法(顺序表+单链表)(百度文心 | 1247点数解答 | 2026-03-25 10:35:22)28
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- 7 - 8菜单计价程序-2:Java实现点菜计价与订单管理,附详细代码及注意事项(DeepSeek | 1256点数解答 | 2025-10-17 17:32:14)142
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)308
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)328
- 数据结构:揭示实体固有关系,助力信息管理与开发(GPT | 178点数解答 | 2024-10-20 14:06:34)209
- 重新定义字母大小关系:让 “L 队” 字典序小于 “某 E” 的代码实现与分析(字节豆包 | 595点数解答 | 2025-12-03 19:44:59)83
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)73
- Java 实现将 List<Map<String, Integer>> 中 Map 的 Key 重新组装到新 List:代码解析与注意事项(字节豆包 | 587点数解答 | 2026-01-12 12:52:02)50
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)350