C++ 编写一个关于多个学生某门课程总分和平均分的程序

题目:编写一个关于多个学生某门课程总分和平均分的程序.要求:1)每个学生信息包括姓名(name)和某门功课成绩(score);2)包括两个静态数据成员(总分和平均分);3)包括求总分的友元函数;4)另有输出总分和平均分的静态成员函数.最后定义具有10个元素的对象数组进行测试.
编写一个关于多个学生某门课程总分和平均分的程序.要求:1)每个学生信息包括姓名(name)和某门功课成绩(score);2)包括两个静态数据成员(总分和平均分);3)包括求总分的友元函数;4)另有输出总分和平均分的静态成员函数.最后定义具有10个元素的对象数组进行测试.

class Score
{
private:
string name;
double score;
static double TotalScore;
static double AverageScore;
static int num; //计算平均分需要
public:
Score(string n="", double s=0):name(n), score(s){}
void Set(string n, double s){name=n; score=s;} //定义数组对象时,需要对每个对象重新赋值
static void Output(){cout << "TotalScore = " << TotalScore << ", AverageScore = " << AverageScore << endl;}
friend void ComputeTotalScore(const Score& a);
};

double Score::TotalScore = 0;
double Score::AverageScore = 0;
int Score::num = 0;

void ComputeTotalScore(const Score& a)
{
Score::TotalScore += a.score;
Score::num++;
Score::AverageScore = Score::TotalScore/Score::num;
}

void main()
{
Score arr[10];
string name = "";
double score = 0;

for(int i=0; i<10; i++)
{
cout << "Input " << i+1 << " Student Name and Score: ";
cin >> name >> score;
arr[i].Set(name, score);
ComputeTotalScore(arr[i]);
}
arr[9].Output();
}
温馨提示:答案为网友推荐,仅供参考
相似回答