C++编程《第16课 结构体》教学课件.pptxVIP

  • 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;后

文档评论(0)

1亿VIP精品文档

相关文档