目录
1、//结构体案例
/*
案例描述:
学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下:
设计学生和老师的结构体,
老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员;学生的成员有姓名、考试分数
创建数组存放3名老师,通过函数给每个老师及所带的学生赋值,
最终打印出老师数据以及老师所带的学生数据。
*/
typedef struct Student
{
string sName;
int score;
}STUDENT;
typedef struct Teacher
{
string tName;
Student stu[5];
}TEACHER;
void FuZhiTeacher(TEACHER tArr[],int len)
{
char arr1[] = "ABC";
//或者string arr = "abc";
for (int i = 0;i < len;i++)//老师
{
tArr[i].tName = "teacher_";
tArr[i].tName = tArr[i].tName + arr1[i];
string arr2 = "abcde";
//int score[] = { 100,90,80,70,60 };
for (int j = 0;j < 5;j++)//学生
{
tArr[i].stu[j].sName = "student_";
tArr[i].stu[j].sName += arr2[j];
//tArr[i].stu[j].score = score[j];
tArr[i].stu[j].score = rand() % 101;
}
}
}
void ShowTeacher(TEACHER tArr[], int len)
{
for (int i = 0;i < len;i++)
{
cout << "老师" << tArr[i].tName << endl;
for (int j = 0;j < 5;j++)
{
cout << "学生"<< tArr[i].stu[j].sName << "\t成绩:" << tArr[i].stu[j].score << endl;
}
cout << endl;
}
}
#include <ctime>
int main()
{
srand((unsigned int)time(NULL));//随机数种子
TEACHER tArr[3];
int len;
len = sizeof(tArr) / sizeof(tArr[0]);
FuZhiTeacher(tArr, len);
ShowTeacher(tArr, len);
}
//思考:为什么用值传递而不是地址传递???
//数组名就是一个地址,即传数组名就是地址传递,针对数组进行操作一般不用考虑值传递
(哔哩哔 哩黑马程序员 C++教程 学习笔记,如有侵权请联系删除)