当前位置: 首页 > news >正文

结构体的嵌套问题

问题描述:学校正在做毕设,每名老师带领5个学生,共3名老师,设计老师和学生的结构体, 在老师的结构体中包含老师的姓名和存放5个学生的数组作为成员,学生的成员有姓名和考试分数,创建数组存放三名老师,通过函数给每个老师及所带的学生赋值。最终打印老师数据以及老师所带学生数据。

定义学生结构体

struct Student//学生结构体的定义
{string sname;//学生名字int score;//学生分数
};

定义老师结构体

struct Teacher //老师结构体定义
{string tname;//老师的名字struct Student sArray[5];//学生数组
};

创建函数给老师及老师所带学生信息赋值

//创建函数给老师和学生赋值
void allocateSpace(struct Teacher tArray[], int len)
{srand((unsigned int)time(NULL));string nameSeed = "ABCDE";//给老师赋值for (int i = 0; i < len; i++){tArray[i].tname = "Teacher_";tArray[i].tname += nameSeed[i];//给每名老师所带的学生赋值for (int j = 0; j < 5; j++){tArray[i].sArray[j].sname = "Student_";tArray[i].sArray[j].sname += nameSeed[j];int Score = rand() % 61 + 40;tArray[i].sArray[j].score = Score;}}

创建函数打印老师及所带学生信息

//创建函数打印老师和所带学生信息
void printInfo(struct Teacher tArray[], int len)
{for (int i = 0; i < len; i++){cout << "老师的姓名:" << tArray[i].tname << endl;for (int j = 0; j < 5; j++){cout << "\t学生姓名: " << tArray[i].sArray[j].sname <<" 考试分数: " << tArray[i].sArray[j].score << endl;}}
}

Main函数

int main()
{//1、创建三名老师的数组struct Teacher tArray[3];//2、通过函数给3名老师的信息赋值,以及给老师所带学生的信息赋值int len = sizeof(tArray) / sizeof(tArray[0]);allocateSpace(tArray, len);//3、通过函数打印所有老师以及所带学生的信息printInfo(tArray,len);system("pause");return 0;
}

总结

#include<iostream>
#include<string>
#include<ctime>
using namespace std;//结构体的嵌套struct Student//学生结构体的定义
{string sname;//学生名字int score;//学生分数
};struct Teacher //老师结构体定义
{string tname;//老师的名字struct Student sArray[5];//学生数组
};//创建函数给老师和学生赋值
void allocateSpace(struct Teacher tArray[], int len)
{srand((unsigned int)time(NULL));string nameSeed = "ABCDE";//给老师赋值for (int i = 0; i < len; i++){tArray[i].tname = "Teacher_";tArray[i].tname += nameSeed[i];//给每名老师所带的学生赋值for (int j = 0; j < 5; j++){tArray[i].sArray[j].sname = "Student_";tArray[i].sArray[j].sname += nameSeed[j];int Score = rand() % 61 + 40;tArray[i].sArray[j].score = Score;}}}//创建函数打印老师和所带学生信息
void printInfo(struct Teacher tArray[], int len)
{for (int i = 0; i < len; i++){cout << "老师的姓名:" << tArray[i].tname << endl;for (int j = 0; j < 5; j++){cout << "\t学生姓名: " << tArray[i].sArray[j].sname <<" 考试分数: " << tArray[i].sArray[j].score << endl;}}
}int main()
{//1、创建三名老师的数组struct Teacher tArray[3];//2、通过函数给3名老师的信息赋值,以及给老师所带学生的信息赋值int len = sizeof(tArray) / sizeof(tArray[0]);allocateSpace(tArray, len);//3、通过函数打印所有老师以及所带学生的信息printInfo(tArray,len);system("pause");return 0;
}
http://www.lryc.cn/news/572982.html

相关文章:

  • 【2025 年】软件体系结构考试试卷-期末考试
  • ABAP(2) 定义数据
  • 软件公司进军无人机领域的战略指南与生态合作全景-优雅草卓伊凡
  • Git 命令全景图:从 clone 到 merge 的完整流程解析
  • (双模第一期)从零打造蓝牙低功耗键盘——全流程详解与工具清单
  • window显示驱动开发—使用状态刷新回调函数
  • Vue2 day01
  • 20250620在Ubuntu20.04.6下编译KickPi的K7的Android14系统
  • java面试题02访问修饰符有哪些?区别是什么?
  • YOLOv11改进 | RCS-OSA与C3k2融合架构技术详解
  • React封装框架dvajs(状态管理+异步操作+数据订阅等)
  • kubeadm worker节点加入master失败
  • android gradle的优化
  • Ruoyi(若依)整合websocket实现信息推送功能(消息铃铛)
  • 01-JS资料
  • Vue.js状态管理: 使用Vuex实现状态统一管理的最佳实践
  • 容器技术技术入门与Docker环境部署
  • 传输层协议UDP/TCP
  • 【工具教程】识别PDF中文字内容,根据文字内容对PDF批量重命名,提取识别PDF内容给图片重新命名的操作步骤和注意事项
  • C#上位机实现报警语音播报
  • Spring Boot + MyBatis + Vue:全栈开发中的最佳实践
  • vue通过打开新标签页打开某个路由
  • day43-硬件学习之ARM基础知识
  • 【蓝牙】Qt4中向已配对的手机发送PDF文件
  • JavaWeb前端部分
  • Centos 离线部署(MQTT)EMOX脚本并设置开机自启
  • 微软应用商店打不开怎么办2025,打开TLS1.3
  • 第五章 中央处理器
  • GoogLeNet:图像分类神经网络的深度剖析与实践
  • 大内存对电脑性能有哪些提升