C++中编写一个关于求多门功课总分和平均分的程序,实现一个有关学生成绩的操作,该类名为student,具体要求如下: 每个学生信息包括学号、姓名、性别和某门课成绩; 假设3个学生。 计算3个学生的总成绩和平均成绩。
时间: 2025-06-09 21:00:00 浏览: 11
在C++中,我们可以创建一个名为`Student`的类来存储学生的信息,包括学号、姓名、性别和成绩。然后我们再创建一个`Course`类,代表一门课程,用于演示多门功课的情况。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
#include <vector>
class Course {
public:
double score;
std::string name;
// 构造函数
Course(double s, const std::string& n) : score(s), name(n) {}
};
class Student {
private:
int id;
std::string name;
char gender;
std::vector<Course> courses; // 学生的课程列表
public:
Student(int i, const std::string& n, char g)
: id(i), name(n), gender(g) {}
// 添加课程到学生记录
void addCourse(const Course& course) {
courses.push_back(course);
}
// 计算总成绩
double totalScore() {
double sum = 0;
for (const auto& course : courses) {
sum += course.score;
}
return sum;
}
// 计算平均成绩
double averageScore() {
if (courses.empty()) {
return 0;
}
return totalScore() / courses.size();
}
// 显示学生信息和成绩
void display() {
std::cout << "学号: " << id << ", 姓名: " << name << ", 性别: " << gender << "\n";
std::cout << "课程及成绩:\n";
for (const auto& course : courses) {
std::cout << "课程名: " << course.name << ", 成绩: " << course.score << "\n";
}
std::cout << "总成绩: " << totalScore() << ", 平均成绩: " << averageScore() << "\n";
}
};
int main() {
// 创建3个学生实例
Student student1(1, "张三", 'M');
Student student2(2, "李四", 'F');
Student student3(3, "王五", 'M');
// 添加课程给学生
student1.addCourse(Course(85, "数学"));
student1.addCourse(Course(92, "英语"));
student2.addCourse(Course(90, "语文"));
student2.addCourse(Course(88, "物理"));
student3.addCourse(Course(87, "化学"));
student3.addCourse(Course(95, "生物"));
// 计算并显示所有学生的成绩
std::cout << "所有学生的成绩:\n";
student1.display();
student2.display();
student3.display();
return 0;
}
```
在这个示例中,我们实现了`Student`类及其成员函数,如添加课程、计算总分和平均分,并展示了如何在主函数中操作3个不同的学生实例。运行这个程序,你可以得到每个学生的总分和平均分。
阅读全文