设计学生信息的类,包含数据成员学号、姓名和成绩(语文、数学和英语)和总成绩,其中总成绩是各成绩之和。写出完整的类定义,并通过主函数中定义不同对象并实现该对象的信息输入、计算与输出。
时间: 2024-10-23 09:04:17 浏览: 61
首先,我们可以设计一个名为`StudentInfo`的学生信息类,包含必要的数据成员以及相应的方法:
```cpp
class StudentInfo {
private:
int student_id; // 学号
std::string name; // 姓名
int chinese_score; // 语文成绩
int math_score; // 数学成绩
int english_score; // 英语成绩
int total_score; // 总成绩(默认为0)
public:
// 构造函数,初始化所有成绩为0
StudentInfo(int id, const std::string& n)
: student_id(id), name(n), chinese_score(0), math_score(0), english_score(0), total_score(0) {}
// 输入成绩方法
void input_scores(int c, int m, int e) {
if (c >= 0 && c <= 100 && m >= 0 && m <= 100 && e >= 0 && e <= 100) {
chinese_score = c;
math_score = m;
english_score = e;
} else {
std::cout << "Invalid score input!" << std::endl;
}
}
// 计算总成绩的方法
void calculate_total_score() {
total_score = chinese_score + math_score + english_score;
}
// 输出学生信息的方法
void display_info() const {
std::cout << "Student ID: " << student_id << std::endl;
std::cout << "Name: " << name << std::endl;
std::cout << "Chinese Score: " << chinese_score << std::endl;
std::cout << "Math Score: " << math_score << std::endl;
std::cout << "English Score: " << english_score << std::endl;
std::cout << "Total Score: " << total_score << std::endl;
}
};
int main() {
// 定义两个学生信息对象
StudentInfo student1(1001, "Tom");
StudentInfo student2(1002, "Jerry");
// 输入学生1的成绩
std::cout << "Enter scores for student 1:\n";
std::cin >> student1.chinese_score >> student1.math_score >> student1.english_score;
student1.input_scores(student1.chinese_score, student1.math_score, student1.english_score);
student1.calculate_total_score();
student1.display_info();
// 输入学生2的成绩
std::cout << "\nEnter scores for student 2:\n";
std::cin >> student2.chinese_score >> student2.math_score >> student2.english_score;
student2.input_scores(student2.chinese_score, student2.math_score, student2.english_score);
student2.calculate_total_score();
student2.display_info();
return 0;
}
```
这个`StudentInfo`类包含了学生的学号、姓名、单科成绩以及总成绩。在`main`函数中,我们分别创建了两个学生对象,输入他们的成绩,计算总成绩,最后输出详细信息。注意检查输入的分数是否有效。
阅读全文