从零开始学C++,创建和打印一个包含教师和学生信息的数据结构体

这段代码是一个简单的C++程序,主要用于创建和打印一个包含教师和学生信息的数据结构。

代码中定义了两个结构体:StudentTeacherStudent结构体包含学生的姓名和成绩,Teacher结构体包含教师的姓名以及一个包含5个学生的数组。

函数allocateSpace用于为教师数组分配空间并填充数据。它接受一个教师数组和数组长度作为参数。在函数内部,通过循环遍历教师数组,为每个教师设置姓名,然后为每个教师的学生数组中的学生设置姓名和随机生成的成绩。

函数printTeachers用于打印教师数组中的数据。它接受一个教师数组和数组长度作为参数。在函数内部,通过循环遍历教师数组,打印每个教师的姓名,然后打印每个教师的学生数组中每个学生的姓名和成绩。

main函数中,首先设置随机数种子,然后定义了一个包含3个教师的教师数组tArray。通过计算教师数组的长度,将长度作为参数传递给allocateSpaceprintTeachers函数,以创建和打印数据。最后,使用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;
}

猜你喜欢

转载自blog.csdn.net/dsafefvf/article/details/131401437
今日推荐