第十一章 结构体和 共用体类型
第十一章 结构体和 共用体类型
教学目标 介绍C语言的 结构体 共用体 枚举 其它数据类型
2 教学目标 • 介绍C语言的 –结构体 –共用体 –枚举 –其它数据类型
学习要求 结构体类型和共用体类型是C语言 的重要概念。 ·要求掌握结构体类型、共用体类型 以及相应类型变量的定义方法和引 用方法
3 学习要求 • 结构体类型和共用体类型是C语言 的重要概念。 • 要求掌握结构体类型、共用体类型 以及相应类型变量的定义方法和引 用方法
本单元授课内容 结构体类型 结构体变量的定义 结构体变量的使用 其他结构体类型 日期类型、时间类型、枚举类型 typedef语句 实用编程 用户界面程序设计 菜单程序构造 中文操作系统编程
4 本单元授课内容 • 结构体类型 – 结构体变量的定义 – 结构体变量的使用 • 其他结构体类型 – 日期类型、时间类型、枚举类型 – typedef语句 • 实用编程 – 用户界面程序设计 – 菜单程序构造 – 中文操作系统编程
、结构体类型 ·C语言程序中少量变化的数据用变量 来处理。数量不宜多 批量同类型数据的处理用数组。 不同类型的数据的集合用什么数据结 构来存放呢?这就是本单元要介绍的 内容:用结构体类型处理不同类型数 据的集合
5 一、结构体类型 • C语言程序中少量变化的数据用变量 来处理。数量不宜多。 • 批量同类型数据的处理用数组。 • 不同类型的数据的集合用什么数据结 构来存放呢?这就是本单元要介绍的 内容:用结构体类型处理不同类型数 据的集合
[例6-1]职工工资单的层次结构 说明 结构体类型适用于说明具有层次结构的 复杂数据。例如,可以用来表示“某处 理对象的数据由...组成,其中的某项又 由.组成,〃的数据间联系方式 层次结构主要用于描述数据的内部组织, 即表征一个数据对象的各数据项之间的 从属关系 层次模型的表示方法很多,我们采用缩 排方式表示上述工资单数据的层次结构
6 [例6-1]职工工资单的层次结构 • 说明: –结构体类型适用于说明具有层次结构的 复杂数据。例如,可以用来表示“某处 理对象的数据由...组成,其中的某项又 由...组成, ...”的数据间联系方式。 –层次结构主要用于描述数据的内部组织, 即表征一个数据对象的各数据项之间的 从属关系。 –层次模型的表示方法很多, 我们采用缩 排方式表示上述工资单数据的层次结构
工资单数据的层次结构 01工资单 02工作部门:字符串,最大长度为10个字符 02姓名:字符串,最大长度为8个字符 02职务(含职称、工种):代码,0-99 02参加工作时间 03年份:1900-2050 03月份:1-12 03日:1-31 02家庭情况 03婚否:0-否,1-是 03是否双职工:0-否,1-是 03独生子女出生日期,如无独生子女则填 1900.01.01
7 工资单数据的层次结构 01 工资单 02 工作部门: 字符串, 最大长度为10个字符 02 姓名: 字符串, 最大长度为8个字符 02 职务(含职称、工种): 代码, 0-99 02 参加工作时间 03 年份: 1900-2050 03 月份: 1-12 03 日 : 1-31 02 家庭情况 03 婚否: 0-否, 1-是 03 是否双职工: 0-否, 1-是 03 独 生 子 女出 生 日 期, 如 无 独生 子 女则 填 1900.01.01 …………
工资单数据的层次结构(续) 02基本工资:0-10000,保留两位小数 02岗位津贴:0-1000,保留两位小数 02劳保福利:0-100,保留两位小数 02独生子女费:0-10,保留两位小数 02房租:0-10000,保留两位小数 02电费:0-10000,保留两位小数 02水费:0-10000,保留两位小数 02取暖费:0-100,保留两位小数 02保育费:0-1000,保留两位小数 02实发工资:0-1000,保留两位小数
8 工资单数据的层次结构(续) 02 基本工资: 0-10000, 保留两位小数 02 岗位津贴: 0-10000, 保留两位小数 02 劳保福利: 0-1000, 保留两位小数 02 独生子女费: 0-10, 保留两位小数 02 房租: 0-10000, 保留两位小数 02 电费: 0-10000, 保留两位小数 02 水费: 0-10000, 保留两位小数 02 取暖费: 0-1000, 保留两位小数 02 保育费: 0-1000, 保留两位小数 02 实发工资: 0-10000, 保留两位小数
、结构体类型变量的定义 ·与简单变量和数组变量一样,结构体变量也必 须先定义,后使用。 定义(说明)语句的一般格式是: struct结构体类型名{ 结构体类型成员变量说明语句表; ·例如,说明日期类型为: struct date int da year; int da month int da day;
9 1、结构体类型变量的定义 • 与简单变量和数组变量一样,结构体变量也必 须先定义,后使用。 • 定义(说明)语句的一般格式是: struct 结构体类型名{ 结构体类型成员变量说明语句表; } ; • 例如,说明日期类型为: struct date{ int da_year; int da_month; int da_day; } ;
[例6-2]定义工资表类型 程序模块 SALARY.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 /*上学子女数 int housing area /*住房面积*10
10 [例6-2]定义工资表类型 /* 程序模块 SALARY.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; /* 上学子女数 */ int housing_area; /* 住房面积 */ };