c++中的结构体案例

article/2025/10/15 2:39:14

结构体案例一

案例描述:学生做毕设项目,每名老师有5个学生,总共有3个老师,需求如下:

  • 设计学生和老师的结构体,在老师的结构体中,有老师的姓名和一个存放了5名学生的数组作为成员
  • 学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值
  • 最终打印出老师数据以及老师所带的学生数据。
#include<iostream>
#include<string>
#include<ctime>
using namespace std;struct student
{string sname;int score;
};struct teacher
{string tname;struct student sarr[5];
};void fuzhi(struct teacher tarr[], int len)
{string nameseed = "ABCDE";for (int i = 0; i < 3; i++){tarr[i].tname = "Teacher_";tarr[i].tname += nameseed[i];for (int j = 0; j < 5; j++){tarr[i].sarr[j].sname = "Student_";tarr[i].sarr[j].sname += nameseed[j];int random = rand() % 101;tarr[i].sarr[j].score = random;}}
}void print(struct teacher tarr[], int len)
{for (int i = 0; i < len; i++){cout << "老师的姓名:" << tarr[i].tname << endl;cout << endl;for (int j = 0; j < 5; j++){cout << "\t姓名:" << tarr[i].sarr[j].sname << "      " << "成绩:" << tarr[i].sarr[j].score << endl;}cout << endl << endl;}
}int main()
{srand((unsigned int)time(NULL));//随机数种子//创建3名老师的数组struct teacher tarr[3];int len = sizeof(tarr) / sizeof(tarr[0]);fuzhi(tarr, len);print(tarr, len);system("pause");return 0;
}

在这里插入图片描述

结构体案例二

  • 案例描述:设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。
  • 通过冒泡排序的算法,讲数组中的英雄按照年龄进行升序排列,最终打印出排序后的结果。
