实验准备: 定义学生类型,包括学号、姓名、三门课成绩等。 定义函数实现5名学生信息的输入、输出、求总分、排序等操作; 编写主函数,测试。c++
时间: 2024-09-14 17:13:24 浏览: 33
在C++中,我们首先定义一个学生类,包含学号、姓名和三门课成绩等数据成员。然后,我们可以定义一系列函数来处理学生信息,如输入学生数据、输出学生数据、计算总分、以及根据总分对学生进行排序等。最后,我们编写一个主函数来测试这些功能。
下面是一个简单的示例代码来展示这个过程:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 用于std::sort
// 定义学生类
class Student {
public:
Student(std::string id, std::string name, int score1, int score2, int score3)
: id(id), name(name), scores{score1, score2, score3} {}
// 获取学生信息的函数
std::string getId() const { return id; }
std::string getName() const { return name; }
int getScore(int index) const { return scores[index]; }
// 计算总分的函数
int getTotalScore() const {
return scores[0] + scores[1] + scores[2];
}
// 输出学生信息的函数
void display() const {
std::cout << "ID: " << id << ", Name: " << name << ", Scores: "
<< scores[0] << ", " << scores[1] << ", " << scores[2] << std::endl;
}
private:
std::string id;
std::string name;
int scores[3]; // 存储三门课成绩
};
// 根据总分对学生进行排序的函数
bool compareTotalScore(const Student& a, const Student& b) {
return a.getTotalScore() > b.getTotalScore();
}
int main() {
std::vector<Student> students;
// 输入5名学生信息
students.emplace_back("001", "Alice", 90, 85, 95);
students.emplace_back("002", "Bob", 80, 88, 82);
students.emplace_back("003", "Charlie", 92, 91, 88);
students.emplace_back("004", "David", 85, 90, 93);
students.emplace_back("005", "Eva", 88, 86, 90);
// 输出学生信息
for (const auto& student : students) {
student.display();
}
// 求总分并输出
for (const auto& student : students) {
std::cout << student.getName() << "'s total score is: " << student.getTotalScore() << std::endl;
}
// 根据总分排序学生信息
std::sort(students.begin(), students.end(), compareTotalScore);
// 输出排序后的学生信息
std::cout << "After sorting by total score:" << std::endl;
for (const auto& student : students) {
student.display();
}
return 0;
}
```
以上代码展示了如何定义一个学生类,以及如何实现输入、输出、计算总分和排序等操作。这是一个简单的实现,具体应用中可能需要更多的错误检查和异常处理。
阅读全文