C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt

C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt

ID:51617282

大小:433.50 KB

页数:109页

时间:2020-03-26

C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt_第1页
C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt_第2页
C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt_第3页
C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt_第4页
C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt_第5页
资源描述:

《C语言进阶及试题剖析全部课件第6章 数据的组织结构 二 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章数据的组织结构(二)6.3文件6.2指针类型6.1结构体类型6.4联合体与枚举类型6.1结构体类型结构体类型的概念结构体是一种可以将若干个不同数据类型的变量组合在一起的复合型数据类型。人们常常借助于它将表达同一对象的不同属性封装在一起,使之达到逻辑概念与程序变量一一对应的目的,从而提高程序的清晰度,降低程序的复杂度,改善程序的可维护性。结构体类型的声明类型声明的语法格式为:struct<结构体类型名>{<数据类型><成员1>;<数据类型><成员2>;......<数据类型n><成员n>;};例如:

2、structpoint_type{intx;/*x坐标*/inty;/*y坐标*/};这个结构体类型表示:point_type类型的变量将包含两个成员x、y,它们分别用于存储坐标点的两个坐标值。可以利用point_type类型声明下面这个结构体类型:structrectangle_type{structpoint_typelefttop;/*左上角的坐标*/structpoint_typerightbottom;/*右下角的坐标*/};在C语言中,允许用户为已经存在的数据类型起一个别名,其说明格式为:t

3、ypedef原数据类型新数据类型名;typedefstructpoint_type{intx;inty;}POINT;在这里,POINT与structpoint_type完全等价结构体变量的定义:利用结构体类型名定义变量的格式为:<结构体类型名><变量名>[,<变量名>[,<变量名>...]];例如:POINTp1,p2;等价于structpoint_typep1,p2;与其他数据类型的变量一样,一旦定义了变量之后,系统就会为这个变量分配相应的存储空间。对于结构体型变量而言,系统为之分配的存储单元数量取

4、决于结构体所包含的成员数量以及每个成员所属的数据类型。例如,上面定义的结构体型变量p1包含两个int类型的成员。结构体变量的初始化struct<结构体类型名><变量名>={<成员值列表>};例:structpoint_typep={10,20};structdate_typed={2005,5,20};structrectangle_typerect={{10,10},{100,100}};结构体变量的引用<结构体变量名>.<成员名>结构体型变量的基本操作结构体型变量的输入scanf(“%d%d%”,&

5、d.year,&d.month,&d.day);结构体型变量的输出printf(“%d%d%d”,d.year,d.month,d.day);结构体型变量的赋值d.year=2005;d.month=5;d.day=20;如果一个结构体型变量已经被赋值,并且希望将它的值赋给另外一个类型完全相同的结构体型变量,则可以采用整体赋值的方式。学生基本信息的组织方式学生基本信息的组织和管理是一个十分有代表性的结构体应用实例。为了简化程序的复杂度,减少程序的书写量,在这里,假设学生的基本信息只包括:学号、姓名、出生

6、日期、所属院系、所学专业。例1:通过键盘输入30名学生的基本信息,并显示输出。然后,再通过键盘输入一个月份和日期,查找并输出本年度在这个给定日期之后过生日的学生信息。问题分析为了表示一名学生的基本信息,应该声明一个包括学号、姓名、出生日期、所属院系、所学专业的结构体类型。“出生日期”需要用三个数据项才能够表示完整,而“日期”是一个独立的概念,也应该为之声明一个结构体类型。组织30名学生的信息。30名学生的基本信息属于同一个性质的数据,因此,应该利用一维数组将它们组织在一起。算法描述#include

7、dio.h>#defineNUM30typedefstruct{/*日期结构*/intyear;intmonth;intday;}DATE;typedefstruct{/*学生信息结构*/intnum;charname[24];DATEbirthday;chardepartment[48];charmajor[32];}STUDENTIFNO;voidinputInfo(STUDENTIFNO[]);voidoutputInfo(STUDENTIFNO[]);voidsearchInfo(STUDENT

8、IFNO[],DATE);程序代码main(){STUDENTIFNOs[NUM];DATEdate;inputInfo(s);outputInfo(s);printf("Enteradate(month,day)");scanf("%d%d",&date.month,&date.day);searchInfo(s,date);}voidinputInfo(STUDENTIFNOs[]){inti;printf("Enter%dst

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

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

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