当前位置: 首页 > 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.xdnf.cn/news/1062487.html

相关文章:

  • FPGA基础 -- Verilog 的属性(Attributes)
  • python+uniapp基于微信小程序的高校二手商品交易系统
  • Maven并行构建
  • 饼图:数据可视化的“切蛋糕”艺术
  • 大数据治理域——计算管理
  • windows清理系统备份文件夹WinSxS文件夹清理
  • 大数据Hadoop集群搭建
  • mysql server层做了什么
  • nginx的下载与安装 mac
  • 三种经典算法无人机三维路径规划对比(SMA、HHO、GWO三种算法),Matlab代码实现
  • 【Python】Excel表格操作:ISBN转条形码
  • RPC常见问题回答
  • Qwen3 Embedding 结构-加载-训练 看透模型设计哲学
  • windows查看占用端口的进程并杀死进程
  • phpstudy无法启动apache,80端口被占用,完美解决
  • 【MySQL篇10】:四种分库分表详解
  • Symbol.iterator 详解
  • Windows 10 防火墙 0x8007045b 打不开
  • Rust 项目文档生成之旅:cargo doc
  • 博士,超28岁,出局!
  • MySQL复杂查询优化实战:从多表关联到子查询的性能突破
  • 掌握Bash脚本编写:从服务启动脚本到语法精要
  • Xilinx XC7A12T‑1CPG238I Artix‑7 FPGA
  • SAM2论文解读-既实现了视频的分割一切,又比图像的分割一切SAM更快更好
  • 猿人学js逆向比赛第一届第九题
  • 基于物联网的智能衣柜系统设计
  • Redis如何解决缓存击穿,缓存雪崩,缓存穿透
  • .docx 和 .doc 都是 Word 文档格式的区别
  • 华为 FreeArc耳机不弹窗?
  • css 实现1个像素在不同分辨率屏幕上画网格线