当前位置: 首页 > 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.dtcms.com/a/255783.html

相关文章:

  • Llama 4 模型卡及提示格式介绍
  • swift-14-可选项的本质、运算符重载、扩展( Extension )
  • 班车服务系统扩展到多场景(穿梭车、周转车)的升级过程中,遗传算法和蚁群算法的实现示例
  • RAG 知识库核心模块全解(产品视角 + 技术细节)
  • day37
  • 项目开发中途遇到困难的解决方案
  • 详解Redis的热点key问题
  • Python 数据分析与可视化 Day 2 - 数据清洗基础
  • 【云创智城】YunCharge充电桩系统-深度剖析OCPP 1.6协议及Java技术实现:构建高效充电桩通信系统
  • 黑马程序员新版Linux学习笔记——第二部分 基础命令
  • 零基础学前端-传统前端开发(第四期-JS基础)
  • 西门子S7通信协议抓包分析应用
  • Springboot仿抖音app开发之Nacos 分布式服务与配置中心(进阶)
  • moments_object_model_3d这么理解
  • 蓝牙 5.0 新特性全解析:传输距离与速度提升的底层逻辑(面试宝典版)
  • Mac电脑 窗口分屏管理 Magnet Pro
  • 20250620-Pandas.cut
  • 伸缩线充电宝推荐丨倍思灵动充45W突破移动界限!
  • 基于YOLO的语义分割实战(以猪的分割为例)
  • 5G 浪潮:发展全景、困境突围与未来航向
  • 微软应用商店打不开怎么办2025,打开TLS1.3
  • 【Python】Excel表格操作:ISBN转条形码
  • 一个可以算相对介电常数和相对磁导率对角各向异性的FDFD(频域有限差分算法) matlab代码
  • Nginx常见功能
  • Java常见八股-(6.算法+实施篇)
  • P12894 [蓝桥杯 2025 国 Java B] 智能交通信号灯
  • 多模态图像融合2
  • 滑动窗口算法
  • 第五章 中央处理器
  • Dify动手实战教程(进阶-知识库:新生入学指南)