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,"女"},