C++ C程序以结构体存储学生记录,并按姓名进行排序
在本文中,我们将介绍如何使用C++编写程序来以结构体存储学生记录,并按照姓名进行排序。通过这个例子,我们将学习如何使用结构体和排序算法。
阅读更多:C++ 教程
使用结构体存储学生记录
首先,我们需要定义一个包含学生信息的结构体。我们将使用姓名(name)、年龄(age)和成绩(score)作为学生记录的三个属性。我们可以通过如下代码来定义这个结构体:
struct Student {
string name;
int age;
float score;
};
结构体定义完成后,我们可以声明一个结构体数组来存储多个学生的记录。例如,我们可以声明一个长度为10的数组来存储10个学生的信息:
Student students[10];
接下来,我们可以使用循环语句来逐个输入学生的姓名、年龄和成绩。例如,我们可以使用以下代码来实现输入:
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个学生的姓名:";
cin >> students[i].name;
cout << "请输入第" << i+1 << "个学生的年龄:";
cin >> students[i].age;
cout << "请输入第" << i+1 << "个学生的成绩:";
cin >> students[i].score;
cout << endl;
}
通过上述代码,我们可以逐个输入学生的信息,并将其存储到结构体数组中。
按姓名排序学生记录
一旦我们存储了所有学生的信息,我们可以使用排序算法来按照学生的姓名进行排序。在C++中,我们可以使用标准库中的sort函数来完成排序操作。该函数的使用方法如下所示:
sort(students, students + 10, [](Student a, Student b){ return a.name < b.name; });
通过上述代码,我们可以将学生数组students
按照姓名进行升序排序。
如果我们想要按照降序排序,我们可以使用如下代码:
sort(students, students + 10, [](Student a, Student b){ return a.name > b.name; });
通过以上代码,我们可以实现对学生记录的按姓名进行降序排列。
完整示例
下面给出一个完整的示例代码,展示如何使用C++编写程序以结构体存储学生记录,并按姓名排序:
#include <iostream>
#include <algorithm>
using namespace std;
struct Student {
string name;
int age;
float score;
};
int main() {
Student students[10];
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个学生的姓名:";
cin >> students[i].name;
cout << "请输入第" << i+1 << "个学生的年龄:";
cin >> students[i].age;
cout << "请输入第" << i+1 << "个学生的成绩:";
cin >> students[i].score;
cout << endl;
}
sort(students, students + 10, [](Student a, Student b){ return a.name < b.name; });
cout << "按姓名升序排序后的学生记录为:" << endl;
for (int i = 0; i < 10; i++) {
cout << "姓名:" << students[i].name << ",年龄:" << students[i].age << ",成绩:" << students[i].score << endl;
}
return 0;
}
通过以上示例代码,我们可以输入10个学生的姓名、年龄和成绩,并将其按照姓名进行升序排序后输出。
总结
本文中,我们学习了如何使用C++编写程序以结构体存储学生记录,并按照姓名进行排序。我们了解了结构体的定义和使用,学习了使用标准库中的sort函数来进行排序操作。通过这个例子,我们可以进一步熟悉C++的语法和算法。希望本文对你有所帮助,谢谢阅读!