C++ C程序以结构体存储学生记录,并按姓名进行排序

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++的语法和算法。希望本文对你有所帮助,谢谢阅读!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程