用vc++ 静态数据成员统计某门课程参加考试的学生总数和学生成绩的平均值 谢谢
#include <iostream>
using namespace std;
class Course {
public:
Course() {}
void addScore(double score) {
// 添加学生成绩,并更新静态数据成员
scoreSum += score;
numStudents++;
}
static int numStudents; // 学生总数
static double scoreSum; // 学生成绩的总和
};
// 在类外初始化静态数据成员
int Course::numStudents = 0;
double Course::scoreSum = 0.0;
int main() {
Course course;
// 添加一些学生成绩供测试
course.addScore(85);
course.addScore(92.5);
course.addScore(78);
course.addScore(89);
cout << "参加考试的学生总数:" << Course::numStudents << endl;
cout << "学生成绩的平均值:" << Course::scoreSum / Course::numStudents << endl;
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
class Exam {
public:
Exam(int score) : score_(score) {
++count_;
sum_ += score_;
}
static int getCount() {
return count_;
}
static double getAverage() {
return static_cast<double>(sum_) / count_;
}
private:
int score_;
static int count_;
static int sum_;
};
int Exam::count_ = 0;
int Exam::sum_ = 0;
int main() {
vector<Exam> exams;
exams.emplace_back(80);
exams.emplace_back(90);
exams.emplace_back(70);
cout << "Total number of students: " << Exam::getCount() << endl;
cout << "Average score: " << Exam::getAverage() << endl;
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!读取源程序,对其中的伪指令(以#开头的指令
)和特殊符号进行处理;
我可以解决该问题。
在C++中,静态数据成员是指某个类的所有对象都共享同一个变量(也可以是数组或指针)的成员。在本场景中,我们可以使用静态数据成员来实现对某门课程参加考试的学生总数和学生成绩平均值的统计。
具体步骤如下:
class Course {
private:
int score;
static int totalScore;
static int studentCount;
public:
Course(int s) : score(s) {
totalScore += s;
studentCount++;
}
static double averageScore() {
return double(totalScore) / studentCount;
}
};
在上述代码中,通过类的构造函数将每个学生的成绩累加到静态数据成员中,同时记录学生总人数。静态函数averageScore()
可以根据静态数据成员计算课程的平均分。
Course
类的对象,演示如何统计学生总人数和课程平均分。#include <iostream>
using namespace std;
int Course::totalScore = 0;
int Course::studentCount = 0;
int main() {
Course c1(80);
Course c2(90);
Course c3(70);
// 输出学生总人数和课程平均分
cout << "Total number of students: " << Course::studentCount << endl;
cout << "Average score: " << Course::averageScore() << endl;
return 0;
}
在上述代码中,不同的Course
对象会自动调用构造函数,将学生成绩累加到静态数据成员中。在主函数中,可以输出学生总人数和课程平均分。
总体来说,使用静态数据成员来统计所需的数据可以简化代码,并且可以保证所有对象共享同一个数据集,避免了数据重复问题。