编程构建一个Student类,并在main函数中创建5个对象(对象信息如输入样例所示),其中每个对象的数据包括学号num、姓名name、年龄age以及数学maths、英语english、语文chinese三门功课的分数,然后求出每个人的平均分数ave,将学号、姓名和平均分数输出到磁盘文件STUD.DAT中,最后从STUD.DAT文件中读出这些数据,并显示在屏幕上。
输入格式:
5个学生的数据(学号、姓名、年龄以及数学、英语、语文三门功课的分数)。
输出格式:
从STUD.DAT文件中读出学号、姓名和平均分数。
样例">样例">样例">输入样例:
在这里给出一组输入。例如:
Student stu1(1,'A',19,80,79,67);
Student stu2(2,'B',20,90,68,43);
Student stu3(3,'C',19,56,48,29);
Student stu4(4,'D',20,93,44,57);
Student stu5(5,'E',19,33,55,74);
输出样例:
在这里给出相应的输出。例如:
1 A 75.3333
2 B 67
3 C 44.3333
4 D 64.6667
5 E 54
我知道你们都是来自同一所学校,中国xx大学
废话少说直接上代码
#include<iostream>
#include<algorithm>
#include<string>
#include<fstream>
using namespace std;
class Student
{
public:
int num;
char name;
int age;
int maths;
int english;
int chinese;
double ave;
public:
Student(int Num,char N,int a,int m,int e,int c)
{
num=Num;
name=N;
age=a;
maths=m;
english=e;
chinese=c;
ave=(double)(maths+english+chinese)/3;
}
~Student()
{ }
};
struct per
{
int n;
char na;
double av;
};
per input(Student s)
{
per p;
p.n=s.num;
p.na=s.name;
p.av=s.ave;
return p;
}
void output(per p)
{
cout<<p.n<<" "<<p.na<<" "<<p.av<<endl;
}
int main()
{
Student stu1(1,'A',19,80,79,67);
Student stu2(2,'B',20,90,68,43);
Student stu3(3,'C',19,56,48,29);
Student stu4(4,'D',20,93,44,57);
Student stu5(5,'E',19,33,55,74);
ofstream out_file;
out_file.open("STUD.DAT",ios::out|ios::binary);
per p=input(stu1);
out_file.write((char *)&p,sizeof(per));
per p1=input(stu2);
out_file.write((char *)&p1,sizeof(per));
per p2=input(stu3);
out_file.write((char *)&p2,sizeof(per));
per p3=input(stu4);
out_file.write((char *)&p3,sizeof(per));
per p4=input(stu5);
out_file.write((char *)&p4,sizeof(per));
ifstream in_file;
in_file.open("STUD.DAT",ios::in|ios::binary);
in_file.read((char *)&p,sizeof(per));
output(p);
in_file.read((char *)&p1,sizeof(per));
output(p1);
in_file.read((char *)&p2,sizeof(per));
output(p2);
in_file.read((char *)&p3,sizeof(per));
output(p3);
in_file.read((char *)&p4,sizeof(per));
output(p4);
}
这个题的输入,只能自己用类定义,才能输入进去,其实认真看看还是,cout,我相信你们已经被这道题折磨疯了,我叫xht,不用谢我