2.编写一个程序,程序中包含学生结构体用来存储学生信息(学号,姓名,年龄,专业),定义输入5个学生的信息,并按学生姓名在字母表中的顺序排序,然后输出。要求程序中用到 typedef关键字,用c++编写
时间: 2024-10-22 15:09:08 浏览: 34
数据结构:定义一个包含学生信息(学号、姓名、成绩)的顺序表_数据结构
5星 · 资源好评率100%
在C++中,你可以使用`typedef`关键字来创建一个新的类型名,使得代码更易读。这里是一个简单的示例,如何编写一个程序来存储学生信息并按照姓名排序:
```cpp
#include <iostream>
#include <string>
#include <algorithm> // 包含sort函数
// 使用typedef定义新的类型名StudentInfo
typedef struct {
int student_id;
std::string name;
int age;
std::string major;
} Student;
// 定义一个函数,接受Student类型的数组并进行排序
void sortStudentsByName(Student students[], int size) {
std::sort(students, students + size, [](const Student& a, const Student& b) { return a.name < b.name; });
}
int main() {
// 定义一个Student类型的动态数组,用于存储5个学生的数据
Student students[5];
for (int i = 0; i < 5; ++i) {
std::cout << "请输入第" << (i+1) << "位学生的学号、姓名、年龄和专业:" << std::endl;
std::cin >> students[i].student_id >> students[i].name >> students[i].age >> students[i].major;
}
// 打印原始学生信息
std::cout << "原始学生信息:" << std::endl;
for (int i = 0; i < 5; ++i) {
std::cout << "学号:" << students[i].student_id << ", 姓名:" << students[i].name << ", 年龄:" << students[i].age << ", 专业:" << students[i].major << std::endl;
}
// 对学生按照姓名排序
sortStudentsByName(students, 5);
// 输出排序后的学生信息
std::cout << "按照姓名排序的学生信息:" << std::endl;
for (int i = 0; i < 5; ++i) {
std::cout << "学号:" << students[i].student_id << ", 姓名:" << students[i].name << ", 年龄:" << students[i].age << ", 专业:" << students[i].major << std::endl;
}
return 0;
}
```
阅读全文