《C语言程序设计案例教程》第8章结构体、共用体和枚举类型

《C语言程序设计案例教程》第8章结构体、共用体和枚举类型

ID:43239572

大小:2.93 MB

页数:34页

时间:2019-10-07

《C语言程序设计案例教程》第8章结构体、共用体和枚举类型_第1页
《C语言程序设计案例教程》第8章结构体、共用体和枚举类型_第2页
《C语言程序设计案例教程》第8章结构体、共用体和枚举类型_第3页
《C语言程序设计案例教程》第8章结构体、共用体和枚举类型_第4页
《C语言程序设计案例教程》第8章结构体、共用体和枚举类型_第5页
资源描述:

《《C语言程序设计案例教程》第8章结构体、共用体和枚举类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、学习目标案例目标熟悉掌握结构体类型的定义方法掌握结构体数组的定义和成员的引用方法运用结构体类型解决实际问题学习目标学习目标掌握结构体类型和变量的定义及应用掌握共用体类型的定义及应用枚举类型的定义及应用熟悉类型定义typedef的使用案例8学生成绩管理系统的实现【问题描述】在案例7中,已完成了学生成绩管理系统的结构设计。本章任务是进行数据结构设计,即解决学生成绩信息的存储结构,编写代码实现系统的各功能模快。【问题分析】要实现系统的各功能模块,必须确定信息的存储结构。学生的基本信息包括:学号、姓名、3门课程成绩、总成绩等,所以,存储结构的核心是定义学生基本信息的类型。显然,本案例的任务是:①定义学

2、生基本信息的结构类型;②确定学生成绩信息的存储变量,③编写代码实现各模块功能。案例8学生成绩管理系统的实现【知识准备】前面介绍的基本数据类型,只能表示单一的数据,表示的数据之间是独立、无从属关系。而数组中的所有元素必须是同一类型。本案例中缩涉及的学生基本信息,是不同数据类型但相关的集合体,无法用数组来定义。也不能把它们拆成多个单独的数据项,所以,必需将不同类型但相关的数据组合一个整体,构造一种新的数据类型。要完成上面的任务,必须熟练掌握结构体类型的定义方法,结构体变量、数组的定义、初始化和成员的引用方法等知识点。8.1结构体8.1.1结构体类型的定义结构体是若干个类型相同或不同数据项的集合。例

3、如,学生的基本信息包含以下数据项:学号(no)、姓名(name)、数学(math)、语文(yw)、英语(eng)和总分(sum)。那么这个类型就应该如图8-1所示。图8-1“学生”类型8.1结构体定义结构体类型的一般形式为:struct结构类型名{类型名成员名1;类型名成员名2;…类型名成员名n;};8.1结构体8.1.2结构变量的定义结构体类型定义后,就可以用它来定义相应的结构体变量。定义结构体类型变量有以下两种方法:1.间接定义法——先定义结构体类型,再定义结构体变量结构体变量定义的一般形式为:struct结构类型名变量名;例如,使用§8.1.1定义的结构体类型student来定义学生结构

4、体变量,语句:structstudentstu1;structstudentstu2;8.1结构体2.直接定义法——在定义结构体类型的同时定义变量定义的一般形式为:struct[结构类型名]/*结构类型名可缺省*/{类型名成员名1;类型名成员名2;…类型名成员名n;}变量名表;8.1结构体8.1.3结构体变量的引用1.简单结构变量的引用结构体变量的使用是通过对其每个成员的引用来实现的,一般形式如下:结构体变量名.成员名其中,“.”是结构体的成员运算符,它在所有运算符中优先级最高,因此,上述引用结构体成员的写法可以作为一个整体看待。结构体变量中的每个成员都可以象同类型的普通变量一样进行各种运算。

5、2.同类型结构变量间的引用ANSIC新标准允许将一个结构类型的变量,作为一个整体赋给另一个具有相同结构类型的变量。如有定义:structstudentstud1,stud2;8.1结构体8.1.4结构变量的初始化在定义结构变量的同时,允许对结构变量初始化,但要注意结构成员的数据类型与初值一致。例如:structCStudent{longno;/*学号*/charname[16];/*姓名*/intage;/*年龄*/intscore;/*成绩*/}stu={2013001,"ZhanSan",17,80};8.1结构体【例8.2】结构变量的初始化。假设学生含有:学号、姓名、年龄和成绩。定义学生

6、的结构类型同时定义变量stu1并初始化;对结构变量stu2,采用先定义结构类型,后定义变量并初始化。最后将存储在两个结构变量的信息输出。运行效果如图8-5所示。图8-5结构变量的初始化8.2结构体数组8.2.1结构体数组的定义结构体数组的定义与结构体变量类似,只是结构体变量替换成数组。定义结构体数组的一般形式如下:struct结构体名{成员列表;}数组名[元素个数];或:struct结构体名数组名[元素个数];8.2结构体数组8.2.2结构体数组的引用结构体数组元素也是通过数组名和下标来引用的,但其元素是结构体类型的数据,因此,对结构体数组元素的引用与对结构体变量的引用一样,也是逐级引用,只能

7、对最低级的成员进行存取和运算。结构体数组的引用的一般形式为:数组名[下标].成员名8.2结构体数组8.2.3结构体数组的初始化结构数组也可以在定义时进行初始化,其方法是在定义结构数组的之后紧跟等号和初始化数据。其一般形式是:struct结构体类型结构数组名[n]={{初值表1},{初值表2},…,{初值表n}};8.3结构体和函数8.3.1结构体变量作为函数参数结构变量作为函数参数,与简单变量作为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。