第九章 结构体与共用体
一、 教案头: 
教学内容
第九章 结构体与共用体
2 学时
认知目标(应知)
技能目标(应会)
: 了解结构体的意义和基本概念 : 能够正确定义和引用结构体变量 : 能够采用指针引用结构体变量 : 能够通过指针引用结构体数组 : 使用结构体变量作函数参数 : 使用结构体指针作函数参数 : 掌握共用体的结构和特点 : 掌握枚举的结构和特点 :
typedef 定义类型的意义 
: 引用结构体变量成员,引用结构体数
组元素的成员 
: 结构体指针变量与其所指变量的关系 : 结构体指针变量作函数参数 : 通过指针引用结构体数组 : 通过指针操作字符串 
: 掌握共用体变量的定义和引用 : 了解在程序中枚举的应用 
: 读程序能够理解typedef 定义的类型 
情感目标(理解)
教学目标(重点难点)
教学目标 : 培养学生自主探究学习、求真务实的品德 : 培养学生细致钻研的学风 : 培养学生努力拓展思维;理论与实际相结合的思维习惯 : 指向结构体的指针 
: 结构体数组成员的引用 : 结构体变量作函数参数 : 共用体的存储特性 
: 链表的结构特点和操作处理 内容概述 Ø 教材章节: 
9.1 结构体类型和结构体变量  9.2 结构体数组  9.3 结构体指针 9.4 用指针处理链
表  9.5 共用体类型  9.6 枚举类型 9.7 用typedef命名类型 Ø 教授内容: 
l  本章讲解了什么是结构体类型,以及如何使用结构类型变量、结构体数组、结构体指针,什么是共用体,它和结构体的异同,以及共用体变量的引用 l  本章还讲解了枚举类型、以及如何使用typedef命名类型 能力训练及任务案例 任务9-1: 结构体变量初始化                任务9-2:结构体数组举例 任务9-3: 指向结构体变量的指针变量示例 任务9-4: 指向结构体数组元素的指针的应用 任务9-5: 结构体变量作函数的参数示例 任务9-6: 指向结构体的指针作函数参数示例
任务9-7: 建立静态链表示例                任务9-8:建立动态链表示例 任务9-9: 单链表的输出                    任务9-10:共用体示例
任务
9-11:枚举类型示例        任务9-12:学生信息表(单链表)的基本操作
参考资料
C 程序设计教程,谭浩强 著,清华大学出版社,2007.07
C 程序设计教程学习辅导,谭浩强 编著,清华大学出版社,2007.10 网络学堂:wlxt.bicea.edu
考试系统:无忧网络考试系统 10.1.89.100/webexam
二、 教学设计 
1.专业英语词汇 
英文词汇中文名
structure 结构
member 成员
tag 标记
function 函数
Enumerate 枚举 
Define 定义 
Union 联合(共用体) 
create  创建
Insert 插入
delete  删除
Modify / update 修改 
2.教学方法 
引入结构体概念后采用项目拓展、实例分析引导,递进驱动。 
形象比喻,注重思路引导 
3.教学过程   
A提问
复习上一节课的指针
学习过几种数据类型?分别是那些?分别如何操作(定义、初始化、引用、输入输
出)? 
B设问(自问自答)
问:什么是结构体?什么是共用体?它们之间有什么异同点?
答:结构体类型是把若干个数据有机地组成一个整体,这些数据可以使不同类型的;
共用体类型是指使几个不同的变量共占同一段内存的结构称为“共用体”类型的结
构;结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有其自
己的内存单元。共用体变量所占的内存长度等于最长的成员的长度。
C结构体类型
要点 
结构体类型的引入
结构体变量的定义和引用
D任务案例9-1(P253):结构体变量初始化
要点 
编程实践,引用结构体变量操练
E结构体体数组
要点 
结构体数组的定义和引用
F任务案例9-2(P255):选举计票程序
要点 
编程实践,结构体数组操练
G结构体指针
要点 
指向结构体变量的指针变量
结构体数组元素的指针
结构体变量和指向结构体的指针作函数参数
H任务案例9-3(P257):通过指向结构体变量的指针变量输出该结构体变量的信息
要点 
编程实践,结构体指针操练
I任务案例9-4(P258):指向结构体数组元素的指针的应用
要点 
编程实践,结构体数组操练
J任务案例9-5(P260):结构体变量示例
K
要点 
编程实践,结构体数组操练
L任务案例9-6(P261):指向结构体的指针作函数参数示例
要点 
编程实践,指向结构体的指针作函数参数操练
M用指针处理链表
要点 
链表概述
建立简单的静态链表
建立动态链表
输出链表
N任务案例9-7(P263):建立简单静态链表
要点 
编程实践,单链表基本操作操练
O任务案例9-8(P264):建立动态链表
要点 
编程实践,单链表基本操作操练
P任务案例9-9(P268):输出单链表
要点 
编程实践,单链表基本操作操练
Q共用体类型
要点 
什么是共用体类型
共用体变量的引用方式
共用体类型数据的特点
R任务案例9-10(P272):共用体类型使用示例
要点 
编程实践,共用体类型使用示例
S其他类型
要点 
枚举类型
用typedef命名类型
T任务案例9-11(P272):枚举类型示例(概率摸球)
要点 
编程实践,枚举类型使用操练
U任务案例9-12(P272):学生信息表(单链表)的基本操作
union是什么类型要点 
编程实践,单链表基本操作操练
4.学生易出错的地方 
定义结构体变量前不先定义类型 
定义类型时大括号后不加分号 
结构体数组知考虑数组不考虑结构体特性 
结构体数组的成员在输入输出时经常出错,比如&经常误用 
指向结构体的指针对成员的引用 
通过指针引用时成员的数据输入 
在定义共用体变量之前不先进行共用体类型的定义 
引用当前不活动的共用体成员 
枚举的理解 
创建链表时每个新节点都应该申请空间 
插入、删除操作时的指针移位理解不透 
最后一个节点的next指针赋值为NULL 
5.问题讨论 
为什么使用结构体类型? 
Ÿ 如果定义一个日期类型的结构体,应包含哪些成员?
Ÿ 如果在结构体中再包含数组成员,将如何引用?