中职《C语言程序设计》教案第5课制作简易评教系统.docx
课题制作简易评教系统课时2课时(90min)教学目标知识目标:(1)掌握使用关系运算符、逻辑运算符和条件运算符进行运算的方法(2)掌握if语句的使用方法能力目标:能读懂较为复杂的选择结构程序素质目标:提升职业操守,在面临重大选择时,能够做出有利于国家和民族的选择教学重难点教学重点:关系运算符和关系表达式,逻楫运算符和逻辑表达式,if语句及其嵌套教学难点:if语句的嵌套教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务请同学们结合日常生活经验,总结我们常常面临的选择或等级划分问题的具体场景。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】请同学们扫码观看“选择结构”视频(详见教材),完成以下流程图的绘制:请绘制选择结构的流程图,以及求两个数中的较大值的流程图。【学生】思考、绘图传授新知【教师】讲解关系运算符和关系表达式,逻辑运算符和逻辑表达式,简单if语句,if语句的嵌套一、关系运算符和关系表达式÷【教师】多媒体播放“关系运菖符和关系表达式”视频(详见教材),让学生了解关系运算符和关系表达式的基本使用方法在程序中经常需要比较两个量的大小关系,从而决定程序下一步的工作。在C程序中,比较两个量大小关系的运算符称为关系运算符,用关系运算符将两个数值或数值表达式连接起来的式子称为关系表达式。1.关系运算符C程序提供的关系运算符有六种,包括大于、大于等于、小于、小于等于、等于和不等于,见表3-1所歹U(详见教材).关系运算符说明如下:(I)C程序中的大于等于、小于等于、等于、不等于运算符(=、=、=、!=)的表示方法与数学中的表示方法不同(之、£=、);(2)在以上六种关系运算符中,前四种(、=、=)的优先级相同,后两种(=、!=)的优先级相同,且前四种的优先级高于后两种;(3)关系运算符的优先级低于算术运算符,但高于赋值运算符;(4)关系运算符的结合方向为从左到右。【课堂问答】*【教师】随机邀请学生回答以下问题请同学们思考,关系运算符"="与赋值运算符"="有何区别?÷【学生】聆听、思考、回答÷【教师】总结学生的回答C程序中"="是关系运算符,用来判断两个数是否相等,而"="是赋值运算符,用来给左边的变量赋值。例如,x=3是判断X的值是否为3,而x=3是给X赋值为3。2.关系表达式关系表达式的值是一个逻辑值,即"真"或"假",关系表达式成立,结果为真,关系表达式不成立,结果为假。例如,关系表达式3=4的值为"假",7<=8的值为"真"。在C程序的逻辑运算中,用I代表"真",用O代表"假".例如,若a=1、b=kc=2,则:(1)关系表达式a>b的值为"假",表达式的值为O;(2)关系表达式a=b的值为"真",表达式的值为1;(3)关系表达式a=c>b的值为"真",因为Ob的值为1,等于a的值,所以表达式的值为1;(4)赋值表达式a=b>c的值为"假",因为b>c的值为0,所以赋值后a的值为0,整个表达式的值也为0.提示C程序中的关系运算与数学领域中的比较运算是有区别的。例如,若a=l、b=2、c=3,则关系表达式c<a<b的值为"真".这是因为优先级相同的关系运算符从左向右开始运算,即先判断Cq的值为0,再判断(Xb的值为1,所以表达式的值为"真"。但是在数学表达式中,c<a<b显然是不成立的。因此,如果要判断a的值是否在c和b之间,不能直接用条件表达式来描述,而是需要借助逻辑运算符。二、逻辑运算符和逻辑表达式*【教师】多媒体播放“逻辑运算符和逻辑表达式“视频(详见教材),让学生熟悉逻辑运算符和逻辑表达式的逻辑运算方法判断a的值是否在c和b之间,需要检查a>c和a<b两个条件,两个条件同时满足,结果才能为"真".在这种情况下,就需要用逻辑运算符"与"将两个关系表达式连接起来,组成一个复合条件,BPa>c&&a<be1.逻辑运算符C程序中有逻辑与(&&)、逻辑或(Il)和逻辑非(!)三种逻辑运算符,见表3-2所列(详见教材)。当a和b的值为不同组合时,各种逻辑运算所得到的结果见表3-3所列(详见教材)【课堂问答】÷【教师】随机邀请学生回答以下问题请同学们思考,如果用同学们学过的物理里面的串联电路与并联电路,那么串联电路、并联电路与逻辑运算中的逻辑与(&&)、逻辑或(Il)有何相似之处?÷【学生】聆听、思考、回答÷【教师】总结学生的回答逻辑运算符说明如下。(1)三种运算符的优先级由高到低依次为:!、&&、IL(2)逻辑运算符中的"&&"和的优先级低于关系运算符,"!"的优先级高于算术运算符,如图3-1所示(详见教材).(3)逻辑运算符中的"&&"和的结合方向为从左到右,"!”的结合方向为从右到左。2.逻辑表达式在C程序中,参与逻辑运算的所有数值,都会在转换为逻辑"真"或逻辑"假"后才参与逻辑运算。如果参与逻辑运算的数值为O,则把它作为逻辑"假"处理,如果参与逻辑运算的数值为非O,则把它作为逻辑"真"处理。逻辑运算符两侧的运算对象可以是任何类型的数据,但运算结果一定是整型,并且只有两个值,即1或O,分别表示"真"或"假"。例如:(1)若a=0,则逻辑表达式!a的值为I。因为a的值为0,逻辑值为"假",对它进行"非"运算,得"真","真"以1代表。相反,若a等于任何一个非0的数,那么!a的值为Oe(2)若a=2,b=4,则逻辑表达式a&&b的值为1,因为a和b均非0,逻辑值为1,所以进行“逻辑与"运算的值也为L(3)若a=2,b=4,则逻辑表达式ab的值为Ie(4)若a=2,b=4,则逻辑表达式!ab的值为1(先计算!a的值为0,再计算0b的值为1)【课堂讨论】)【教师】请学生分组讨论以下问题在逻辑表达式求解中,并不是所有的逻辑运算符都会被执行,有时只需执行一部分运算就可以得到结果,请同学们以小组为单位,举例进行说明.*【学生】讨论、总结、回答÷【教师】总结学生的回答a&&b,只有a为真(非0)时,才需要判断b的值,如果a为假,就不必判断b的值,即只有a0,才继续进行其右面的运算。又如,ab,只要a为真(非(),就不必判断b的值,只有a为假时,才判断b的值,即只有a=0,才继续进行其右面的运算。【课堂练习】÷【教师】出示【例31】,组织学生编写代码条件运算符和逻辑运算符的应用。*【学生】编写程序、运行、对比结果÷【教师】解析例题(参考程序详见教材)O【运行结果】程序运行结果如图3-2所示(详见教材)【程序说明】计算x=(m=a>b)&&(n=a<b)表达式时,先判断a>b,其结果为"假",即将数值0赋给变量11,同时,由于运算符"&&"左边的值为0,整个表达式的值即为Oe因此,系统将不再计算运算符"&&"右边的表达式,n的值还为3.计算y=(m=a>b)(n=a<b)表达式时,由于"左边的值为0,故还需要计算右边表达式n=a<b的值,得到n=l,整个表达式结果也为L三、简单if语句*【教师】多媒体播放“if语句的基本形式“视频(详见教材),让学生了解if语句、if-else语句的使用1.单分支if语句if语句允许程序通过判断条件是否成立而选择是否执行指定语句,最简单的形式如下:if(表达式)语句其中,表达式一般为逻辑表达式或关系表达式;语句可以是一条简单的语句,也可以是多条语句,当为多条语句时,需要用u"将这些语句括起来,构成复合语句。if语句的执行过程如下:当表达式的值为真(非O)时,执行语句,否则直接执行if语句下面的语句,其流程图如图3-3所示(详见教材)【课堂练习】【教师】出示【例32】,组织学生编写代码编程实现,输出一个字母,无论该字母为大写字母还是小写字母,均以小写字母形式输出。÷【学生】编写程序、运行、对比结果÷【教师】解析例题本例要求输出形式为4写字母,那么如果输入的是大写字母,则需要转换成相应的小写字母。因此可以定义一个字符型变量ch,首先判断ch是否为大写字母,若是则执行ch=ch+32转换成小写字母,最后输出ch(参考程序详见教材)【运行结果】程序运行结果如图3-4所示(详见教材)2.双分支if-else语句单分支if语句只允许在条件为真时指定要执行的语句,而if-else语句还可以在条件为假时指定要执行的语句。if-else语句的TS形式如下:if(表达式)语句Ielse语句2if-else语句的执行过程如下:当表达式为真(非O)时,执行语句1,否则执行语句2,其流程图如图3-5所示。整个if-else语句可以写在多行中,也可以写在一行中。但无论写在几行中,都是一个整体,属于同T语句。需要注意的是,else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。【课堂练习】÷【教师】出示【例33】,组织学生编写代码编程实现,输入T正整数,判断该数是偶数还是奇数。【学生】编写程序、运行、对比结果【教师】解析例题要判断一个正整数X是偶数还是奇数,可判断该整数能否被2整除。使用if-else语句进行条件判断,如果X能被2整除,即x%2=0,则X为偶数,否则X为奇数.(参考程序详见教材)【运行结果】程序运行结果如图3-6所示(详见教材)四、if语句的嵌套÷【教师】介绍讦语句的嵌套形式在if语句中又包含一个或多个if语句称为if语句的嵌套,其一般形式如下.if(表达式1)if(表达式2)语句1else语句2卜内嵌ifelseJif(表达式3)语句3else语句4L内嵌if此结构的流程图如图3-7所示(详见嬴)。【课堂讨论】÷【教师】谓学生分组讨论以下问题请同学们以小组为单位,讨论else是否必须与if成对实现,else能否单独使用?【学生】讨论、总结、回答÷【教师】总结学生的回答在上述语句中,if与else既可成对出现,也可不成对出现,但else总是与最近的且还没配对的if相配对。在书写这种语句时,每个else应与对应的if对齐,形成锯齿形状,这样能够清晰地表示if语句的逻辑关系。【课堂练习】÷【教师】出示【例34】,组织学生编写代码输入三条边的边长,判断能否构成三角形。若能,再判断该三角形是等边三角形、等腰三角形,还是普通三角形。*【学生】编写程序、运行、对比结果÷【教师】解析例题构成三角形的条件是三条边的值都必须大于0,并且满足任意两边之和大于第三条边。在满足上述条件的前提下,若三条边的值相等,则该三角形为等边三角形;否则若任意两条边的值相等,则该三角形为等腰三角形;否则为普通三角形。(参考程序详见教材)【运行结果】程序运行结果如图3-8所示(详见教材)例34也可用多分支if-else-if语句实现。if-else-if语句是一类特殊但常用的if语句,也常被认为是if语句的基本形式,其一般形式如下.if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3elseif(表达式)语句nelse语句n+1执行过程:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句,然后跳到整个if语句之外继续执行程序.如果所有的表达式都为假,则执行最后一个else后的语句,然后继续执行后续程序。【课堂练习】÷【教师】出示【例35】,组织学生编写代码用if-else-if语句改写例3-4的程序。)【学生】编写程序、运行、对比结果÷【教师】解析例题(参考程序详见教材)【运行结果】程序运行结果如图3-9所示(详见教材)*提示if和else的配对关系,else总是与其前方最靠近的,且没有其他else与其配对的if相配对。另外,每个else本身都隐含了一个条件,在编程时要善于利用隐含条件,使程序代码清晰简洁。五、任务实施÷【教师】多媒体播放“制作简易评教系统”视频(详见教材),让学生熟悉简易评教系统的具备的功能及代码实现逻辑,具体代码实现1.任务分析当输入成绩有效时,先计算教师成绩(教师成绩=教务处评分x.l+督导处评分xl+学生评分x5+系部自评分X3)然后判断是否满足"教师成绩290",若满足,则输出"您的评定等级为优秀!".再判断是否满足"教师成绩A70",若满足,则输出"您的评定等级为称职!"。否则输出"您的评定等级为不称职!"。输入成绩无效时,输出“输入的成绩无效,请重新输入!"。所以,可以用嵌套的if语句实现。.(详见教材)3.运行结果通过键盘输入95989297Z,程序运行结果如图3-10所示(详见教材)【学生】聆听、思考、理解、记录课堂实训【教师】介绍课堂实训要求,以及实训内容,要求学生按照实训要求完成实训任务请同学们按照任务实施中制作简易评教系统的程序设计思路和步骤进行练习。首先定义代表教务处评分、督导处评分、学生评分和系部自评分的变量,然后实现用户的输入,并保存到相应变量.通过if语句判断各成绩输入是否有效,根据题意计算教师评分,使用多分支语句if-else,根据综合总结进行等级评定,并输出结果。最后输入相应的各个成绩,运行程序,观察输出结果。【学生】按照要求进行操作,完成后总结自己哪些地方做得很好,还有哪些地方需要改进课堂小结【教师】简要总结本节课的要点本次课介绍了关系运算符和关系表达式,包括大于、大于等于、小于、小于等于、等于和不等于。介绍了逻辑运算符和逻辑表达式,包括逻辑与(&&)、逻辑或(Il)和逻辑非(!)三种逻辑运算符,及其运算规则。讲解了简单if语句包括单分支if语句、双分支if-else语句,if语句的嵌套,if语句中又包含一个或多个if语句的形式。最后通过任务实施制作一个简易的评教系统,练习本次课所学各类知识,达到学以致用.【学生】总结回顾知识点作业布置【教师】布置课后作业请根据本课内容,完成课后习题中的相关习题。【学生】完成课后任务教学反思