帮我用C++写一个学生管理系统,功能有1.添加学生 2.显示所有学生 3.通过学号查询学生 4.修改学生信息 5.保存 学生信息到文件中 6.从文件中读取学生信息 0.退出这几个功能
时间: 2024-03-24 16:39:25 浏览: 55
好的,我给您提供一个简单的C++学生管理系统的代码,实现了您提到的6个功能。
```c++
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
struct Student {
string id;
string name;
int age;
};
vector<Student> students;
void addStudent() {
Student student;
cout << "请输入学生学号:";
cin >> student.id;
cout << "请输入学生姓名:";
cin >> student.name;
cout << "请输入学生年龄:";
cin >> student.age;
students.push_back(student);
cout << "添加成功!" << endl;
}
void showStudents() {
if (students.empty()) {
cout << "暂无学生信息!" << endl;
return;
}
cout << "学号\t姓名\t年龄" << endl;
for (auto &student : students) {
cout << student.id << "\t" << student.name << "\t" << student.age << endl;
}
}
void queryStudent() {
string id;
cout << "请输入要查询的学生学号:";
cin >> id;
for (auto &student : students) {
if (student.id == id) {
cout << "学号\t姓名\t年龄" << endl;
cout << student.id << "\t" << student.name << "\t" << student.age << endl;
return;
}
}
cout << "未找到该学生!" << endl;
}
void modifyStudent() {
string id;
cout << "请输入要修改的学生学号:";
cin >> id;
for (auto &student : students) {
if (student.id == id) {
cout << "请输入学生姓名:";
cin >> student.name;
cout << "请输入学生年龄:";
cin >> student.age;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该学生!" << endl;
}
void saveStudents() {
ofstream file("students.txt");
for (auto &student : students) {
file << student.id << " " << student.name << " " << student.age << endl;
}
file.close();
cout << "保存成功!" << endl;
}
void readStudents() {
ifstream file("students.txt");
if (!file) {
cout << "读取失败!" << endl;
return;
}
students.clear();
string id, name;
int age;
while (file >> id >> name >> age) {
students.push_back({id, name, age});
}
file.close();
cout << "读取成功!" << endl;
}
int main() {
while (true) {
cout << "请选择功能:1.添加学生 2.显示所有学生 3.通过学号查询学生 4.修改学生信息 5.保存学生信息到文件中 6.从文件中读取学生信息 0.退出" << endl;
int choice;
cin >> choice;
switch (choice) {
case 0:
return 0;
case 1:
addStudent();
break;
case 2:
showStudents();
break;
case 3:
queryStudent();
break;
case 4:
modifyStudent();
break;
case 5:
saveStudents();
break;
case 6:
readStudents();
break;
default:
cout << "输入有误,请重新输入!" << endl;
}
}
}
```
这个学生管理系统使用了结构体 `Student` 来存储学生信息,并且使用了 `vector` 动态数组来存储所有学生信息。其中函数 `addStudent` 实现添加学生的功能,函数 `showStudents` 实现显示所有学生的功能,函数 `queryStudent` 实现通过学号查询学生的功能,函数 `modifyStudent` 实现修改学生信息的功能,函数 `saveStudents` 实现保存学生信息到文件中的功能,函数 `readStudents` 实现从文件中读取学生信息的功能。在 `main` 函数中,用户可以通过输入数字选择对应的功能,也可以通过输入 0 来退出程序。此外,程序还会将学生信息保存到文件 `students.txt` 中,以便下次启动程序时读取已保存的学生信息。
阅读全文