实验准备: 定义学生类型,包括学号、姓名、三门课成绩等。 定义函数实现5名学生信息的输入、输出、求总分、排序等操作; 编写主函数,测试。(用c++语言)
时间: 2024-09-06 14:07:18 浏览: 49
在C++中,我们可以通过定义一个结构体来创建学生类型,并且包含学号、姓名和三门课成绩。然后,我们可以定义几个函数来处理学生信息,例如输入学生信息、输出学生信息、计算总分以及根据总分对学生成绩进行排序。最后,我们编写一个主函数来调用这些函数,以测试我们的程序。下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
// 定义学生结构体
struct Student {
std::string id; // 学号
std::string name; // 姓名
int scores[3]; // 三门课成绩
int totalScore() { // 计算总分
return scores[0] + scores[1] + scores[2];
}
};
// 输入学生信息
void inputStudent(Student &s) {
std::cout << "Enter student ID: ";
std::cin >> s.id;
std::cout << "Enter student name: ";
std::cin >> s.name;
std::cout << "Enter three scores: ";
for (int i = 0; i < 3; ++i) {
std::cin >> s.scores[i];
}
}
// 输出学生信息
void outputStudent(const Student &s) {
std::cout << "ID: " << s.id << ", Name: " << s.name << ", Scores: ";
for (int score : s.scores) {
std::cout << score << " ";
}
std::cout << "(Total: " << s.totalScore() << ")" << std::endl;
}
// 对学生数组进行总分排序(假设学生数组名为students)
void sortStudents(std::vector<Student> &students) {
std::sort(students.begin(), students.end(), [](const Student &a, const Student &b) {
return a.totalScore() > b.totalScore();
});
}
int main() {
std::vector<Student> students(5); // 创建一个包含5名学生的数组
// 输入学生信息
for (int i = 0; i < 5; ++i) {
inputStudent(students[i]);
}
// 输出学生信息
for (const Student &s : students) {
outputStudent(s);
}
// 排序并输出排序后的学生信息
sortStudents(students);
std::cout << "Sorted by total score:" << std::endl;
for (const Student &s : students) {
outputStudent(s);
}
return 0;
}
```
这段代码首先定义了一个`Student`结构体,包含学号、姓名和三门课成绩。然后,我们定义了`inputStudent`函数用于输入学生信息,`outputStudent`函数用于输出学生信息,`sortStudents`函数使用了`std::sort`算法按照总分对学生数组进行排序。
在`main`函数中,我们创建了一个包含5名学生的数组,并调用上述函数来完成输入、输出和排序的操作。
阅读全文