#70结构体案例1(导师,学生,成绩)

news2024/12/23 12:21:57

效果:

代码:

#include <iostream>
#include <string>
using namespace std;

#include "random"

int get_random_num(int min,int max)
{
    random_device rd;
    mt19937 gen(rd());
    uniform_int_distribution<> dis(min,max);
    int random_number = dis(gen);
    return random_number;
}

//结构体,学生(姓名,分数)
struct Student
{
    string sName;
    int score;
};

//结构体,教师(姓名,管理打学生)
struct Teacher
{
    string tName;
    struct Student sArray[5];
};

//函数,分配空间
void allocateSpace(struct Teacher tArray[],int len)
{
    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 random=rand()%61+40;                //学生成绩  rand()%60是0-59随机数
            int random = get_random_num(40,100);
            tArray[i].sArray[j].score=random;
        }
    }
}

//函数,打印信息
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(){
    struct Teacher tArray[3];
    int len=sizeof(tArray)/sizeof (tArray[0]);
    allocateSpace(tArray,len);
    printInfo(tArray,len);
    return 0;
}

总结:

1)使用字符串要先声明#include <string>;

2)结构体结尾需要加分号,结构体可以包含结构体;

3)函数的定义如图,参数列表要写全,例:void allocateSpace(struct Teacher tArray[],int len);

4)随机数int num=random()%60是随机生成0-59的意思;

5)len表长度,可以用int len=sizeof(Array)/sizeof(Array[0]);来计算长度;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言实现常见O(N^2)的排序算法

目录 1.排序的概念及常见排序算法 1.1排序的概念 1.2常见的排序算法 2.常见O(N^2)排序算法的实现 2.1插入排序 2.1.1基本思想 2.1.2直接插入排序 2.1.2.1直接插入排序的特性 2.1.2.2直接插入排序算法实现 2.2选择排序 2.2.1基本思想 2.2.2直接选择排…

【电脑基础硬件】磁盘阵列

磁盘阵列 一、磁盘阵列概述作用&#xff1a;RAID级别&#xff1a; 二、Raid0Raid1 一、磁盘阵列概述 磁盘阵列&#xff08;Disk Array&#xff09;是一种将多个独立的磁盘驱动器组合起来形成一个逻辑单元的技术&#xff0c;目的是为了提高存储系统的性能、可靠性和可用性。磁盘…

关于儿童编程语言

青少年通常会通过Scratch或Python开始学习编程。在这两种语言中&#xff0c;代码的编写&#xff08;或者在Scratch中是构建&#xff09;方式类似于英语&#xff0c;这使得初学者更容易学习。Scratch的一个重要卖点是对视觉和运动感知学习者非常友好。这些代码块按颜色编码&…

亚信安全获国家信息安全服务(风险评估和安全工程类)二级资质

近日&#xff0c;亚信安全荣获由中国信息安全测评中心颁发的《国家信息安全测评信息安全服务资质证书—风险评估二级》和《国家信息安全测评信息安全服务资质证书—安全工程类二级》资质。亚信安全凭借综合实力和优秀的技术能力&#xff0c;成为为数不多的获得国家信息安全服务…

PXE无人值守

PXE介绍 预启动执行环境&#xff08;Preboot eXecution Environment&#xff0c;PXE&#xff09;也被称为预执行环境&#xff0c;提供了一种使用网络接口&#xff08;Network Interface&#xff09;启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备&#…

支持跨设备操作,自带横向霍尔感应滚轮,雷柏MT760系列鼠标上手

日常工作中&#xff0c;确实很需要一只专为商务办公设计的鼠标&#xff0c;这类鼠标通常会有更低调的外观&#xff0c;同时具备静音按键之类的设计&#xff0c;能够为工作带来更多的方便。我最近上手了雷柏MT760和MT760 Mini。这两款鼠标虽然尺寸不同&#xff0c;但共享了相同的…

12.upload-labs靶场通关详解(11~17)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1、Pass11&#xff08;白名单&#xff1a;get00截断&#xff09;2、Pass12&#xff08;白名单&#xff1a;post00截断&#xff09;3、Pass13&#xff08;图片马绕过…

封装组件之使用vue3封装input框并显示联想数据功能

