这段代码是一个简单的C++程序,主要用于创建和打印一个包含教师和学生信息的数据结构。
代码中定义了两个结构体:Student
和Teacher
。Student
结构体包含学生的姓名和成绩,Teacher
结构体包含教师的姓名以及一个包含5个学生的数组。
函数allocateSpace
用于为教师数组分配空间并填充数据。它接受一个教师数组和数组长度作为参数。在函数内部,通过循环遍历教师数组,为每个教师设置姓名,然后为每个教师的学生数组中的学生设置姓名和随机生成的成绩。
函数printTeachers
用于打印教师数组中的数据。它接受一个教师数组和数组长度作为参数。在函数内部,通过循环遍历教师数组,打印每个教师的姓名,然后打印每个教师的学生数组中每个学生的姓名和成绩。
在main
函数中,首先设置随机数种子,然后定义了一个包含3个教师的教师数组tArray
。通过计算教师数组的长度,将长度作为参数传递给allocateSpace
和printTeachers
函数,以创建和打印数据。最后,使用system("pause")
函数使程序在输出结果后暂停,以便查看结果。
总结来说,该程序通过结构体和数组来存储和管理教师和学生的信息,并通过调用相应的函数来填充数据和打印结果。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// 定义学生结构体
struct Student
{
string name; // 学生姓名
int score; // 学生成绩
};
// 定义教师结构体
struct Teacher
{
string name; // 教师姓名
Student sArray[5]; // 学生数组,包含5个学生
};
// 为教师数组分配空间并填充数据
void allocateSpace(Teacher tArray[], int 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; // 随机生成学生成绩(40-100之间)
}
}
}
// 打印教师数组中的数据
void printTeachers(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 << " 分数:" << tArray[i].sArray[j].score << endl; // 打印学生姓名和成绩
}
}
}
int main() {
srand((unsigned int)time(NULL)); // 设置随机数种子,用于生成随机学生成绩
Teacher tArray[3]; // 定义包含3个教师的教师数组
int len = sizeof(tArray) / sizeof(Teacher); // 计算教师数组的长度
allocateSpace(tArray, len); // 创建数据
printTeachers(tArray, len); // 打印数据
system("pause"); // 暂停程序,以便查看结果
return 0;
}