圳职业技术学院 Shenzhen Polytechnic 第九单元:共用体,枚举 教学内容 共用体,枚举,用 typedef定义类型) 教学目标 应知 掌握共用体的结构和特点 聊掌握枚举的结构和特点 typedef定义类型的意义 应会 掌握共用体变量的定义和引用 了解在程序中枚举的应用 ■阅读程序时能够理解 typedef定义的类型 难 聊共用体的存储特性 1.专业英语词汇 英文词汇 中文名 Enumerate 枚举 Define 定义 Union 联合(共用体) 教学方法 粤通过与结构体的对比学习共用体,对比的方面包括类型定义、变量定义、初始化赋 值、成员引用、在内存中的存储方式、占据内存的存储空间 教学过程 1.共用体 解决问题 1.采用共用体变量,使用 bioskey()函数(在头文件.h中)检测键盘输入 2.根据键盘扫描码定义共用体类型 3. union code lint key: char keycode [2]: K 4.通过共用特性提取键盘扫描码的高位和低位 5.进一步判断是 ASCII码键还是功能键 计算机系乌云高娃 Wygwl2lcn, com第70页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 70 页 共 83 页 第九单元:共用体,枚举 教学内容 共用体,枚举,用 typedef 定义类型) 教学目标 掌握共用体的结构和特点 掌握枚举的结构和特点 应知 typedef 定义类型的意义 掌握共用体变量的定义和引用 了解在程序中枚举的应用 应会 阅读程序时能够理解 typedef 定义的类型 难点 共用体的存储特性 1. 专业英语词汇 英文词汇 中文名 Enumerate 枚举 Define 定义 Union 联合(共用体) 教学方法 通过与结构体的对比学习共用体,对比的方面包括类型定义、变量定义、初始化赋 值、成员引用、在内存中的存储方式、占据内存的存储空间 教学过程 1. 共用体 解决问题: 1. 采用共用体变量,使用 bioskey( )函数(在头文件.h 中)检测键盘输入 2. 根据键盘扫描码定义共用体类型 3. union code{int key;char keycode[2];}; 4. 通过共用特性提取键盘扫描码的高位和低位 5. 进一步判断是 ASCII 码键还是功能键
圳职业技术学院 Shenzhen Polytechnic 枚举 解决下列问题(编制程序,演示分析) 今有5种色球各若干,每次取出三个,问得到三种不同色的球的取法分别是什 么,共有多少种(expl1-13):( reference material) 2.五种色之一,并判断是否同色,应用枚举类型变量 3.判断不同颜色的组合,可用穷举法,一种一种可能性地试,设取出的球为 要求i!=j!=k 4.程序中应累计三种不同色球组合的次数,可设变量n为计数器 5.根据2,3步的分析,应设三层循环,每一层循环分别从red变到 black 将每次不同的组合打印输出 3.用 typedef定义类型 1.学生带着讨论问题读书,并且回答问题 学生容易出错的地方 在定义共用体变量之前不先进行共用体类型的定义 引用当前不活动的共用体成员 枚举的理解 问题与讨论 共用体 1.什么是共用体? 2.为什么使用共用体? 3.共用体将涉及到我们之前学过的什么内容?又有什么新内容? 4.共用体和结构体有什么联系及区别?二者所占据的内存单元如何计算? 5.共用体如何定义? 6.共用体如何引用?当共用体又处在结构体中时如何引用? 7.共用体中当前起作用的是哪一个成员? 什么是枚举? 1.为什么使用枚举? 计算机系乌云高娃 Wygwl2lcn, com第n1页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 71 页 共 83 页 2. 枚举 解决下列问题(编制程序,演示分析): 1. 今有 5 种色球各若干,每次取出三个,问得到三种不同色的球的取法分别是什 么,共有多少种(exp11-13):(reference material) 2. 五种色之一,并判断是否同色,应用枚举类型变量 3. 判断不同颜色的组合,可用穷举法,一种一种可能性地试,设取出的球为 i,j,k, 要求 i!=j!=k 4. 程序中应累计三种不同色球组合的次数,可设变量 n 为计数器 5. 根据 2,3 步的分析,应设三层循环,每一层循环分别从 red 变到 black 6. 将每次不同的组合打印输出 3. 用 typedef 定义类型 1. 学生带着讨论问题读书,并且回答问题 学生容易出错的地方 在定义共用体变量之前不先进行共用体类型的定义 引用当前不活动的共用体成员 枚举的理解 问题与讨论 共用体 1. 什么是共用体? 2. 为什么使用共用体? 3. 共用体将涉及到我们之前学过的什么内容?又有什么新内容? 4. 共用体和结构体有什么联系及区别?二者所占据的内存单元如何计算? 5. 共用体如何定义? 6. 共用体如何引用?当共用体又处在结构体中时如何引用? 7. 共用体中当前起作用的是哪一个成员? 什么是枚举? 1. 为什么使用枚举?
圳)职业技术学院 Shenzhen Polytechni 2.枚举将涉及到我们之前学过的什么内容?又有什么新内容? 3.枚举类型如何定义,枚举变量如何定义? 4.枚举如何引用?枚举元素的值有何特点? 5.在程序中如何使用枚举 typedef定义 1. typedef的作用是什么? 2. typedef可以声明结构体,共用体和枚举类型吗? 3. typedef可以用来定义变量吗? 4. typedef定义了新的数据类型吗? 5. typedef和# define的区别是什么? 6.使用 typedef有什么方便之处? 小结(可由问题与讨论方式给出) 所谓枚举是将变量的值一列出来变量的值只限于此 在C编译中,枚举元素按常量处理,其值按定义时的顺序分别取为0,1,2…,故其值 可以用来进行比较 不能将一个整数直接赋给一个枚举变量 共用体采用覆盖技术 共用体变量不能用作函数参数 卫共用体变量可以出现在结构类型中,反之亦然 课后任务 读懂程序并调通五色球程序 计算机系乌云高娃 Wygwl2lcn, com第72页共83页
深 圳 职 业 技 术 学 院 Shenzhen Polytechnic 计算机系乌云高娃 Wygw@21cn.com 第 72 页 共 83 页 2. 枚举将涉及到我们之前学过的什么内容?又有什么新内容? 3. 枚举类型如何定义,枚举变量如何定义? 4. 枚举如何引用?枚举元素的值有何特点? 5. 在程序中如何使用枚举? typedef 定义 1. typedef 的作用是什么? 2. typedef 可以声明结构体,共用体和枚举类型吗? 3. typedef 可以用来定义变量吗? 4. typedef 定义了新的数据类型吗? 5. typedef 和#define 的区别是什么? 6. 使用 typedef 有什么方便之处? 小结(可由问题与讨论方式给出) 所谓枚举是将变量的值一一列出来,变量的值只限于此 在 C 编译中,枚举元素按常量处理,其值按定义时的顺序分别取为 0,1,2…,故其值 可以用来进行比较 不能将一个整数直接赋给一个枚举变量 共用体采用覆盖技术 共用体变量不能用作函数参数 共用体变量可以出现在结构类型中,反之亦然 课后任务 读懂程序并调通五色球程序