C语言程序设计 教案 8-2共用体及枚举类型_第1页
C语言程序设计 教案 8-2共用体及枚举类型_第2页
C语言程序设计 教案 8-2共用体及枚举类型_第3页
C语言程序设计 教案 8-2共用体及枚举类型_第4页
C语言程序设计 教案 8-2共用体及枚举类型_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《C语言程序设计》教案课程名称C语言程序设计任课教师总课时64教学课题共用体及枚举类型授课班级授课日期课时2教学目标知识目标:1.掌握共用体的使用方法2.掌握枚举类型的使用方法3.掌握类型定义的方法能力目标:能够实现学生成绩管理系统素质目标:团队合作能力、团队互助,自我学习的习惯、爱好和能力重点难点共用体和枚举类型的使用教学方法演示、讲解、启发教学资源教材《C语言程序设计》设备准备VC++6.0,极域电子教室软件,分发工作任务单教学环节(教学过程)教学内容教师活动学生活动教学目标课时1发布任务进行任务的问题描述和分析倾听、思考让学生理解任务要求和思路10分钟2理论讲解讲授函数调用倾听、思考预备需要的理论知识15分钟3举例通过一个案例进一步讲解函数的调用倾听、思考通过实际应用帮助学生理解理论知识20分钟4应用布置两个相关题目思考、解答通过做相关练习题帮助学生更好的理解相关知识45分钟教学内容(详细):一.共用体1.共用体变量的定义有时为了节省存储空间或为了用多种类型访问一个数据等原因,需要使几种不同类型的变量存放到同一段内存单元中。例如,把一个短整型变量i,一个字符变量ch和一个单精度实型变量f放在地址为1000的起始内存单元,i,ch,f分别占据2个,1个和4个字节,这种使用不同变量共占同一段内存的结构称为“共用体”类型的结构,共用体类型也是一种构造类型,与系统定义的数据的基本类型不同,它必须定义后才能使用。共用体类型定义的一般形式为: union共用体类型名 {数据类型成员1; 数据类型成员2; …… 数据类型成员n; };其中union是关键字,是定义共用体类型必不可少的标识符;共用体名是程序员自己命名的标识符。{}中的内容为共用体成员的类型说明,与结构体类型的成员说明相同。共用体的成员可以是任何类型,包括共用体类型和结构体类型。例如:uniondata{inti;charch;doublef;};上述所定义的共用体类型尚未分配存储空间,还不是实际存储的可以使用的变量。要使用这个共用体类型,还需要进行共用体变量定义。共用体变量的定义形式有三种:方式1:先定义共用体类型,后定义共用体变量,共用体变量定义形式为:union共用体类型名变量名;例如:uniondataa,b,c;方式2:定义共用体类型的同时定义共用体变量,例如:uniondata{inti;charch;doublef;}a,b,c方式3:不用出现共用体名,直接定义共用体变量,例如:union{inti;charch;doublef;}a,b,c2.共用体变量的引用共用体变量的引用方式与结构变量的引用方式也非常类似。共用体变量中成员的引用形式为:共用体变量名.成员名例如,前面定义了共用体变量a后,则对其成员变量的引用分别为:a.i;a.ch;a.f;C语言最初引入共用体的目的之一是为了节省存储空间,另外一个目的是可以将一种类型的数据不通过显式类型转换而作为另一种类型数据使用。二.枚举类型在实际问题中,有些变量只有几种可能的取值。例如,一个星期只有7天,一年只有12个月,人的性别只有两种,等等。在C语言中对这样取值比较特殊的变量可以定义为“枚举”类型。在“枚举”类型的定义中列举出变量所有可能的取值,被定义为“枚举”,该类型的变量取值不能超过定义的范围。应该说明的是,“枚举”类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。1.枚举类型的定义枚举类型的定义形式如下:enum枚举类型名{取值表};enum是定义枚举类型的关键词。花括号中的取值表称为枚举表,取值为所有可能的取值,每个枚举表项是常量,各常量之间以逗号分隔,使用时不要在常量的两端加单、双引号。例如:enumweekday{sun,mon,tue,wed,thu,fri,sat};该枚举名为weekday,枚举常量共有7个,反被说明为weekday类型的变量取值只能是七天中的某一天。2.枚举变量的定义(1)先定义枚举类型,后定义枚举变量例如:enumcolor{red,yellow,blue,green,white,black};/*定义枚举类型*/enumcolorc;/*定义枚举变量*/即:c定义为enumcolor型的枚举变量。(2)在定义枚举类型的同时定义枚举变量例如:enum[color]{red,yellow,blue,green,white,black}c,b;即:c、b定义为enumcolor型的枚举变量。此时,枚举类型名color可缺省。三.类型定义C语言提供了许多标准类型名,如int,char,float等。用户可以直接使用这些类型名来定义所需要的变量。同时C语言还允许使用typedef语句定义一种新的类型名来代替已有类型名,定义新的类型名称之后,可像标准数据类型那样用新的类型名称定义变量。1.定义基本类型的别名定义基本类型别名的形式为:typedef基本类型名别名标识符;例如:typedefintWORD;/*定义WORD为int的别名*/typedeffloatREAL; /*定义REAL为float的别名*/typdefunsignedcharBYTE;/*定义BYTE为unsignedchar的别名*/指定用WORD代表int类型,REAL代表float,BYTE代表unsignedchar。所以,以下两种形式对变量a、b和c的定义是等价的。(1)inta;floatb;unsignedcharc;(2)WORDa;REALb;BYTEc;2.定义自定义的数据类型的别名声明自定义类型别名的形式为:typedef自定义类型说明信息别名标识符;例如:typedefstructstudent{ longno; charname[16]; intage,score;}STUDENT;3.类型定义的步骤(1)按定义变量的方法,写出定义体;(2)将变量名换成别名;(3)在定义体最前面加上typedef。例如:给unsignedint定义一个别名DWORD。(1)按定义变量的方法,写出定义体:unsignedinta;(2)将变量名换成别名:unsignedintDWORD;(3)在定义体最前面加上typedef:typedefunsignedintDWORD;四.学生成绩管理系统的实现1.存储结构设计(1)确定学生基本信息的类型对学生的基本信息进行处理,首先需要把学生的基本信息,包括学号、姓名、3门课程成绩、总成绩等相关信息录入计算机,保存到相应的变量中,否则计算机无法对这些数据进行处理。在8.1.1中,定义了学生基本信息类型:structstudent //定义学生基本信息结构体{longnum; //学号charname[16]; //姓名floatmath; //数学成绩floatyw; //语文成绩floateng; //英语成绩floatsum; //总分};2.数据录入与浏览(1)数据录入模块设计思路:将结构体数组作为函数的形参,已录入的记录总数m定义为全局变量。利用循环结构,交互式提示用户录入记录。同时,定义学号为关键字,程序需对录入的学号进行合法性检查,不能有重复的学号。(2)记录浏览模块对函数的形参进行操作,注意到记录的总数由全局变量m保存,按%-8.1f的格式输出记录。(3)运行测试编译、连接、运行程序。按数字键1选择“数据录入”菜单,按照系统提示录入若干条记录,如图8-1所示。再按8选择“记录浏览”菜单,系统将显示所有学生信息。如图8-2所示。图8-2数据录入8-3记录浏览3.记录查询与修改(1)记录查询设计思路:输入要查找的学生之学号,以学号为关键字,在结构数组中查找匹配,如果匹配成功,显示该学生的记

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论