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

#include <iostream>
#include <ctime>
using namespace std;
/*
* 案例描述
学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下
设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员
学生的成员有姓名、考试分数,
创建数组存放3名老师,通过函数给每个老师及所带的学生赋值
最终打印出老师数据以及老师所带的学生数据。
*/
/*
思维过程:
1.	分析数据: 1名老师带领5名学生,总共有3名老师。学生的信息有 姓名,分数
2.	数据结构体:	分为两个,老师和学生,老师的结构体内有 老师姓名,学生数组[];
								 学生的结构体内有 学生姓名,分数(分数随机);
3.	函数逻辑构成:	 分为给老师、学生传参赋值;将所传入的内容输出打印;
4. 函数_给老师、学生传参赋值:
	传入参数(老师数组,老师数量)
	老师、学生名字由 string  nameSeed = "ABCDE";//名字种子命名
	通过双循环给老师及学生赋值
	----其中分数随机需添加#include <ctime> 
	 rand() % 61 + 40 学生分数在40~100之间
	 * b为最大值,a为最小值
	要取得 [a,b) 的随机整数,使用 (rand() % (b-a))+ a;
	---要取得 [a,b] 的随机整数,使用 (rand() % (b-a+1))+ a;---
	要取得 (a,b] 的随机整数,使用 (rand() % (b-a))+ a + 1;
5.	函数_打印老师_学生分数:
	双循环进行遍历;
	遍历老师;遍历学生
*/
//结构体定义
struct Student {
	//成员列表
	string name; //姓名
	int score;	//分数
};
struct Teacher
{
	string name;
	Student sArray[5]; //学生数组
};
// 给老师和学生赋值函数
void set_Teacher_Stu(Teacher tArray[],int len) { //len为老师的数量
	string tName = "老师";
	string sName = "学生";
	string nameSeed = "ABCDE";//名字种子
	for (int i = 0; i < len; i++) 
	{
		tArray[i].name = tName + nameSeed[i];//老师名字
		for (int j = 0; j < 5; j++)
		{
			tArray[i].sArray[j].name = sName + nameSeed[j];//学生名字
			tArray[i].sArray[j].score = rand() % 61 + 40; //学生分数
		}
	}
	
}
//打印老师学生函数
void print_Teacher_Stu(Teacher tArray[],int len) { //
	//遍历老师和学生
	for (int i = 0; i < len; i++)
	{
		cout << tArray[i].name << endl;// 打印老师的名字
		for (int j = 0; j < 5; j++) // 打印学生名字
		{
			cout << " \t姓名: " << tArray[i].sArray[j].name << " \t分数: "
				<< tArray[i].sArray[j].score << endl;
		}
	}
}
int main() {
	srand((unsigned int)time(NULL));
	Teacher tArray[3]; // 老师数组为3名老师
	int len = sizeof(tArray) / sizeof(Teacher);
	set_Teacher_Stu(tArray, len);//创建数据
	print_Teacher_Stu(tArray, len);//打印数据
	system("pause");
	return 0;
}



