#include<iostream>
#include<string>
using namespace std;struct hero
{string name;int age;string sex;
};struct hero arr[5] =
{{"刘备",23,"男"},{"关羽",22,"男"},{"张飞",20,"男"},{"赵云",21,"男"},{"貂蝉",19,"女"}
};void bubblesort(struct hero arr[], int len)
{for (int i = 0; i < len; i++){for (int j = 0; j < len-i-1; j++){if (arr[j].age > arr[j + 1].age){struct hero temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}void print(struct hero arr[], int len)
{for (int i = 0; i < len; i++){cout <<  "   " << arr[i].name <<"-" << arr[i].age <<"-" <<arr[i].sex << endl;}
}int main()
{int len = sizeof(arr) / sizeof(arr[0]);cout << "初始英雄排序:" << endl << endl;print(arr, len);bubblesort(arr, len);cout << endl << endl;cout << "对英雄的年龄进行排序之后:" << endl << endl;print(arr, len);cout << endl << endl;system("pause");return 0;
}

在这里插入图片描述


http://chatgpt.dhexx.cn/article/SStTaL2n.shtml

相关文章

C语言:位结构体

位结构体是一种特殊的结构, 在需按位访问一个字节或字的多个位时, 位结构体比按位运算符更加方便。 一、位结构—简介 有些信息在存储时&#xff0c;并不需要占用一个完整的字节&#xff0c; 而只需占几个或一个二进制位。 例如在存放一个开关量时&#xff0c;只有0和1 两种状…

C 语言编程 — 构造数据类型 — 结构体(struct)

目录 文章目录 目录结构体声明一个结构体类型定义一个结构体类型的变量定义一个结构体类型的指针变量结构体的成员结构体的内存分布 结构体 结构体&#xff08;Structure&#xff09;是一种由不同类型的数据成员组成的数据类型。通过定义结构体&#xff0c;我们可以将多个不同…

C语言结构体和其他构造数据类型详解

结构体和其他构造数据类型 结构体 “结构”是一种构造类型&#xff0c;它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构既然是一种“构造”而成的数据类型&#xff0c;那么说明和使用之前必须先定义它&#xff0c;也就是构造它。 结…

C的实用笔记38——结构体的引入和定义

1.为什么要用结构体&#xff1f; 0、原因&#xff1a;实际开发中&#xff0c;我们需要将不同类型的数据组合成一个整体&#xff0c;这就是结构体。结构体是自创的类型。 1、查找一名学生信息的两种方案&#xff1a;在EXCEL表格和数据库中经常有这种情况&#xff0c;比方说一个…

7.IDA-创建结构体

结构体分类 结构体的一个显著特点在于&#xff0c;结构体中的数据字段是通过名称访问&#xff0c;而不是像数组那样通过索引访问。不好的是&#xff0c;字段名称被编译器转换成了数字偏移量。结果&#xff0c;在反汇编代码清单中&#xff0c;访问结构体字段的方式看起来与使用…

结构体的初步认识以及其内存的计算

目录 前言 结构体的定义 结构体的自引用 结构体的初始化 结构体内存的计算 前言 我们知道&#xff0c;通过不同的数据类型我们可以表达不同意义的数据&#xff0c;如长度宽度面积只需要定义一个 int 类型的数据就可以符合大部分的需求。但是&#xff0c;有些东西自存在就是一…

IDA创建结构体方法

1. ida是最好用的逆向分析工具 2.问题 如果你在使用IDA分析时遇到大量的结构体指针偏移形式的变量&#xff0c;肯定想根据自己的分析重命名结构体各项。 3.定义结构体 这是需要先找到结构体初始化的地方 这里记录了每一项的偏移量&#xff0c;记录了结构体总大小Ox110uLL。 …

手把手教你写单片机的结构体

手把手教你写单片机的结构体 摘要&#xff1a;听说还有好多学单片机的小伙伴不会用结构体&#xff1f;指针和结构体是学单片机必须要掌握的&#xff0c;如果你C语言掌握的不牢&#xff0c;单片机根本学不到精髓&#xff0c;只能完成一些低级的项目。看得懂结构体并且能够灵活运…

STM32基于Flash对结构体读写暨再认识结构体内存分配

目录 前言 认识结构体内存分布 模拟结构体搬运 实现FLASH的结构体读写 前言 记录本篇主要是记录我进行stm32学习中利用stm32的flash&#xff08;闪存&#xff09;读写结构体的总结。 认识结构体内存分布 结构体&#xff0c;主要要来存放我们的自定义类型的数据&#xff0c;结…

单片机的结构体

手把手教你写单片机的结构体 FROM8号线攻城狮 公众号 电子信息工程硕士在读&#xff0c;分享单片机、嵌入式linux、物联网等知识&#xff0c;致力于打造最硬核的嵌入式技术公众号。 半碗鸡汤&#xff0c;半碗杂粮。 摘要&#xff1a;听说还有好多学单片机的小伙伴不会用结构…

windows下mysql初始密码设置

转载自&#xff1a;http://blog.csdn.net/ofreelander/article/details/50802780 1.my-default.ini 改名my.ini 在解压的目录下面复制my-default.ini一份改名字为 my.ini。 2.打开 Windows 环境变量设置, 新建变量名 MYSQL_HOME , 变量值为 MySQL 安装目录路径, 在 环境变量 …

MYSQL修改初始化密码的方法

解决方法之一&#xff1a; “ ALTER USER rootlocalhost identified by 123456 ; ” 最近安装了mysql&#xff0c;在使用“ set password for rootlocalhostpassword(123456);”时会遇到 “ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that…

Centos下安装mysql查看初始密码并修改密码

题记&#xff1a;当我们在centos成功安装了mysql后&#xff0c;需要查看初始密码&#xff0c;大概率也需要自己修改密码。 一&#xff0c;查看mysql历时密码 cat var/log/mysqld.log二&#xff0c;进入到mysql mysql -u root -p按回车&#xff0c;然后再password:输入刚才所…

MySQL设置初始密码—注意版本mysql-8.0.30

MySQL设置初始密码—注意版本mysql-8.0.30 第一步&#xff1a;使用管理员模式下的命令行&#xff0c;进入mysql的所在文件下的bin目录; 第二步&#xff1a;输入命令mysql -u root -p; 第三步&#xff1a;这里第一次不用输入密码; 第四步&#xff1a; ALTER USER rootlocalhost…

安装mysql的初始密码在哪里

mysql初始密码是多少 介绍怎么找到mysql安装的root的初始密码 mysql初始密码是多少 介绍怎么找到mysql安装的root的初始密码 怎么给mysql设置用户名和密码 登录数据库 “命令提示字符”窗口录入&#xff0c; 录入cd C:\mysql\bin 并按下回车键&#xff0c;将目录切换为 cd C:\m…

关于MySQL初始化密码忘记的问题

本文章可以解决MySQL密码忘记的问题&#xff01;&#xff01;&#xff01; 1、到mysql安装的bin目录下运行PowerShell 2、在命令行输入 mysql -u root -p 登录 mysql&#xff0c;可以随意输入一个密码&#xff0c;返回”ERROR 1045 (28000): Access denied for user rootlocal…

mysql安装,以及初始化密码

1.首先下载 mysql安装包&#xff0c; 我这里下载的mysql 5.7(免安装版) https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-winx64.zip 然后解压到你自己的目录中&#xff0c;我这里为 D 盘下&#xff1a; 此处&#xff0c;下下来的压缩包里面&#xff0c; data 目…

mysql初始没有密码怎么设置

由于本人是win7的忠实用户&#xff0c;最近被win10所吸引索性换了系统&#xff0c;还是改不了恋旧的习惯。所以用的mysql还是5.6。进入正题 在装完mysql并且配置完环境变量之后发现密码为空 1.首先进入到你安装的目录下&#xff0c;这里我的是E盘 2.之后输入mysql -u root -p …

1、数据库-MySql

什么是数据库 数据库(DataBase,简称DB) 概念&#xff1a;长期存放在计算机内&#xff0c;有组织&#xff0c;可共享的大量数据的集合&#xff0c;是一个数据"仓库" 作用&#xff1a;保存&#xff0c;并能安全管理数据(如:增删改查等)&#xff0c;减少冗余… 数据…

C++中字符串大小写字母转换

最近在学习 STL&#xff0c;string 也是 STL 中的一种容器&#xff0c;遇到一个字符串中字母大小写转换的例子&#xff0c;这里就顺便总结一下在C中常用的字符串大小写转换方法&#xff0c;有需要的可以参考。代码如下&#xff1a; 1、char[]类型&#xff0c;调用库函数 // …