C++语言:结构体学习

结构体主要内容包括:
  结构体定义、结构体变量定义、结构体数组、结构体嵌套、函数中结构体的值传递和地址传递。整体来说难度不大,只不过自己在已有的数据类型上进行整合后的一种数据类型。

//20221016 结构体学习记录
#include<iostream>
#include<string> //字符串处理
#include<ctime>  //随机数生成
using namespace std;

struct student //制定一个student结构体
{
	string name;
	int score;
};

struct teacher //制定一个teacher结构体
{
	string name;
	struct student sArr[4]; //结构体嵌套
};

struct school
{
	string name;
	int build_time;
};
void write_info(struct teacher* Arr,int L)
{
	string num = "123456789";
	for (int i=0; i < L; i++)
	{
		Arr[i].name = "teacher_"; //一般情况值传递用“.”,地址传递用“->”,但是对于数组的地址传递要用“.”
		Arr[i].name += num[i];
		for (int j=0; j < 4; j++)
		{
			Arr[i].sArr[j].name = "student_";//嵌套赋值的方法
			Arr[i].sArr[j].name += num[j];
			int random_num = rand() % 51;//返回一个0到50的随机数
			Arr[i].sArr[j].score = random_num + 50;
		}
	}
}

void WriteSchoolInfo(struct school* SS)
{
	SS->name = "DMU"; //地址传递
	SS->build_time = 1909;
	
}

void print_info(struct school* SS,struct teacher* Arr, int L)
{
	cout <<"\t\t   " << SS->name << "---" << SS->build_time << endl << endl; //输出校名
	for (int i=0; i < L; i++)
	{
		cout << "teachername: " << Arr[i].name << endl;  //输出教师名
		for (int j=0; j < 4; j++)
		{
			cout << "\tstudentname: " << 'T' <<i<<Arr[i].sArr[j].name <<   
				"    score: " << Arr[i].sArr[j].score << endl;  //输出学生名
		}
	}
}

int main()
{
	//随机数种子
	srand((unsigned int)time(NULL));

	struct school School;
	WriteSchoolInfo(&School);

	struct teacher tArr[3];
	int len = sizeof(tArr) / sizeof(tArr[0]);

	write_info(tArr,len);
	print_info(&School,tArr,len);

	system("pause");
	return 0;
}

运行结果
在这里插入图片描述
有问题欢迎一起学习交流,邮箱:bglei@foxmail.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CHNfisher

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

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

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

打赏作者

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

抵扣说明:

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

余额充值