案例描述1:
学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下
设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员
学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值
最终打印出老师数据以及老师所带的学生数据。
#include <iostream>
using namespace std;
#include <string>
#include <ctime>
// 定义学生结构体
struct Student
{
string Sname;
int score;
};
// 定义老师结构体
struct Teacher {
string Tname;
struct Student sArr[5];
};
void allocate_value(struct Teacher tArr[], int len)
{
string nameseed = "ABCDE";
for (int i = 0; i < len; i++)
{
tArr[i].Tname = "teacher_";
tArr[i].Tname += nameseed[i];
for (int j = 0; j < 5; j++)
{
tArr[i].sArr[j].Sname = "student_";
tArr[i].sArr[j].Sname += nameseed[j];
tArr[i].sArr[j].score = rand() % 61 + 40;
}
}
}
// 打印信息
void Print_value(struct Teacher tArr[], int len)
{
for (int i = 0; i < len; i++)
{
cout << "教师姓名: " << tArr[i].Tname << endl;
for (int j = 0; j < 5; j++)
{
cout << "\t所带学生姓名:" << tArr[i].sArr[j].Sname << " ";
cout << "所带学生成绩:" << tArr[i].sArr[j].score << endl;
}
}
}
int main()
{
// 每名老师带领5个学生,总共有3名老师
// 学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值
// 最终打印出老师数据以及老师所带的学生数据
srand((unsigned int)time(NULL));
struct Student sArr[5]; // 学生数组
struct Teacher tArr[3]; // 教师数组
int len = sizeof(tArr) / sizeof(tArr[0]);
allocate_value(tArr, len);
Print_value(tArr, len);
system("pause");
return 0;
}
案例描述2:
设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。
通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。
#include <iostream>
using namespace std;
#include <string>
// 定义英雄结构体
struct Hero
{
string name;
int age;
string sex;
};
// 冒泡排序
void BubbleSort(struct Hero Harr[], int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - i - 1; j++)
{
if (Harr[j].age > Harr[j + 1].age) {
struct Hero temp = Harr[j];
Harr[j] = Harr[j + 1];
Harr[j + 1] = temp;
}
}
}
}
void PrintInfo(struct Hero Harr[], int len)
{
for (int i = 0; i < len; i++)
{
cout << Harr[i].name << " " << Harr[i].age << " " << Harr[i].sex << endl;
}
}
int main()
{
/*
设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。
通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。
*/
struct Hero Harr[5] = {
{"刘备",23,"男"},
{"关羽",22,"男"},
{"张飞",20,"男"},
{"赵云",21,"男"},
{"貂蝉",19,"女"},
};
int len = sizeof(Harr) / sizeof(Harr[0]);
PrintInfo(Harr, len); // 排序前
cout << endl;
BubbleSort(Harr, len); // 调用冒泡排序函数
PrintInfo(Harr, len); // 排序后
system("pause");
return 0;
}