C语言 第六单元 结构体和 共用体类型/程序设计语言C 西华师范大学 数学与信息学院
西华师范大学 数学与信息学院 教学目标 ●介绍C语言的 结构体 共用体 枚举 其它数据类型
西华师范大学 数学与信息学院 学习要求 ●结构体类型和共用体类型是C语言 的重要概念。 ●要求掌握结构体类型、共用体类型 以及相应类型变量的定义方法和引 用方法
!"#$%&'() '(
西华师范大学 数学与信息学院 本单元授课内容 ●结构体类型 结构体变量的定义 结构体变量的使用 ●其他结构体类型 日期类型、时间类型、枚举类型 typedef语句 ●实用编程 用户界面程序设计 菜单程序构造 中文操作系统编程
!"# $%&'()
西华师范大学 数学与信息学院 、结构体类型 ●C语言程序中少量变化的数据用变 量来处理。数量不宜多。 ●批量同类型数据的处理用数组。 ●不同类型的数据的集合用什么数据 结构来存放呢?这就是本单元要介 绍的内容:用结构体类型处理不同 类型数据的集合。 00e
*+,-$#.# $/01$234 5$6017 2689:; /?@ABCD EFG0126 89
西华师范大学 数学与信学例6-1职工工资单的层次结构 ●说明: 结构体类型适用于说明具有层次结构的 复杂数据。例如,可以用来表示某处理 对象的数据由.组成,其中的某项又 由.组成,"的数据间联系方式。 层次结构主要用于描述数据的内部组织, 即表征一个数据对象的各数据项之间的 从属关系。 层次模型的表示方法很多,我们采用缩 排方式表示上述工资单数据的层次结 构。 0
*+, -.*+/012 3456789:;?@AB CD56EFFFGHI $@JK EFFFGHILFFF56M(NO7 12PQ.RS56TUGVI W>XYZ56CD[56J\ ]^_(7 12`>?NabcI defg hNO>?iSjk"5612 7
西华师范大学 数学与信息学院 工资单数据的层次结构 01工资单 02工作部门:字符串,最大长度为10个字符 02姓名:字符串,最大长度为8个字符 02职务(含职称、工种):代码,0-99 02参加工作时间 03年份:19002050 03月份:1-12 03日:1-31 02家庭情况 03婚否:0-否,1-是 03是否双职工:0-否,1是 03独生子女出生日期,如无独生子女则填1900.01.0
!"#$$ %&'( ) *+$#, ) -+# ) . #) /012 ) 34#4#5 ) 546#4#5 ) 789:;8.789:?@$AA
西华师范大学 数学与信息学院 工资单数据的层次结构(续) 02基本工资:0-1000,0.保留两位小数 02岗位津贴:0-1000,0.保留两位小数 劳保福利:0-100,保留两位小数 02独生子女费:0-10,保留两位小数 02房租:0-1000保留两位小数 02电费:0-1000,保留两位小数 02水费:0-1000保留两位小数 02取暖费:0-10,保留两位小数 02保育费:0-100,保留两位小数 02实发工资:0-1000,保留两位小数
BC# DEFGHI !"#
西华师范大学 数学与信息学院 1、结构体类型变量的定义 ●与简单变量和数组变量一样,结构体变量也必须先定 义,后使用。 ●定义(说明)语句的一般格式是: struct结构体类型名{ 结构体类型成员变量说明语句表; ●例如,说明日期类型为: struct date int da year int da month int da day
$%&'()*'(+,-./0'(12345 6-789: 56;?@A+BCDEF GHIJKH ./0LMNO ./0LMPQ'(<=?@RS T S UV-<=WXLMYF GHIJKH Z[H\O ]^H Z[_`\[Ia ]^H Z[_bc^Hda ]^H Z[_Z[`a Ta
西华师范大学 数学与信息学院 例6-2定义工资表类型 /米程序模块 SALAR.H:定义工资单*/ #include /*一一定义工资表数组一*/ #define max employee 1000 /米一—定义家庭情况类型 struct family type int in double harness;/*婚姻状况* int is colleague /米是否双职工* struct date birthdate of singleton;/*子女生日*/ int children in school;/*上学子女数*/ housing area /米住房面积* 00e
JK LMNO PQRQSTAU VWKJ XYZ[\]^_`^abAcd JK#### VWeIf ###KJ X^_gYZ_hQijkhlRmTkk JK#### VW/012no #####KJ bpq][p grsY\tjptu_ v YZp YZj^a]w\_jcrqZ_bbxJK 3yz2 KJ YZp Ybj[a\\_r{]_xJK 546 KJ bpq][p ^rp_ wYqpc^rp_jagjbYZ{\_paZxJK 9:8. KJ YZp [cY\^q_ZjYZjb[caa\xJK |}9:I KJ YZp ca]bYZ{jrq_rxJK ~ KJ x