定义一个学生类Student,要求: (1)私有数据成员:m_ID(学号,为int类型),m_Name(姓名,为string类型) (2)公有成员函数:GetID(),GetName()分别用于获取学生的上述信息; (3)Student类的构造函数原型为:Student(int id=你自己学号的末四位,string n=你自己的姓名) (4)编写类Student,并编写一个主程序,主程序中定义一个对象数组,并为该对象数组赋值3个学生对象,这三个学生对象的数据可以自定。 (5)重载输出流运算符<<,使它能输出对象Student,(即输出Student,对象的所有私有数据成员),然后使用该输出流输出这三个同学的基本信息。 (6)最后,请在主程序中使用文件流对象,将这个对象数组中的信息以文件的形式保存在C盘根目录下,文件名为“学生信息.txt”
时间: 2023-06-18 18:07:46 浏览: 235
以下是实现上述要求的代码:
```cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Student {
private:
int m_ID; // 学号
string m_Name; // 姓名
public:
// 构造函数
Student(int id = 0, string n = "") : m_ID(id), m_Name(n) {}
// 获取学号和姓名
int GetID() const { return m_ID; }
string GetName() const { return m_Name; }
// 重载输出流运算符<<,用于输出对象的信息
friend ostream& operator<<(ostream& os, const Student& s) {
os << "学号:" << s.m_ID << ",姓名:" << s.m_Name;
return os;
}
};
int main() {
// 创建对象数组并赋值
Student students[3] = {
Student(20210001, "张三"),
Student(20210002, "李四"),
Student(20210003, "王五")
};
// 输出学生信息
for (int i = 0; i < 3; i++) {
cout << students[i] << endl;
}
// 将学生信息保存到文件
ofstream outfile("C:\\学生信息.txt");
if (!outfile) {
cerr << "无法创建文件!" << endl;
return 1;
}
for (int i = 0; i < 3; i++) {
outfile << students[i].GetID() << " " << students[i].GetName() << endl;
}
outfile.close();
return 0;
}
```
运行程序后,输出结果为:
```
学号:20210001,姓名:张三
学号:20210002,姓名:李四
学号:20210003,姓名:王五
```
在C盘根目录下会生成一个名为“学生信息.txt”的文件,其中保存了三个学生的信息。
阅读全文