c++ 模拟一个学生成绩管理系统,需要具备以下特点: 1. 构建学生信息类,实现单个学生信息的管理 管理学生信息变量,单个学生的录入,单个学生的输出,学生信息存盘,学生信息读取。 2. 构建班级信息类,实现多个学生(数组)的输入,存盘,取出。 学生类数组,整个数组的录入,整个数组的输出,数组的存盘,数组的读取 3. 思考程序的架构,比如存储学生信息的时候应该如何在两个类间分配执行的功能? 编写main函数完成该功能。 该函数描述工作的流程
时间: 2023-12-02 21:06:41 浏览: 103
好的,以下是一份C++代码,实现了一个简单的学生成绩管理系统。代码中包括了学生信息类(Student)、班级信息类(Class)以及main函数实现的流程。
```
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// 学生信息类
class Student {
private:
string name; // 姓名
int id; // 学号
char gender; // 性别
int age; // 年龄
float score; // 成绩
public:
// 录入学生信息
void input() {
cout << "请输入学生的姓名:";
cin >> name;
cout << "请输入学生的学号:";
cin >> id;
cout << "请输入学生的性别(m/f):";
cin >> gender;
cout << "请输入学生的年龄:";
cin >> age;
cout << "请输入学生的成绩:";
cin >> score;
}
// 输出学生信息
void output() const {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "性别:" << gender << endl;
cout << "年龄:" << age << endl;
cout << "成绩:" << score << endl;
}
// 学生信息存盘
void save(ofstream& out) const {
out << name << " " << id << " " << gender << " " << age << " " << score << endl;
}
// 学生信息读取
void load(ifstream& in) {
in >> name >> id >> gender >> age >> score;
}
};
// 班级信息类
class Class {
private:
static const int MAXSIZE = 100; // 最大学生数量
Student students[MAXSIZE]; // 学生数组
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() const {
for (int i = 0; i < size; i++) {
cout << "第" << i + 1 << "个学生的信息:" << endl;
students[i].output();
cout << endl;
}
}
// 数组的存盘
void save(ofstream& out) const {
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;
while (true) {
cout << endl;
cout << "请选择要进行的操作:" << endl;
cout << "1. 录入学生信息" << endl;
cout << "2. 输出学生信息" << endl;
cout << "3. 学生信息存盘" << endl;
cout << "4. 学生信息读取" << endl;
cout << "5. 退出程序" << endl;
cin >> choice;
switch (choice) {
case 1:
c.input();
break;
case 2:
c.output();
break;
case 3:
// 打开一个文件进行写操作
ofstream fout("students.txt");
c.save(fout);
fout.close();
break;
case 4:
// 打开一个文件进行读操作
ifstream fin("students.txt");
c.load(fin);
fin.close();
break;
case 5:
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```
在这份代码中,我们使用了类的封装来管理学生信息和班级信息,将相关的变量和函数封装到了各自的类中。在main函数中,我们通过班级信息类的对象c来实现整个程序的流程,包括学生信息的录入、输出、存盘、读取等。我们还通过文件进行了学生信息的存储和读取,将班级信息类和文件操作结合起来,实现了一个简单的学生成绩管理系统。
阅读全文