题目描述

编写一个程序,已有若干个学生数据,包括学号、姓名、语文成绩、数学成绩和英语成绩。设计不同的成员函数求各们课程的平均分并显示,设计一个disp函数显示学生个人的成绩。

已给出了main()函数,其中每个Student对象表示一个学生的数据,对象函数aver1、aver2、aver3分别是求语文、数学、英语三门课的平均分并显示,disp函数功能是显示学生的姓名、学号和各科成绩。

要求按照main()函数及对应的输出完成Student类的设计,要求Student类中包含学号、姓名、语文成绩、数学成绩和英语成绩等数据成员,包含累计语文总分、累计数学总分和累计英语总分等静态数据成员,另外包含构造函数(参数为学号、姓名、语文成绩、数学成绩、英语成绩)、计算三科平均分的成员函数(aver1、aver2和aver3)以及显示成绩的成员函数(disp)。


输入格式

输入多行,每一行表示一个学生的信息,以“学号 姓名 语文成绩 数学成绩 英语成绩”的形式输入。


输出格式

stu[0]->disp()显示了输入第一位学生的信息,
Student::aver1()计算并显示了语文平均分,
Student::aver2()计算并显示了数学平均分,
Student::aver3()计算并显示了英语平均分。


样例数据

输入

20220101 李一 78 80 95
20220102 王二 80 99 75
20220103 周三 83 91 90
20220104 江四 70 87 87

输出

学号:20220101 姓名:李一 语文成绩:78 数学成绩:80 英语成绩:95
语文平均分:77.75
数学平均分:89.25
英语平均分:86.75

备注

要求输出的平均分保留两位小数。
不能修改main()函数。

int main() {
string no, name;//输入的学号和姓名
double e1, e2, e3;//输入的语文、数学、英语成绩
Student* stu[50] = { NULL };//Student对象数组存储各位学生信息
int i = 0;
while (cin >> no >> name >> e1 >> e2 >> e3) {
if (i >= 50) break;
stu[i] = new Student(no, name, e1, e2, e3);
++i;
}
stu[0]->disp();
Student::aver1();
Student::aver2();
Student::aver3();
return 0;
}


操作

评测记录

优秀代码

信息

时间限制: 1s
内存限制: 128MB
评测模式: Normal

题解