C++实现:功能完备的学生信息管理系统,含维护、查询、统计与排序
好的,下面是一个简单的C++程序,用于实现学生信息管理系统。这个系统包括信息维护、信息查询、成绩统计和课程成绩排序功能。 ```cpp #include <iostream> #include <vector> #include <algorithm> #include <string> struct Student { std::string name; int id; float score; }; class StudentManagementSystem { public: void addStudent() { Student student; std::cout << "输入学生姓名: "; std::cin >> student.name; std::cout << "输入学生ID: "; std::cin >> student.id; std::cout << "输入学生成绩: "; std::cin >> student.score; students.push_back(student); std::cout << "学生信息添加成功!" << std::endl; } void removeStudent() { int id; std::cout << "输入要删除的学生ID: "; std::cin >> id; auto it = std::find_if(students.begin(), students.end(), [id](const Student& s) { return s.id == id; }); if (it != students.end()) { students.erase(it); std::cout << "学生信息删除成功!" << std::endl; } else { std::cout << "未找到该学生信息!" << std::endl; } } void queryStudent() { int id; std::cout << "输入要查询的学生ID: "; std::cin >> id; auto it = std::find_if(students.begin(), students.end(), [id](const Student& s) { return s.id == id; }); if (it != students.end()) { std::cout << "学生姓名: " << it->name << ", 学生ID: " << it->id << ", 成绩: " << it->score << std::endl; } else { std::cout << "未找到该学生信息!" << std::endl; } } void displayAllStudents() { for (const auto& student : students) { std::cout << "学生姓名: " << student.name << ", 学生ID: " << student.id << ", 成绩: " << student.score << std::endl; } } void sortStudentsByScore() { std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.score > b.score; }); std::cout << "按成绩排序后的学生信息:" << std::endl; displayAllStudents(); } private: std::vector<Student> students; }; int main() { StudentManagementSystem sms; int choice; while (true) { std::cout << "\n学生信息管理系统\n"; std::cout << "1. 添加学生信息\n"; std::cout << "2. 删除学生信息\n"; std::cout << "3. 查询学生信息\n"; std::cout << "4. 显示所有学生信息\n"; std::cout << "5. 按成绩排序\n"; std::cout << "6. 退出\n"; std::cout << "请选择操作: "; std::cin >> choice; switch (choice) { case 1: sms.addStudent(); break; case 2: sms.removeStudent(); break; case 3: sms.queryStudent(); break; case 4: sms.displayAllStudents(); break; case 5: sms.sortStudentsByScore(); break; case 6: return 0; default: std::cout << "无效的选择,请重新输入!" << std::endl; } } return 0; } ``` ### 额外需要注意的逻辑点: 1. **输入验证**:在添加或查询学生信息时,确保输入的数据格式正确,例如ID应该是整数,成绩应该是浮点数。 2. **异常处理**:在删除学生信息时,如果未找到该学生,应该给出提示而不是直接报错。 3. **数据持久化**:当前程序在程序关闭后会丢失所有数据。可以考虑将数据保存到文件中,以便下次启动时恢复。 ######[AI写代码神器 | 915点数解答 | 2024-11-24 18:33:37]
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)389
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)374
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)414
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)358
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)361
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)306
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)318
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)382
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)451
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)443
- 补全含错误代码:Vue结合Element UI组件实现查询、新增及表格展示功能 ( | 400点数解答 | 2023-12-19 15:20:50)454
- Java程序模拟教学选课:林老师开课,58 位学生选课男女比例大揭秘( | 2653点数解答 | 2024-04-02 11:00:16)490