用C++编写程序设计学生类Student和学生管理类StudentManger,并完成编码实现和测试,具体功能如下: (1)Student类包含学生学号、姓名、性别、分数等信息,定义构造函数、set函数、get函数等; (2)StudentManger类数据成员包含Student数组、学生个数,定义构造函数、save函数、read函数; (3)save函数的功能是将学生信息保存到文件中,read函数的功能是读取文件信息内容到Student数组中; (4)编写主函数完成功能测试。
时间: 2024-02-17 08:00:49 浏览: 50
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
好的,我会按照您的要求进行回答。 首先,我们来看一下Student类的实现:
```
#include <string>
using namespace std;
class Student {
private:
string id; // 学生学号
string name; // 学生姓名
string sex; // 学生性别
int score; // 学生成绩
public:
Student() {} // 默认构造函数
Student(string id, string name, string sex, int score) {
this->id = id;
this->name = name;
this->sex = sex;
this->score = score;
}
void setId(string id) { this->id = id; }
void setName(string name) { this->name = name; }
void setSex(string sex) { this->sex = sex; }
void setScore(int score) { this->score = score; }
string getId() { return id; }
string getName() { return name; }
string getSex() { return sex; }
int getScore() { return score; }
};
```
这里我们定义了一个Student类,包含了学生的学号、姓名、性别、分数等信息,同时实现了构造函数和set函数、get函数等。
接下来,我们来看一下StudentManger类的实现:
```
#include <iostream>
#include <fstream>
#include "Student.h"
using namespace std;
class StudentManager {
private:
Student *students; // 学生数组
int size; // 学生个数
public:
StudentManager() {
students = NULL;
size = 0;
}
~StudentManager() {
if (students != NULL)
delete[] students;
}
void save() {
ofstream out("students.txt");
if (!out.is_open()) {
cout << "打开文件失败!" << endl;
return;
}
out << size << endl;
for (int i = 0; i < size; i++) {
out << students[i].getId() << " "
<< students[i].getName() << " "
<< students[i].getSex() << " "
<< students[i].getScore() << endl;
}
out.close();
}
void read() {
ifstream in("students.txt");
if (!in.is_open()) {
cout << "打开文件失败!" << endl;
return;
}
if (students != NULL)
delete[] students;
in >> size;
students = new Student[size];
for (int i = 0; i < size; i++) {
string id, name, sex;
int score;
in >> id >> name >> sex >> score;
students[i].setId(id);
students[i].setName(name);
students[i].setSex(sex);
students[i].setScore(score);
}
in.close();
}
};
```
这里我们定义了一个StudentManager类,包含了学生数组和学生个数,同时实现了构造函数、save函数和read函数。
save函数的功能是将学生信息保存到文件中,read函数的功能是读取文件信息内容到Student数组中。
最后,我们来看一下测试代码:
```
int main() {
StudentManager manager;
manager.read(); // 读取学生信息
manager.save(); // 保存学生信息
return 0;
}
```
这里我们首先创建了一个StudentManager对象,然后调用read函数读取学生信息,再调用save函数保存学生信息。
这样,在程序运行后,就可以将学生信息保存到文件中,并在下次运行程序时读取文件中的学生信息。
阅读全文