定义一个描述学生基本情况的类,数据成员包括姓名、学号以及C++、英语和数学成绩,成员函数包括输入输出数据、设置姓名和学号、设置三门课程的成绩,求出总成绩和平均成绩。(要求有两个以上的构造函数,各个字段
时间: 2024-10-08 08:12:55 浏览: 24
为了定义一个描述学生基本情况的类,我们可以创建一个名为`Student`的类,包含姓名(`name`)、学号(`student_id`)、以及三个成绩(`cpp_score`, `english_score`, `math_score`)。这个类可以有多种构造函数以便于初始化,还会有用于显示信息、设置成绩和个人信息的方法。以下是类的定义:
```cpp
class Student {
private:
std::string name;
int student_id;
int cpp_score;
int english_score;
int math_score;
public:
// 构造函数1:默认构造函数,所有成绩初始化为0
Student() : name(""), student_id(0), cpp_score(0), english_score(0), math_score(0) {}
// 构造函数2:接受姓名和学号,其他成绩默认为0
Student(const std::string& name, int student_id)
: name(name), student_id(student_id), cpp_score(0), english_score(0), math_score(0) {}
// 构造函数3:接受全部信息
Student(const std::string& name, int student_id, int cpp, int english, int math)
: name(name), student_id(student_id), cpp_score(cpp), english_score(english), math_score(math) {}
// 成员函数:设置成绩
void setSubjectScores(int cpp, int english, int math) {
cpp_score = cpp;
english_score = english;
math_score = math;
}
// 成员函数:输出个人信息
void displayInfo() const {
std::cout << "姓名:" << name << ", 学号:" << student_id << ", C++成绩:" << cpp_score
<< ", 英语成绩:" << english_score << ", 数学成绩:" << math_score << std::endl;
}
// 成员函数:计算总成绩和平均成绩
int calculateTotalScore() const {
return cpp_score + english_score + math_score;
}
double calculateAverageScore() const {
if (calculateTotalScore() != 0) {
return static_cast<double>(calculateTotalScore()) / 3.0;
} else {
return 0; // 如果没有成绩,返回0
}
}
};
```