新建Input.vue 定义input框及相关事件 <inputtype"text"v-model"query"input"onInput"blur"hideSuggestions"focus"onInput"/> input输入事件、blur失去焦点、focus获取焦点 //当输入内容时才显示ul内容 const onI…

优化if-else的11种方案

优雅永不过时&#xff01; 1. 使用早返回&#xff08;Early Return&#xff09;&#xff1a;尽可能早地返回&#xff0c;避免嵌套的if-else。 优化前&#xff1a; public class NoEarlyReturnExample {public boolean hasPositiveNumber(int[] numbers) {boolean foundPositi…

自然语言常见面试题及答案(21~40)

Reply&#xff1a;面试题 获取资料下载 文章目录 21. 介绍一下信息抽取在自然语言处理中的重要性和实现方式。22. 谈谈你对预训练语言模型&#xff08;如 BERT、GPT 等&#xff09;的认识和应用经验。23. 简述一下情感分析的流程和方法。24. 对于机器翻译任务&#xff0c;你了…

自旋锁(Spinlock):轻量级锁机制

自旋锁&#xff08;Spinlock&#xff09;&#xff1a;轻量级锁机制 1、什么是自旋锁&#xff1f;2、优势3、局限4、实现与应用 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java并发编程中&#xff0c;自旋锁以其独特的非阻塞特性脱颖而…

WordPress原创插件:Category-id-list分类ID显示查看

WordPress原创插件&#xff1a;Category-id-list分类ID显示查看 插件设置位置在工具栏

STL | string C++底层实现

目录 前言 总代码 string结构框架搭建 三个成员 构造 析构 拷贝构造、赋值重载 和 swap size、c_str、operator[ ] string迭代器的简单实现 扩容 reserve insert&#xff08;插入字符和字符串&#xff09; 单字符 字符串 push_back、append、 erase 删除 find查找 …

C++计算字符串中大写、小写、数字、空格、其他字符的个数

#include <iostream> #include <array> using namespace std;int main() {cout << "请输入一个字符串:";string str;getline(cin,str);int daxie0,xiaoxie0,num0,space0,other0;int lenstr.size();for(int i0;i<len;i){if(str[i]>A&&…

Oracle认证1Z0-071线上考试注意事项

目录 一、前言二、回顾过往战绩第一次 裸考&#x1f412;第二次 背题库硬考&#xff01;&#x1f412;第三次 软件卡住&#xff0c;寄&#xff01;&#x1f648;第四次 汇总纠错&#xff0c;通过&#xff01;&#x1f31a; 三、考试流程四、考试注意事项1. 是否需要科学上网2. …

vue(vue2和vue3)项目打包去除console.log

1.Vue2去除 module.exports { configureWebpack: (config) > {// 取消console打印config.optimization.minimizer[0].options.terserOptions.compress.drop_console truereturn {name: "项目名称",resolve: {alias: {"": resolve("src")}}…

【八股文】MySQL

1.char 和 varchar的区别 char是定长的&#xff0c;varchar是可变的字符串char适合存长度差不多的或者较短的&#xff0c;例如手机号&#xff0c;身份证&#xff0c;MD4加密算法。varchar用来存备注信息&#xff0c;用户昵称等不确定长度的信息。 2.Decimal、double和float的区…

Mybatis学习-day18

Mybatis学习-day18 数据持久化是将内存中的数据模型转换为存储模型&#xff0c;以及将存储模型转换为内存中数据模型的统称。例如&#xff0c;文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。 MyBatis 支持定制化 SQL、存储过程以及高级映射&#xff0c…

Java | Leetcode Java题解之第324题摆动排序II

题目&#xff1a; 题解&#xff1a; class Solution {Random random new Random();public void wiggleSort(int[] nums) {int n nums.length;int x (n 1) / 2;int mid x - 1;int target findKthLargest(nums, n - mid);for (int k 0, i 0, j n - 1; k < j; k) {if…

4章3节:缺失值的处理(上)

在医学科研中&#xff0c;由于失访、无应答或记录不清等各种原因&#xff0c;经常会遇到数据缺失的问题。本文将深入探讨医学科研中数据缺失的成因、分类、影响以及应对方法&#xff0c;结合R语言的实际应用&#xff0c;为医学研究人员提供全面的解决方案。 一、认识缺失数据 …