语言基础及教程 22_第1页
语言基础及教程 22_第2页
语言基础及教程 22_第3页
语言基础及教程 22_第4页
语言基础及教程 22_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

PAGE课题任务3.4判断车辆的故障等级(switch)课型讲练授课班级授课时数2教学目标掌握switch语句的形式特点,可以将原有的部分if-else语句改为switch语句教学重点switch语句的特点,以前的if-else语句的转化教学难点熟练应用switch语句学情分析学生对于分支结构结构已经有所接触,由于本学期两个班级的学生刚刚接触学习C语言,对于程序的学习方法还不是很熟悉,还没有从高中的学习方法中脱离出来,因此,还需多多练习。教学效果教后记任务3.4判断车辆的故障等级(switch)3.4.1任务目标根据新能源汽车电量的使用程度进行剩余电量提示,假设汽车电池容量的格子共有10格,10格时显示为充满状态,8-9格显示为充足状态,5-7显示正常状态,2-4显示预警状态,1-2以显示报警状态,0显示无电量,无法行驶状态。通过键盘输入电池容量格子的数目,输出剩余电量状态。(变量:电量battery)任务目标运行截图如图3-4-1所示:图3-4-1任务目标运行截图3.4.2知识储备switch语句也称为开关语句,是多分支结构的一种特殊形式。1.多分支switch语句的一般形式是:switch(表达式){case值1:语句1;[break;]case值2:语句2;[break;]…case值n:语句n;[break;]default:语句n+1;}多分支switch语句的流程如图3-4-2所示。图3-4-2多分支switch语句注意点(1)switch中case常量可以是数值(整数),也可以是字符,但不能为其他的值。(2)可以省略一些case和default。(3)每个case或default后的语句可以是语句体,但不需要使用"{"和"}"括起来。(4)每个case语句体的最后都应有一个break语句。执行switch开关语句时,将常量表达式的值逐个与case后的常量进行比较,若与其中一个相等,则执行该常量下的语句,若不与任何一个常量相等,则执行default后面的语句。2.示例:小丽星期日出去逛街,她发现自己所带的钱不够,因此考虑去ATM机取钱。输入正确密码后,ATM机会有一个显示屏,可以查询、取款、转账、退出等操作如图3-4-3所示图3-4-3示例运行截图方法一:if多分支流程图如图3-4-4所示:图3-4-4示例if多分支流程图程序代码#include"stdio.h"voidmain(){ intchoose; printf("输入您的选项:"); scanf("%d",&choose); if(choose==1)printf("您选择了取款服务!\n"); elseif(choose==2)printf("您选择了查询服务!\n"); elseif(choose==3)printf("您选择了转帐服务!\n"); elseif(choose==4)printf("您选择了退出,请取卡!\n");}方法二:switch流程图图3-4-5示例switch多分支流程图#include"stdio.h"voidmain(){ intchoose; printf("输入您的选项:"); scanf("%d",&choose); switch(choose) { case1:printf("您选择了取款服务!\n");break; case2:printf("您选择了查询服务!\n");break; case3:printf("您选择了转帐服务!\n");break; case4: printf("您选择了退出,请取卡!\n"); }}3.4.3典型案例典型案例1:汽车故障诊断应用中将车辆故障等级分为4级:0,正常;1,一级故障/严重故障,停机处理;2,二级故障/轻微故障,限定功率;3,三级故障/警告提醒。依据输入的故障等级,输出相应的处理模式,如输入1显示“一级故障/严重故障,停机处理”。如果输入其它数据,则显示输入有误。(变量:故障等级faultlevel)算法分析:1.定义变量2.输入故障等级3.按照故障等级分别匹配典型案例1流程图如图3-4-6所示:图3-4-6典型案例1流程图程序代码#include"stdio.h"voidmain(){intfaultlevel;printf("请输入故障等级:\n");scanf("%d",&faultlevel);switch(faultlevel){case0:printf("正常\n");break;case1:printf("一级故障/严重故障\n");break;case2:printf("二级故障/轻微故障\n");break;case3:printf("三级故障/警告提醒\n");break;}}典型案例1运行截图如图3-4-7所示:图3-4-7典型案例1运行截图典型案例2:驾驶员可以驾驶的车辆和获得的驾驶证存在对应关系,下面列举几种驾照和车型的关系:A级:大型客车或者牵引车或者城市公交车;B级:中型客车或者大型货车;C级:小型汽车。通过键盘输入驾驶证的类型输出可以驾驶的车型。(变量:驾驶证类型Type_of_driving_license)算法分析:1.定义变量2.输入驾驶证类型3.输入匹配(注意此处是字符型匹配)典型案例2流程图如图3-4-8所示:图3-4-8典型案例2流程图程序代码#include"stdio.h"voidmain(){charType_of_driving_license;printf("请输入驾驶证类型:\n");scanf("%c",&Type_of_driving_license);switch(Type_of_driving_license){case'A':printf("大型客车或者牵引车或者城市公交车\n");break;case'B':printf("中型客车或者大型货车\n");break;case'C':printf("小型汽车\n");break;}}典型案例2运行截图如图3-4-9所示:图3-4-9典型案例2运行截图提问:任务3.3的典型案例2可以用switch实现吗?为什么?典型案例3:正常情况下新能源汽车电池有6-8年的使用年限,当处于第1-2年时,电池质量较好,在质保期,当处于第3-4年时,电池质量正常,在质保期;当处于第5-6年时,电池里程较短,在质保期;当处于第7-8年时,电池已过质保期;当使用超过8年以上时,则必须更换。通过键盘输入电池的使用年限,输出相应的电池状态。(变量:电池年限batteryyears)算法分析:1.定义年限2.输入年限3.根据年限判别典型案例3流程图如图3-4-10所示:图3-4-10典型案例3流程图程序代码#include"stdio.h"voidmain(){intbatteryyears;printf("请输入使用年限:\n");scanf("%d",&batteryyears);switch(batteryyears){case1:case2:printf("电池质量较好,在质保期\n");break;case3:case4:printf("电池质量正常,在质保期\n");break;case5:case6:printf("电池里程较短,在质保期\n");break;case7:case8:printf("电池已过质保期\n");break;default:printf("电池必须更换\n");break;}}典型案例3运行截图如图3-4-11所示:图3-4-11典型案例3运行截图典型案例4:机动车驾驶员考试在科目三考试时,主要考察档位和车速是否匹配,假设车速为0-15km/h使用一档(不包含15),车速在15-30km/h时使用二挡(不包含30),车速在30-40km/h时使用三挡(不包含40),车速在40-60km/h时使用四挡,车速在60km/h以上时使用五挡。通过键盘输入车速,求车辆相应所处的档位。(变量:车速speed)算法分析:1.定义速度2.输入速度3.将数据分析特点,进行对5整除。4.根据速度比例进行匹配。典型案例4流程图如图3-4-12所示:图3-4-12典型案例4流程图程序代码:#include"stdio.h"voidmain(){doublespeed;intn;printf("请输入车速:\n");scanf("%lf",&speed);n=(int)(speed/5);switch(n){ case0:case1: case2:printf("使用一挡\n");break; case3: case4:case5:printf("使用二挡\n");break;case6:case7:printf("使用三挡\n");break;case8:case9:case10:case11:printf("使用四挡\n");break;default:printf("使用五档\n");break;}}典型案例4运行截图如图3-4-13所示:图3-4-13典型案例4运行截图3.4.4任务分析与实践算法分析:1.定义剩余变量2.输入剩余变量3.根据格子数辨别电量状态任务目标流程图如图3-4-14所示:图3-4-14任务目标流程图#include"stdio.h"voidmain(){intbattery,n;printf("请输入剩余电量:\n");scanf("%d",&battery);n=battery/10;switch(n){case10:printf("充满状态\n");break;case9:case8:printf("充足状态\n");break;case7:case6:case5:printf("正常状态\n");break;case4:case3:printf("预警状态\n");break;case2:case1:printf("报警状态\n");break;case0:printf("无电量\n");break;}}3.4.5动手练习1.汽车显示屏需要显示目前是星期几的英文,从键盘输入数字,显示

温馨提示

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

最新文档

评论

0/150

提交评论