利用文件IO实现学生管理系统;一个学生一个文件;文件名称为学号.data
时间: 2024-02-23 15:02:43 浏览: 80
学生信息管理系统, 实现学生信息包括:学号、姓名、性别、年龄、班级等信息
5星 · 资源好评率100%
好的,实现学生管理系统的代码如下:
```
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct Student {
int id;
string name;
int age;
};
void addStudent() {
Student student;
cout << "请输入学生信息:" << endl;
cout << "学号:";
cin >> student.id;
cout << "姓名:";
cin >> student.name;
cout << "年龄:";
cin >> student.age;
string filename = to_string(student.id) + ".data";
ofstream outfile(filename, ios::out | ios::binary);
outfile.write((char*)&student, sizeof(Student));
outfile.close();
cout << "添加成功!" << endl;
}
void searchStudent() {
int id;
cout << "请输入要查询的学生学号:";
cin >> id;
string filename = to_string(id) + ".data";
ifstream infile(filename, ios::in | ios::binary);
if (!infile.is_open()) {
cout << "没有找到该学生!" << endl;
return;
}
Student student;
infile.read((char*)&student, sizeof(Student));
cout << "学号:" << student.id << endl;
cout << "姓名:" << student.name << endl;
cout << "年龄:" << student.age << endl;
infile.close();
}
int main() {
int choice;
do {
cout << "请选择操作:" << endl;
cout << "1. 添加学生" << endl;
cout << "2. 查询学生" << endl;
cout << "3. 退出" << endl;
cin >> choice;
switch (choice) {
case 1:
addStudent();
break;
case 2:
searchStudent();
break;
case 3:
cout << "再见!" << endl;
break;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
} while (choice != 3);
return 0;
}
```
每个学生对应一个文件,文件名为学号加上后缀“.data”。添加学生时,将学生信息写入对应的文件中;查询学生时,根据学号找到对应的文件并读取信息。
注意,为了保证数据文件的二进制存储正确,我们需要将数据类型转换为char*,并指定文件打开方式为二进制。
阅读全文