从零开始学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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

范纹杉想快点毕业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值