#include #include #include #include // 学生类 class Student { public: // 构造函数 Student(const std::string& name, const std::string& id, int totalScore, int chineseScore, int mathScore, int englishScore, int elective1Score, int elective2Score1, int elective2Score2, int rank) : name(name), id(id), totalScore(totalScore), chineseScore(chineseScore), mathScore(mathScore), englishScore(englishScore), elective1Score(elective1Score), elective2Score1(elective2Score1), elective2Score2(elective2Score2), rank(rank) {} // 打印学生信息 void printInfo() const { std::cout << "Name: " << name << std::endl; std::cout << "ID: " << id << std::endl; std::cout << "Total Score: " << totalScore << std::endl; std::cout << "Chinese Score: " << chineseScore << std::endl; std::cout << "Math Score: " << mathScore << std::endl; std::cout << "English Score: " << englishScore << std::endl; std::cout << " Score: " << totalScore << std::endl; std::cout << "Elective1 Score: " << elective1Score << std::endl; std::cout << "Elective2 Score1: " << elective2Score1 << std::endl; std::cout << "Elective2 Score2: " << elective2Score2 << std::endl; std::cout << "Rank: " << rank << std::endl; } private: std::string name; std::string id; int totalScore; int chineseScore; int mathScore; int englishScore; int elective1Score; int elective2Score1; int elective2Score2; int rank; }; // 学生管理类 class StudentManager { public: // 添加学生 void addStudent(const Student& student) { students.push_back(student); } // 打印所有学生信息 void printAllStudents() const { for (const auto& student : students) { student.printInfo(); std::cout << std::endl; // 添加换行符以便分隔不同学生的信息 } } void saveToFile(const std::string& filename) const { std::ofstream file(filename); if (file.is_open()) { for (const auto& student : students) { // 假设有一个函数可以将Student对象转化为可保存的字符串 std::string studentStr = studentToString(student); file << studentStr << std::endl; } file.close(); std::cout << "学生信息已保存到文件: " << filename << std::endl; } else { std::cerr << "无法打开文件: " << filename << std::endl; } } static std::string studentToString(const Student& student) { std::stringstream ss; ss << s.name << "\t" << s.id << "\t" << s.totalScore << "\t" << s.chineseScore << "\t" << s.mathScore << "\t" << s.englishScore << "\t" << s.elective1Score << "\t" << s.elective2Score1 << "\t" << s.elective2Score2; return ss.str(); private: std::vector students; // 使用STL中的vector来管理学生信息 }; } int main() { StudentManager manager; // 添加学生信息到管理器 ,例如学生张三,学号为123456789,高考总成绩为650,语文成绩为120,数学成绩为130,英语成绩为110,物理成绩为100,化学成绩为90,政治成绩为80,省排名为2000 manager.addStudent(Student("张三", "123456789", 650, 120, 130, 110, 100, 90, 80, 2000)); // 打印所有学生信息 manager.printAllStudents(); StudentManager manager; bool quit = false; while (!quit) { // 显示菜单 std::cout << "1. 添加学生" << std::endl; std::cout << "2. 退出" << std::endl; // 接收用户输入 int choice; std::cin >> choice; switch (choice) { case 1: { std::string name, id; int totalScore, chineseScore, mathScore, englishScore, elective1Score, elective2Score1, elective2Score2, rank; std::cout << "请输入学生姓名: "; std::cin >> name; std::cout << "请输入准考证号: "; std::cin >> id; std::cout << "请输入高考总成绩: "; std::cin >> totalScore; std::cout << "请输入语文成绩: "; std::cin >> chineseScore; std::cout << "请输入数学成绩: "; std::cin >> mathScore; std::cout << "请输入英语成绩: "; std::cin >> englishScore; std::cout << "请输入二选一科目成绩: "; std::cin >> elective1Score; std::cout << "请输入四选二科目一成绩: "; std::cin >> elective2Score1; std::cout << "请输入四选二科目二成绩: "; std::cin >> elective2Score2; std::cout << "请输入省排名: "; std::cin >> rank; // 创建Student对象并添加到管理器 manager.addStudent(Student(name, id, totalScore, chineseScore, mathScore, englishScore, elective1Score, elective2Score1, elective2Score2, rank)); break; } case 2: quit = true; break; default: std::cout << "无效的选择,请重新输入." << std::endl; } } // 保存学生信息到文件 manager.saveToFile("students.txt"); return 0; }