c++设教师有工号,姓名,性别,职称,薪资5个属性,定义符合教师要求的结构体类型和教师结构体数组,从键盘输入若干个(5个)教师,将教师结构体数组按薪资从高到底排序,输出教师信息。
时间: 2024-11-30 14:14:02 浏览: 79
在C++中,你可以通过定义一个结构体(struct)来表示教师,然后创建一个结构体数组来存储这些教师的信息。首先,我们需要定义一个名为`Teacher`的结构体,包含五个成员变量:
```cpp
struct Teacher {
int id; // 工号
string name; // 姓名
char gender; // 性别
string title; // 职称
double salary; // 薪资
};
```
接着,我们可以创建一个`Teacher`类型的数组,用于存放多个教师:
```cpp
Teacher teachers[5]; // 定义一个可以容纳5名教师的数组
```
为了从键盘输入并排序教师,你需要编写一个主函数来获取输入,并使用`std::sort`函数对数组进行排序。这里我们假设`strcmp`用于字符串比较,因为没有指定具体的排序规则,所以我们将默认按照薪资降序排列:
```cpp
#include <algorithm> // 包含sort函数
#include <string>
bool compareSalaries(const Teacher &a, const Teacher &b) {
return a.salary > b.salary;
}
int main() {
// 输入教师信息
for (int i = 0; i < 5; ++i) {
cout << "请输入第" << i+1 << "位教师的工号、姓名、性别、职称和薪资:";
cin >> teachers[i].id >> teachers[i].name >> teachers[i].gender >> teachers[i].title >> teachers[i].salary;
}
// 按薪资排序
std::sort(teachers, teachers + 5, compareSalaries);
// 输出排序后的教师信息
for (const auto &teacher : teachers) {
cout << "工号:" << teacher.id << ", 姓名:" << teacher.name << ", 性别:" << teacher.gender << ", 职称:" << teacher.title << ", 薪资:" << teacher.salary << endl;
}
return 0;
}
```
阅读全文