从键盘输入若干学生信息,写入文本文件中,再从该文本文件中读出学生的信息。
具体要求如下:
(1)应定义学生类Student,成员数据包括学号、姓名和成绩等;
(2)建议用友元函数为学生类重载输入输出流的<<和>>运算符,实现学生信息的整体输入输出功能;例如:
friend istream& operator >> (istream&, Student&);
friend ostream& operator << (ostream&, Student&);
(3) 要求在主函数中,从键盘输入多个学生的信息
(4) 要求将全部学生信息存入文本文件中;
(5) 最后从文件中读出全部学生信息显示到屏幕上,并求平均成绩。
完整代码如下:
#include <bits/stdc++.h>
using namespace std;
class Student
{
char num[11];
char name[20];
int score;
public:
friend istream& operator >> (istream&, Student&);
friend ostream& operator << (ostream&, Student&);
int GetScore()
{
return score;
}
};
istream& operator >> (istream &in, Student &s)
{
cout<<"请输入学生信息:"<<endl;
cout<<"学号:";
in >> s.num;
cout<<"姓名:";
in >> s.name;
cout<<"成绩:";
in >> s.score;
return in;
}
ostream& operator << (ostream &out, Student &s)
{
out <<"学号:"<<s.num<<endl;
out <<"姓名:"<<s.name<<endl;
out <<"成绩:"<<s.score<<endl;
return out;
}
int main()
{
int ave,i;
char ch;
Student s[20];
for(i=0;i<=2;i++)
{
cin>>s[i];
}
ofstream outfile;
outfile.open("imformation.txt",ios::out);
outfile<<s[0]<<endl;
outfile<<s[1]<<endl;
outfile<<s[2]<<endl;
outfile.close();
ifstream infile;
infile.open("imformation.txt");
if(!infile)
{
cout<<"文本内容为空,无法打开!"<<endl;
exit(1);
}
cout <<"下面输出学生信息:"<<endl;
while(infile.get(ch))
{
cout<<ch;
}
infile.close();
cout<<"平均成绩"<<(s[0].GetScore()+s[1].GetScore()+s[2].GetScore())/3;
}
运行示例: