c++编一个关于求多个某门功课总分和平均分的程序。具体要求如下: (1)每个学生信息包括姓名和某门功课成绩。 (2)假设5个学生。 (3)使用静态成员计算5个学生的总成绩和平均分
时间: 2024-10-16 09:12:49 浏览: 26
在C++中,我们可以创建一个包含学生姓名和成绩的结构体,然后定义一个静态成员函数来计算所有学生的总分和平均分。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
// 定义学生结构体
struct Student {
std::string name;
int score;
};
// 使用静态成员函数来计算总分和平均分
class CourseScoreCalculator {
private:
static int total_score;
static double average_score;
public:
// 初始化静态变量
static void init() {
total_score = 0;
average_score = 0.0;
}
// 添加新学生分数
static void addStudent(const Student& student) {
total_score += student.score;
average_score = static_cast<double>(total_score) / (std::distance(CourseScoreCalculator::students.begin(), CourseScoreCalculator::students.end()) + 1);
}
// 计算并显示总分和平均分
static void displayScores() {
if (total_score == 0) {
std::cout << "No students added yet.\n";
return;
}
std::cout << "Total score: " << total_score << "\n";
std::cout << "Average score: " << average_score << "\n";
}
// 存储学生的容器
static std::vector<Student> students;
};
int CourseScoreCalculator::total_score = 0;
double CourseScoreCalculator::average_score = 0.0;
std::vector<Student> CourseScoreCalculator::students;
int main() {
CourseScoreCalculator::init();
// 添加5个学生分数示例
CourseScoreCalculator::students.push_back({"Alice", 90});
CourseScoreCalculator::students.push_back({"Bob", 85});
CourseScoreCalculator::students.push_back({"Charlie", 95});
CourseScoreCalculator::students.push_back({"David", 80});
CourseScoreCalculator::students.push_back({"Eve", 92});
// 显示总分和平均分
CourseScoreCalculator::displayScores();
return 0;
}
```
在这个例子中,我们首先定义了一个`Student`结构体用于存储学生信息,然后定义了`CourseScoreCalculator`类,其中包含了静态成员变量`total_score`和`average_score`以及相应的初始化、添加学生分数和显示结果的函数。
注意,这个代码并没有真正地限制只能有5个学生,你可以随时添加更多的学生。运行这个程序后,你会看到所有的学生总分和平均分。
阅读全文