Skip to content
本页目录

8 结构体案例

发布时间:

案例1 :

学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下 设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值 最终打印出老师数据以及老师所带的学生数据。 示例:

js
#include <iostream>
using namespace std;

// 学生结构体定义
struct Student
{
    string sName; // 姓名
    int age;      // 年龄
    int score;    // 分数
};
// 老师的结构体定义
struct Teacher
{
    string tName;
    Student sArray[5];
};
// 给老师和学赋值的函数
void allocateSpace(struct Teacher tArray[], int len)
{
    string nameSeed = "ABCDE";
    for (int i = 0; i < len; i++)
    {
        tArray[i].tName = "Teachar_";
        tArray[i].tName += nameSeed[i];
        for (int j = 0; j < 5; j++)
        {
            tArray[i].sArray[j].sName = "Student_";
            tArray[i].sArray[j].sName += nameSeed[j];

            int random = rand() % 60 + 40;
            tArray[i].sArray[j].score = random;
            tArray[i].sArray[j].age = 18;
        }
    }
}

void printInfo(Teacher tArray[], int len)
{
    for (int i = 0; i < len; i++)
    {
        cout << "老师姓名:" << tArray[i].tName << endl;
        for (int j = 0; j < 5; j++)
        {
            cout << "      学生姓名:" << tArray[i].sArray[j].sName << "  年龄:" << tArray[i].sArray[j].age << " 分数:" << tArray[i].sArray[j].score << endl;
        }
    }
};
int main()
{
    // for(int i=0;i<10;i++){
    //      cout<<"rand()="<<rand()<<endl;
    // }
    // 1、创建3名老师的数组
    Teacher tArray[3];
    // 2、通过函数给3名老师信息赋值,并给老师的学生赋值
    int len = sizeof(tArray) / sizeof(tArray[0]);
    allocateSpace(tArray, 3);

    // 3、打印所有老师及学生信息
    printInfo(tArray, 3);
    system("pause");
    return 0;
}
   

案例2 :

设计一个英雄的结构体,包括成员姓名,年龄,性別;创建结构体数组,数组中存放5名英雄。 通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最終打印排序后的结果。 五名英雄信息如下:

js
{"刘备"23,"男"}, 
{"关羽",22,"男”},
{"张飞",20,"男"},
{"赵云",21,"男"},
{"貂蝉",19,"女"},