学生管理系统,可以创建一个学生类,其中包含学生信息,以及操作学生信息的成员函数,学生管理类用vector类型,学生信息保存到文件以及从文件中读学生信息可分别放在学生管理类的构造及析构函数中
时间: 2024-04-24 17:26:13 浏览: 77
好的,这是一个更完整的学生管理系统示例,包含了学生类、学生管理类以及将学生信息保存到文件和从文件中读取学生信息的功能。
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
// 学生类
class Student {
public:
Student(const std::string& name, int age, const std::string& major)
: name(name), age(age), major(major) {}
std::string getName() const {
return name;
}
int getAge() const {
return age;
}
std::string getMajor() const {
return major;
}
private:
std::string name;
int age;
std::string major;
};
// 学生管理类
class StudentManager {
public:
StudentManager() {
loadStudentsFromFile();
}
~StudentManager() {
saveStudentsToFile();
}
void addStudent(const Student& student) {
students.push_back(student);
}
void displayStudents() {
for (const auto& student : students) {
std::cout << "Name: " << student.getName() << std::endl;
std::cout << "Age: " << student.getAge() << std::endl;
std::cout << "Major: " << student.getMajor() << std::endl;
std::cout << std::endl;
}
}
private:
std::vector<Student> students;
void loadStudentsFromFile() {
std::ifstream file("students.txt");
if (file.is_open()) {
std::string name, major;
int age;
while (file >> name >> age >> major) {
students.push_back(Student(name, age, major));
}
file.close();
}
}
void saveStudentsToFile() {
std::ofstream file("students.txt");
if (file.is_open()) {
for (const auto& student : students) {
file << student.getName() << " "
<< student.getAge() << " "
<< student.getMajor() << std::endl;
}
file.close();
}
}
};
int main() {
StudentManager manager;
// 添加学生信息
Student student1("Alice", 20, "Computer Science");
manager.addStudent(student1);
Student student2("Bob", 19, "Mathematics");
manager.addStudent(student2);
// 显示学生信息
manager.displayStudents();
return 0;
}
```
在上面的代码中,我们定义了一个 `Student` 类来表示学生信息。然后,我们创建了一个 `StudentManager` 类来管理学生信息。在 `StudentManager` 的构造函数中,我们调用了 `loadStudentsFromFile` 函数,从文件中读取学生信息到 `students` 容器中。在 `StudentManager` 的析构函数中,我们调用了 `saveStudentsToFile` 函数,将学生信息保存到文件。
`StudentManager` 类提供了添加学生和显示学生信息的功能。`addStudent` 函数用于将学生信息添加到 `students` 容器中,`displayStudents` 函数用于遍历 `students` 容器并打印学生信息。
在 `main` 函数中,我们创建了一个 `StudentManager` 对象,并使用 `addStudent` 函数添加了两个学生信息。然后,通过调用 `displayStudents` 函数显示学生信息。
学生信息会保存到名为 "students.txt" 的文件中。每行存储一个学生的姓名、年龄和专业。
这个示例可能还有很多可以扩展的地方,比如添加删除学生、按照某个条件进行排序等。希望对你有所帮助!如果你有任何进一步的问题,请随时提问。
阅读全文