C++定义一个学生类,成员变量包括学号和四门课的成绩

要求计算:(1)每个学生的总成绩(2)每门课程的平均分(3)输出总分最高的学生的姓名和总分数(4)输出每门课单科分最高的学生的学号和分数。(这里假设有5个学生,每个学生的... 要求计算:(1)每个学生的总成绩(2)每门课程的平均分(3)输出总分最高的学生的姓名和总分数(4)输出每门课单科分最高的学生的学号和分数。(这里假设有5个学生,每个学生的学号和成绩从键盘输入)
哪位大神能帮我做做,十万火急啊!
展开
 我来答
cc38867闲负
推荐于2017-09-03 · 超过53用户采纳过TA的回答
知道答主
回答量:124
采纳率:66%
帮助的人:52.7万
展开全部
#include <iostream>
#include <string>
using namespace std;

class Student {
private:
enum { SIZE = 5 };
string SName;
string SNo;
double Score[SIZE];
public:
Student(){}
Student(string name, string no, double sc[]);
void Show() const;
double GetAverage() const { return Score[SIZE - 1]; }
double GetOptimumScore() const;
};

Student::Student(string name, string no, double sc[]) {
SName = name;
SNo = no;
Score[SIZE - 1] = 0.0;
for(int i = 0; i < SIZE - 1; ++i) {
Score[i] = sc[i];
Score[SIZE - 1] += sc[i];
}
Score[SIZE - 1] = Score[SIZE - 1]/(SIZE - 1);
}

void Student::Show() const {
cout << SName << "\t";
cout << SNo << "\t";
cout.precision();
cout.showpoint;
for(int i = 0; i < SIZE; ++i) cout << Score[i] << "\t";
cout << endl;
}

double Student::GetOptimumScore() const {
double max = 0.0;
for(int i = 0; i < SIZE - 1; ++i)
if(Score[i] > max) max = Score[i];
return max;
}

int main() {
Student s[5];
string name,no;
double score[5];
for(int i = 0; i < 5; ++i) {
cout << "学生" << i + 1 << "信息\n";
cout << "姓名 : ";
cin >> name;
cout << "学号 : " ;
cin >> no;
cout << "高等数学 : ";
cin >> score[0];
cout << "英语 : ";
cin >> score[1];
cout << "C编程 : ";
cin >> score[2];
cout << "电脑硬件 : ";
cin >> score[3];
cout << endl;
s[i] = Student(name,no,score);
}
cout << "姓名\t学号\t高数\t英语\t编程\t硬件\t\n";
for(int i = 0; i < 48; ++i) cout << "*";
cout << endl;
for(int i = 0; i < 5; ++i) s[i].Show();
cout << endl;
return 0;
}
请采纳。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式