- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 结构体、共用体与枚举 6.1【案例25】成绩分析 ● 信息在程序中的表示 ● 结构体定义与初始化 ● 结构体变量的引用 ● 自定义数据类型 6.2【案例26】学生信息记录 ● 链表 ● 动态分配存储空间 ● 链表的应用 6.3【案例27】共同使用存储空间 ● 共用体的定义与引用 ● 结构体与共用体的异同 6.4【案例28】月份与天数 ● 枚举 ● 使用枚举的注意事项 6.1【案例25】成绩分析 6.2【案例26】学生信息记录 6.3【案例27】共同使用存储空间 6.4【案例28】月份与天数 6.1 【案例25】成绩分析 案例效果 本案例中将采用结构体定义实现对学生成绩进行分析的程序,程序运行效果如图6-1-1所示。 图6-1-1 成绩分析 在本案例的实现过程中,将学习结构体类型、用户自定义数据的应用。 设计过程(见书) 1.信息在程序中的表示 相关知识 1.信息在程序中的表示 在前面的学习中,所学的变量都是单一类型的变量,而现实生活中的很多数据都不是单一类型数据能表述的,比如学生成绩信息,包括学生姓名和各科成绩,显然无法用单一数据来表示。这就需要更为复杂的数据类型,C语言中能够实现这一功能的就是结构体。 现实生活中的很多数据是以记录的形式来表现的,例如下面的表6-1-1中的学生成绩和表6-1-2中的职工工资。 表6-1-1 学生成绩表 在表6-1-1中,表中的一行代表一个人的相关信息,这样的一行信息又称为一条记录,每一行表示一个学生的相关成绩信息。在进行信息处理时,通常都是以一条记录为单位进行的,而每一条记录中的信息数据既有整型数据,也有字符型数据,如果使用原来学习的方法,是无法将同一个人的数据放在一个对象中进行处理的。 2.结构体定义与初始化 表6-1-2 职工工资表 在表6-1-2所示的职工工资表中,每一行表示一位职工的相关工资信息,这些信息数据同样也不是单一的数据类型。在一条记录中,既有整型数据(奖金、工资等),又有字符串数据(姓名),像这样的数据,是由几种不同类型的数据构成,也不能用数组来表示,因为数组的各个元素都是相同的数据类型。按照以前所学的数据类型是无法处理这种复杂的数据的。 C语言提供了将几种不同类型的数据组合到一起的方法,用于解决这样的问题,这就是结构体类型。 2.结构体定义与初始化 结构体是一种复合的数据类型,它允许用其他的数据类型构成一个结构类型,而一个结构类型变量内的所有数据可以作为一个整体进行处理。 同数组类似,一个结构体也是若干数据项的集合,但与数组不同的是,数组中的所有元素都只能是同一类型的,而结构体中的数据项可以是不同的类型。 2.结构体定义与初始化 (1)结构体的定义 结构体的定义形式如下: struct 结构体标识名 { 类型 成员变量名1; 类型 成员变量名2; 类型 成员变量名3; … }; 其中,关键字struct用于定义结构体类型,结构体成员的类型可以是普通的数据类型(如int,char),也可以是数组、指针或已定义的结构体等任意的数据类型,在定义的结尾以分号表示结束。 有了结构体,前面的记录就可以用结构体方法,按如下所示进行定义: struct student/*定义学生结构体类型*/ { char name[8]; /*姓名*/ int chinese; /*语文*/ int math; /*数学*/ int eng; /*英语*/ int aver; /*平均成绩*/ int count; /*总成绩*/ }; 2.结构体定义与初始化 struct gz /*定义职工工资结构体类型*/ { int num; /*职工编号*/ char name[8]; /*姓名*/ int jbgz; /*基本工资*/ int jj; /*奖金*/ int tc; /*提成*/ int sfgz; /*实发工资*/ }; 这里,定义了一个名为student的学生成绩结构体类型和一个名为gz的职工工资结构体类型,在结构体中包括字符数组name和整型变量num、count等成员变量。这样,一个结构体变量就可以包含前面所述记录的所有数据。这样的一个结构体变量又称为结构体对象,其中的name、num、count等变量称为结构体对象的成员变量。 注意:结构体类型的定义并没有在内存中为其分配空间,仅仅定义了数据的组织形式,创立了一种数据类型,是对数据的一种抽象。只有定义了结构体类型的变量后,才会在内存中为该变量分配空间。在为结构体变量分配存储空间时,每个结构体变量所占存储空间的大小为其成员所
您可能关注的文档
- C语言程序设计(第二版)电子教案张昕 第9章 文件.ppt
- C语言程序设计(第二版)电子教案张昕 第10章 C++面向对象程序设计.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch1.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch3.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch4.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch5.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch6.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch7.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch8.ppt
- C语言程序设计(第三版) 教学课件 作者 林小茶 C_ch9.ppt
- C语言程序设计案例教程 教学课件 作者 沈大林 等 第7章.ppt
- C语言程序设计案例教程 教学课件 作者 沈大林 等 第8章.ppt
- C语言程序设计案例教程 教学课件 作者 沈大林 等 目录.ppt
- C语言程序设计案例教程 教学课件 作者 孙街亭 7152.ppt
- C语言程序设计案例教程 教学课件 作者 杨旭 第1章.ppt
- C语言程序设计案例教程 教学课件 作者 杨旭 第2章.ppt
- C语言程序设计案例教程 教学课件 作者 杨旭 第3章.ppt
- C语言程序设计案例教程 教学课件 作者 杨旭 第4章.ppt
- C语言程序设计案例教程 教学课件 作者 杨旭 第5章.ppt
- C语言程序设计案例教程 教学课件 作者 杨旭 第6章.ppt
文档评论(0)