C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx

上传人:lao****ou 文档编号:405676 上传时间:2023-10-24 格式:DOCX 页数:11 大小:33.09KB
下载 相关 举报
C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx_第1页
第1页 / 共11页
C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx_第2页
第2页 / 共11页
C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx_第3页
第3页 / 共11页
C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx_第4页
第4页 / 共11页
C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx》由会员分享,可在线阅读,更多相关《C程序设计教案372课时——定义和使用结构体变量使用结构体数组.docx(11页珍藏版)》请在第一文库网上搜索。

1、教案序号037周次授课形式新授授课章节名称定义和使用结构体变量、使用结构体数组教学目的理解和使用结构体变量、使用结构体数组教学重点理解和使用结构体变量教学难点理解和使用结构体数组使用教具机房课外作业课后体会授课主要内容9.1定义和使用结构体变量9.1.1自己建立结构体类型9.1.2定义结构体类型变量9.1.3结构体变量的初始化和引用 9.1.1自己建立结构体类型 用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体 例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的,因此组成一个组合数据,如student,1的变量,反映它们之间的内在联系 9.1.1自己建

2、立结构体类型structStudentintnum;charname20;charsex;intage;f1oatscore;charaddr30;); 9.1.1自己建立结构体类型 声明一个结构体类型的一般形式为:struct结构体名成员表列); 9.1.1自己建立结构体类型 说明:(1)结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如structTeacherstructWorkerstructDate等结构体类型各自包含不同的成员 9.1.1自己建立结构体类型 说明:(2)成员可以属于另一个结构体类型。structDateintmonth;intday;intyear;str

3、uctStuintnum;charname20;charsex;intage;structDatebirthday;charaddr30;); 9.1.1自己建立结构体类型 说明:(2)成员可以属于另一个结构体类型。 9.1.2定义结构体类型变量 前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。 相当于设计好了图纸,但并未建成具体的房屋。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。 9.1.2定义结构体类型变量1 .先声明结构体类型,再定义该类型变量声明结构体类型StrUetStUdent,可

4、以用它来定义变量structStudentStudent1,student2;9.1.2定义结构体类型变量1 .先声明结构体类型,再定义该类型变量声明结构体类型StrUCtStUdent,可以用它来定义变量structStudentstudent1,student2;9.1.2定义结构体类型变量2 .在声明类型的同时定义变量structStudentintnum;charname20;charsex;intage;f1oatscore;charaddr30;Student1,student2;9.1.2定义结构体类型变量3 .不指定类型名而直接定义结构体类型变量其一般形式为:struct成员表

5、列变量名表列;指定了一个无名的结构体类型。 9.1.2定义结构体类型变量(1)结构体类型与结构体变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。 9.1.2定义结构体类型变量(2)结构体类型中的成员名可以与程序中的变量名相同,但二者不代表同一对象。(3)对结构体变量中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。 9.1.3结构体变量的初始化和引用例9.1把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息。 解题思路: 自己建立一个结构体类型,包

6、括有关学生信息的各成员 用它定义结构体变量,同时赋以初值 输出该结构体变量的各成员inc1udeintmain()structStudent1ongintnum;charname20;charsex;charaddr20;a=10101,u1i1in,M,T23BeijingRoadw;printfCNO.:%1dnname:%snsex:%cnaddresssn,a.num,a.name,a.sex,a.addr);charname20;charaddr20;,1,,“123BeijingRoadwcharname20;charaddr20;)Itinc1udeintmain()struct

7、Student1ongintnum;charname20;charsex;charaddr20;a=10101,ii1i1in,M,“123BeijingRoad”printf(N0.:%1dnname:%snsex:%cnaddress:%sn”,a.num,a.name,a.sex,a.addr);return0;)#inc1udeintmain()structStudent1ongintnum;charsex;a=10101,1i1in”,#inc1udeintmainOstructStudent1ongintnum;charsex;a=10101,1i1inw,“123BeijingR

8、oad”;)Itinc1udeintmain()structStudent1ongintnum;charname20;charsex;charaddr20;a=10101,ii1i1inw,M,“123BeijingRoad;)#inc1udeintmainOstructDateintmonth;intday;intyear;structStuintnum;charname20;charsex;intage;structDatebirthday;charaddr30;a,b;例9.2输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩A解题思路:(1)定义两个结构相同的结构体变量

9、Student1和StUden12;(2)分别输入两个学生的学号、姓名和成绩;(3)比较两个学生的成绩,如果学生1的成绩高于学生2,就输出学生1的全部信息,如果学生2的成绩高于学生1就输出学生2的全部信息。如果二者相等,输出2个学生的全部信息#inc1udeintmain()structStudentintnum;charname20;f1oatscore;student1,student2;scanf(%d%s%f”,&student1.num,Student1.name,&student1.score);scanf(rt%d%s%fw,festudent2.num,student2.nam

10、e,student2.score);Printf(Thehigherscoreis:n*);if(student1.scorestudent2.score)printf(z,%d%s%6.2fnz,student1.num,student1.name,student1.score);e1seif(student1.score9.2使用结构体数组9. 2.1定义结构体数组10. 2.2结构体数组的应用举例 9.2.1定义结构体数组例9.3有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。 9.2.1定义结构体数组 解题思路: 设一个结构体

11、数组,数组中包含3个元素 每个元素中的信息应包括候选人的姓名(字符型)和得票数(整型) 输入被选人的姓名,然后与数组元素中的“姓名”成员比较,如果相同,就给这个元素中的“得票数”成员的值加1 输出所有元素的信息#inc1udeItinc1udestructPersoncharname20;intcount;1eader3=“1i”,0,“Zhang,0,“Sun”,0);intmain()inti,j;charIeadeJna1ne20;for(i=1;i=10;i+)scanf(i*%st,1eader_name);for(j=0;j3;j+)if(strcmp(1eader_name,1e

12、aderj.name)=0)1eaderj.count+;for(i=0;i3;i+)printf(*%5s:%dn,1eaderi.name,1eaderi.count);return0;intmain()inti,j;charIeadeJname20;for(i=1;i=10;i+)scanf(%sm,1eader_name);for(j=0;j3;j+)if(strcmp(1eader_name,1eaderj.name)=0)1eaderj.count+;for(i=0;i说明:(1)定义结构体数组一般形式是struct结构体名成员表列数组名数组长度;先声明一个结构体类型,然后再用此类型定义结构体数组:结构体类型数组名数组长度;如:structPerson1eader3;说明:(2)对结构体数组初始化的形式是在定义数组的后面加上:=初值表列;如:structPerson1eader3=1i,0,Zhang,0,Fun”,0);9.2.2结构体数组的应用举例例9.4有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。解题思路:用结构体数组存放n个学生信息,采用选择法对各元素进行排序(进行比较的是各元素中的成绩)。#inc1udestructStudentintnum;charname20;f1oatscore;intmain()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服