案例描述:学校正在做毕设项目,每名老师带领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 stuArr[5];
};
//给老师和学生赋值的函数
void allspace(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].stuArr[j].sName = "Student_";
tArr[i].stuArr[j].sName += nameSeed[j];
int random = rand() % 61 + 40;
tArr[i].stuArr[j].score = random;
}
}
}
//打印所有信息的函数
void printall(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].stuArr[j].sName
<< "考试分数为:" << tArr[i].stuArr[j].score
<< endl;
}
}
}
int main() {
srand((unsigned int)time(NULL));
//创建三个老师的数组
struct teacher tArr[3];
int len = sizeof(tArr) / sizeof(tArr[0]);
allspace(tArr, len);
printall(tArr, len);
system("pause");
return 0;
}
结果:
老师姓名:Teacher_A
学生姓名:Student_A考试分数为:64
学生姓名:Student_B考试分数为:57
学生姓名:Student_C考试分数为:70
学生姓名:Student_D考试分数为:71
学生姓名:Student_E考试分数为:51
老师姓名:Teacher_B
学生姓名:Student_A考试分数为:85
学生姓名:Student_B考试分数为:67
学生姓名:Student_C考试分数为:53
学生姓名:Student_D考试分数为:78
学生姓名:Student_E考试分数为:75
老师姓名:Teacher_C
学生姓名:Student_A考试分数为:40
学生姓名:Student_B考试分数为:40
学生姓名:Student_C考试分数为:59
学生姓名:Student_D考试分数为:48
学生姓名:Student_E考试分数为:94