c++ 模拟一个学生成绩管理系统,需要具备以下特点: 1. 构建学生信息类,实现单个学生信息的管理 管理学生信息变量,单个学生的录入,单个学生的输出,学生信息存盘,学生信息读取。 2. 构建班级信息类,实现多个学生(数组)的输入,存盘,取出。 学生类数组,整个数组的录入,整个数组的输出,数组的存盘,数组的读取 3. 思考程序的架构,比如存储学生信息的时候应该如何在两个类间分配执行的功能? 编写main函数完成该功能。 该函数描述工作的流程
时间: 2023-12-05 12:05:52 浏览: 70
好的,以下是一个简单的 C++ 学生成绩管理系统的实现,满足上述要求:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
// 学生信息类
class Student {
private:
string name; // 姓名
string id; // 学号
string gender; // 性别
int age; // 年龄
float score; // 成绩
public:
Student() {
name = "";
id = "";
gender = "";
age = 0;
score = 0.0f;
}
void input() {
cout << "请输入姓名:";
cin >> name;
cout << "请输入学号:";
cin >> id;
cout << "请输入性别:";
cin >> gender;
cout << "请输入年龄:";
cin >> age;
cout << "请输入成绩:";
cin >> score;
}
void output() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "性别:" << gender << endl;
cout << "年龄:" << age << endl;
cout << "成绩:" << score << endl;
}
void save(ofstream &out) {
out << name << endl;
out << id << endl;
out << gender << endl;
out << age << endl;
out << score << endl;
}
void load(ifstream &in) {
in >> name;
in >> id;
in >> gender;
in >> age;
in >> score;
}
};
// 班级信息类
class Class {
private:
Student students[100]; // 学生信息数组
int size; // 学生数量
public:
Class() {
size = 0;
}
void input() {
cout << "输入学生数量:";
cin >> size;
for (int i = 0; i < size; i++) {
cout << "输入第" << i + 1 << "个学生信息:" << endl;
students[i].input();
}
}
void output() {
for (int i = 0; i < size; i++) {
cout << "第" << i + 1 << "个学生信息:" << endl;
students[i].output();
}
}
void save(ofstream &out) {
out << size << endl;
for (int i = 0; i < size; i++) {
students[i].save(out);
}
}
void load(ifstream &in) {
in >> size;
for (int i = 0; i < size; i++) {
students[i].load(in);
}
}
};
int main() {
Class c;
int choice;
cout << "1. 录入学生信息" << endl;
cout << "2. 输出学生信息" << endl;
cout << "3. 保存学生信息" << endl;
cout << "4. 读取学生信息" << endl;
cout << "5. 退出" << endl;
do {
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
c.input();
break;
case 2:
c.output();
break;
case 3:
{
ofstream out("students.txt");
c.save(out);
out.close();
}
cout << "学生信息已保存到文件 students.txt" << endl;
break;
case 4:
{
ifstream in("students.txt");
c.load(in);
in.close();
}
cout << "学生信息已从文件 students.txt 中读取" << endl;
break;
case 5:
cout << "退出程序" << endl;
break;
default:
cout << "输入错误,请重新选择" << endl;
}
} while (choice != 5);
return 0;
}
```
在上述代码中,学生信息类和班级信息类分别实现了单个学生和多个学生的信息管理,包括录入、输出、存盘和读取等操作。在程序中,通过创建班级信息类的对象来进行学生信息的管理,主函数中通过菜单选择来调用不同的操作函数。
在存储学生信息时,我们可以将班级信息类对象作为参数传递给存盘函数,然后在存盘函数中通过调用学生信息类的存盘函数来实现对每个学生信息的存储。读取学生信息时也可以采用类似的方法。
阅读全文