- 0
- 0
- 约5.46千字
- 约 29页
- 2026-03-10 发布于广西
- 举报
第16课结构体
学生信息对于一个学生,如果我们需要记录他的信息,必须记录这些门类的数据:学号(整数或者字符串),姓名(字符串),年龄(整数),班级(字符串),各科目成绩(浮点数)......当我们按照成绩排序时,这个学生的所有信息都要一起打包,那么这种操作用简单的数组是难以做到的,我们需要一种叫做结构体的数据类型,把学生信息“打包”。姓名语文成绩学号数学成绩
学习目标1、掌握结构体的基本使用3、学会结构体排序2、学会使用sort()函数
知识讲授
结构体是C/C++语言中一种重要的数据类型,该数据类型由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型。结构体通常用来表示类型不同但是又相关的若干数据。结构体类型不是由系统定义好的,而是需要程序设计者自己定义的。C/C++语言提供了关键字struct来标识所定义的结构体类型。结构体概念
结构体的声明和定义struct结构体名{ 成员列表; //成员可以是各种数据类型、结构体类型成员函数;//与结构体相关的函数}; //注意分号不能丢 在定义结构体时,系统对之不分配实际内存。只有定义结构体变量时,系统才为其分配内存。
结构体变量的定义例如,我们可以利用结构体构造一个“学生类型”,每个学生类型的变量都有:姓名、性别、年龄等多个元素(成员变量)。structStu //定义学生结构体类型Stu{stringname; //姓名charsex; //性别intage; //年龄};Stustu,stus[100];//定义Stu类型变量stu,数组stus。
结构体变量的使用使用结构体变量的成员格式:结构体变量名.成员名例如:对于上面定义的结构体变量,我们可以这样操作:cin;stu.sex=f;stu.age=25;coutstu.sexstu.ageendl;
【描述】统计2位同学的姓名、年龄、语文成绩、数学成绩、英语成绩,输出总分较高的同学姓名,如果总分相同,则分别输出两位同学的姓名,中间用空格隔开。【输入】2行,两个同学的姓名、年龄、语文成绩、数学成绩、英语成绩,每个同学的信息占一行;【输出】1行,总分较高的同学的姓名或者两位同学的姓名,中间空格隔开;【样例输入】zhang3129310098li4178610096【样例输出】zhang3结构体的使用示例
参考代码#includeiostreamusingnamespacestd;structSTU{//定义结构体类型-注意和定义结构体变量的区别stringname;//成员声明intage,yu,shu,ying;//定义变量时内存分配的顺序是:从上到下,从左到右;};intmain(){STUa,b;//定义结构体变量-结构体类型名定义后,可以类比‘int’来使用intsuma,sumb;cina.agea.yua.shua.ying;//用结构体变量名+小点访问成员cinb.ageb.yub.shub.ying;suma=a.yu+a.shu+a.ying;//计算总分sumb=b.yu+b.shu+b.ying;if(sumasumb)cout;elseif(sumasumb)cout;elsecout;return0;}
结构体成员函数除了成员变量,我们也可以在结构体内定义一些函数,来作为结构体的成员函数。结构体中的变量可以作为成员函数的引用参数,而不需要另外定义形参。structSTU{ intmath; intchinese; intenglish; intsum(){ returnmath+chinese+english;
}}a,b,c;//这里,a,b,c是用STU定义的结构体变量。
结构体成员函数的调用结构体成员函数调用的一般形式为:结构体变量名.成员函数();例如刚才定义的STU结构体类型,后面又直接定义了a,b,c三个STU类的结构体变量,在输入了各科分数后,可以直接调用成员函数计算总分:couta.sum();//输出a的总分。
【描述】某班级有n个学生,现在要在该班级中挑选出优秀生,所有的学生需要参加四轮竞赛,每轮竞赛的总分是100分,由于竞赛难度较大,四轮的总分能达到200分的就是优秀生,请你依次输出优秀生的信息,最后一行输出在该班级选出的优秀生的人数。【输入】n+1行,第一行是n;后
您可能关注的文档
- C++编程《第001课 初识C++》教学设计.docx
- C++编程《第001课 初识C++》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学设计.docx
- C++编程《第005课 选择与分支(2)》教学课件.pptx
- C++编程《第005课 选择与分支(2)》教学设计.docx
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 2025年辽宁省文物博物初、中级专业技术资格考试历年参考题库含答案详解.docx VIP
- PLC实现的台车呼叫控制系统.pdf VIP
- 2025年辽宁省文物博物初、中级专业技术资格考试历年参考题库含答案详解(5卷).docx VIP
- 2025年辽宁省文物博物初、中级专业技术资格考试历年参考题库含答案详解.docx VIP
- 2026中国跨境电商物流体系优化与成本控制策略研究报告.docx
- 消防工程三措一方案(3篇).docx VIP
- 鱼我所欲也原文.docx VIP
- 计算机应用基础(Windows10+WPSOffice)教学教案.docx VIP
- 2025年贵州省中考语文试卷真题(含答案详解).docx
- 第2次超级机器人大战Z 再世篇.pdf VIP
原创力文档

文档评论(0)