使用c++,创建一个学生类和成绩类,具体信息如下,在main函数中显示出每位同学的学号、姓名、单科成绩信息、总分和平均分信息(显示效果如下图),并将“C++程序设计”的最高分同学信息显示出来;
时间: 2024-02-29 22:53:18 浏览: 35
好的,我来为您解答这个问题。首先,我们需要定义一个学生类和一个成绩类。学生类包含学号、姓名和成绩信息,成绩类包含单科成绩和总分信息。在main函数中,我们需要创建学生和成绩对象,并将它们关联起来,然后计算每个学生的总分和平均分,并输出到控制台上。最后,我们需要找到“C++程序设计”的最高分同学信息,并将其输出到控制台上。
下面是学生类和成绩类的定义:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Score {
private:
double math_score_;
double english_score_;
double cpp_score_;
public:
Score(double math_score, double english_score, double cpp_score)
: math_score_(math_score), english_score_(english_score), cpp_score_(cpp_score) {}
double GetMathScore() const { return math_score_; }
double GetEnglishScore() const { return english_score_; }
double GetCppScore() const { return cpp_score_; }
double GetTotalScore() const { return math_score_ + english_score_ + cpp_score_; }
};
class Student {
private:
string name_;
string id_;
Score score_;
public:
Student(string name, string id, Score score)
: name_(name), id_(id), score_(score) {}
string GetName() const { return name_; }
string GetId() const { return id_; }
Score GetScore() const { return score_; }
};
```
在上面的代码中,我们定义了一个Score类和一个Student类。Score类包含三个成员变量,分别表示数学、英语和C++成绩。Student类包含三个成员变量,分别表示姓名、学号和成绩信息。在Score类中,我们定义了一些成员函数,用来获取单科成绩、总分等信息。在Student类中,我们也定义了一些成员函数,用来获取学生的姓名、学号和成绩信息。
下面是main函数的实现:
```cpp
int main() {
vector<Student> students;
students.emplace_back("Tom", "1001", Score(80, 90, 95));
students.emplace_back("Mary", "1002", Score(85, 95, 90));
students.emplace_back("John", "1003", Score(90, 80, 85));
// 计算每个同学的总分和平均分,并输出结果
double max_score = 0;
string max_student_name;
for (auto& student : students) {
double total_score = student.GetScore().GetTotalScore();
double avg_score = total_score / 3;
cout << "姓名:" << student.GetName() << ",学号:" << student.GetId() << endl;
cout << "数学成绩:" << student.GetScore().GetMathScore() << endl;
cout << "英语成绩:" << student.GetScore().GetEnglishScore() << endl;
cout << "C++程序设计成绩:" << student.GetScore().GetCppScore() << endl;
cout << "总分:" << total_score << endl;
cout << "平均分:" << avg_score << endl;
if (student.GetScore().GetCppScore() > max_score) {
max_score = student.GetScore().GetCppScore();
max_student_name = student.GetName();
}
}
// 输出C++程序设计最高分同学信息
cout << "C++程序设计最高分同学姓名:" << max_student_name << endl;
cout << "分数:" << max_score << endl;
return 0;
}
```
在上面的代码中,我们首先创建了三个学生对象,分别表示Tom、Mary和John三个同学的信息。然后我们用一个vector来存储学生对象。接着,我们遍历每个学生,计算它们的总分和平均分,并将结果输出到控制台上。在遍历的过程中,我们也找到了C++程序设计的最高分同学信息,并将其输出到控制台上。
完整代码如下: