C语言项目化教程(基于智能制造软件)教案 项目4 车辆电池数据监测(循环结构)_第1页
C语言项目化教程(基于智能制造软件)教案 项目4 车辆电池数据监测(循环结构)_第2页
C语言项目化教程(基于智能制造软件)教案 项目4 车辆电池数据监测(循环结构)_第3页
C语言项目化教程(基于智能制造软件)教案 项目4 车辆电池数据监测(循环结构)_第4页
C语言项目化教程(基于智能制造软件)教案 项目4 车辆电池数据监测(循环结构)_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

PAGE课题项目四车辆电池数据监测(循环结构)课型讲练授课班级授课时数2教学目标1.掌握循环语句的知识体系,能运用循环语句解决实际问题。2.运用for循环语句解决实际问题教学重点for语句的具体应用。软件开发方法的运用。教学难点使用for语句对具体问题的算法描述。运用关系运算符和逻辑运算符描述循环条件学情分析学生基础差异较大,个别学生分支结构掌握的还不熟练,因而重点是语法知识的理解掌握(如选择条件的描述,循环条件的描述及其作用,for语句的运用),接受能力较快的学生,重点加强学生算法的训练,培养良好的编程习惯及编程规范。教学效果教后记项目四车辆电池数据监测(循环结构)[学习目标]知识目标理解for循环、while循环、dowhile循环语句。熟悉嵌套的循环。熟悉break语句的使用。能力目标能准确运用C语言循环的三种格式。能基本利用C语言流程控制语句设计循环结构程序。能熟练运用循环嵌套编写程序。能准确运用循环语句编写简单程序。情景设置车载设备采集车辆运行数据并且持续发出,接收端能够正确及时接收并加以处理,由于数据源源不断发送,因此接收端采用循环结构处理。任务4.1车辆电池充电状态显示(for循环)4.1.1任务目标某电池需要充电,当电池充电时间少于8小时时,显示充电多少小时,继续充,当8小时显示充满,请停止充电。任务目标运行截图如图4-1-1所示:图4-SEQ图4-\*ARABIC1-1任务目标运行截图4.1.2知识储备我们将反复执行相同的操作称之为循环。在C语言中有三种循环,for循环,do-while循环,while循环。for循环循环一般由循环语句和判断条件组成,一般我们在表达式1处放置初值,表达2处放置判断语句,表达3处放置步长增量,循环体当由两条及以上的语句组成是必须加{}。当循环明确范围或者运行次数时,一般采用for循环。其具体的格式如下:for(表达式1;表达式2;表达式3)语句(循环体)for循环的流程图如图4-2所示,(a)是流程图方式,(b)是N-S方式。图4-1-2for循环流程图注意:“表达式1”一般是是一个赋值表达式,它用来给循环控制变量赋初值;“表达式2”一般是一个关系表达式或逻辑表达式,它决定什么时候退出循环;“表达式3”一般是个算术表达式,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用“;”间隔。2.示例输出下列语句我是最棒的!我是最棒的!我是最棒的!我是最棒的!#include<stdio.h>voidmain(){inti;for(i=1;i<=4;i++)printf("我是最棒的\n");}4.1.3典型案例典型案例1:显示某车辆白天12小时电池状态,程序运行截图如图4-1-3所示图4-1-SEQ图4-\*ARABIC3典型案例1运行截图分析过程:首先看看是否有内容相同,发现有相同的地方第*小时,正常执行12遍,刚好数字范围为112循环体:第*小时,正常-初值count=1判断条件count<=12步长增量count++算法分析:定义变量i根据上述分析可得循环四要素的位置循环次数为12次,可以确定初值,判断条件,步长增量0<=12++循环体为第***小时,正常典型案例1流程图如图4-1-4所示:图4-1-SEQ图4-\*ARABIC4典型案例1流程图程序代码:#include"stdio.h"voidmain(){inti;for(i=1;i<=12;i++)printf("第%d小时,正常\n",i);}典型案例2:某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会加50元,一个驾驶员去年12个月的基本工资为3000元,那么这一年都开车都没有出事故,则这名驾驶员第12月的工资为多少?(变量:工资:salary,12月份工资)分析过程初值salary=3000;一月份salary1=salary+50;二月份salary2=salary1+50;三月份salary3=salary2+50;四月份salary4=salary3+50;十二月份salary12=salary11+50;查找循环四要素,得出循环体:salary=salary+50范围1—12初值salary1=3000,month=1判断条件month<=12步长增量month++算法分析:1.定义变量2.根据for循环格式图4-1-SEQ图4-\*ARABIC5典型案例2流程图for(初值;判断条件;步长增量){循环体}3.输出第12月份工资典型案例2流程图如图4-1-5所示:程序代码:#include"stdio.h"voidmain(){intsalary=3000;intmonth;for(month=1;month<=12;month++){ salary=salary+50;}printf("这名驾驶员12月份的工资为:%d",salary);}运行典型案例运行截图如图4-1-6所示:图4-1-SEQ图4-\*ARABIC6典型案例2运行截图典型案例3:某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会增加上月工资的10%,一个驾驶员1月份的工资为3000元,这一年都开车都没有出事故,则这名驾驶员第12月的工资为多少,本年一共领取了多少工资?(变量:基本工资salary,12月份工资,总工资sum_salary)分析过程初值salary=3000;sum=0;1月份salary=salary+salary*0.1;sum1=sum+salary;2月份salary2=salary1+salary*0.1;sum2=sum1+salary2;……12月份salary12=salary11+salary*0.1;sum12=sum11+salary12;查找循环四要素:初值month=1判断条件month<=12步长增量month++循环体salary=salary+salary*0.1sum=sum+salary算法分析:1.定义变量月份,工资,工资总额2.循环四要素考虑for(初值;判断条件;步长增量){循环体;}输出第12月份工资和一年的总工资流程图:典型案例3流程图如图4-1-7所示:图4-1-SEQ图4-\*ARABIC7典型案例3流程图任务代码:#include"stdio.h"voidmain(){intmonth;intsalary=3000;intsum_salary=0;for(month=1;month<=12;month++){ salary=salary+(salary*0.1); sum_salary=sum_salary+salary;}printf("该名驾驶员12月份的工资为:%d\n",salary);printf("该驾驶员一共领取的工资为:%d",sum_salary);}典型案例运行截图如图4-8所示:图4-1-SEQ图4-\*ARABIC8典型案例3运行截图4.1.4任务分析与实践分析过程:1.循环7次确定初值、判断条件、步长增量2.循环体:充电%d小时,继续充3.充满,请停止充电有条件的显示一次任务目标流程图如图4-1-9所示:图4-1-SEQ图4-\*ARABIC9任务目标流程图程序代码:#include"stdio.h"voidmain(){inti;for(i=1;i<=7;i++)printf("充电%d小时,继续充\n",i);if(i==8)printf("充满,请停止充电");}4.1.5动手练习1.将“关注自己一言一行创建你我美好校园”显示10遍。2.用循环求1+2+3+…+100的和。课题任务4.2固定时间内车辆电池状态实时监测(while循环)课型讲练授课班级授课时数2教学目标1.掌握循环语句的知识体系,能运用循环语句解决实际问题。2.运用while循环语句解决实际问题教学重点While语句的具体应用。软件开发方法的运用。教学难点使用while语句对具体问题的算法描述。运用关系运算符和逻辑运算符描述循环条件学情分析学生基础差异较大,个别学生分支结构掌握的还不熟练,因而重点是语法知识的理解掌握(如选择条件的描述,循环条件的描述及其作用,while语句的运用),接受能力较快的学生,重点加强学生算法的训练,培养良好的编程习惯及编程规范。教学效果教后记任务4.2固定时间内车辆电池状态实时监测(while循环)4.2.1任务目标某电池需要充电,当电池充电时间少于等于8小时时,显示充电多少小时,继续充,当8小时显示充满,请停止充电。运行截图如图4-2-1所示。图4-2-1任务目标运行截图4.2.2知识储备While循环需要的循环四要素和for循环一致,一般不是很明确范围,但是明确停止条件时我们采用while循环。1.while语句格式:while(表达式){语句组}while语句的流程图如图4-2-2所示,其中(1)是流程图,(2)是N-S图。图4-2-2SEQ图4-\*ARABICwhile循环流程图2.使用说明在明确四要素的情况下,根据下面的位置放置循环变量初始化While(判断表达式){循环语句;变量增值;}3.While语句特点和说明特点:先判断表达式,后执行循环体说明:循环体有可能一次也不执行循环体可为任意类型语句下列情况,退出while循环(1)条件表达式不成立(为零)(2)循环体内遇break,return,goto4.无限循环格式无限循环就是可以一直循环,有时我们也称死循环,在底层运用比较多,我们一般把条件直接写成1。格式如下。while(1){循环体;}5.Whiile循环示例,愿我们的友谊地久天长显示10遍#include<stdio.h>voidmain(){inti=1;while(i<=10){printf("愿我们的友谊地久天长\n");i++;}}4.2.3典型案例典型案例1:用while循环显示车辆一天24小时电池状态,运行截图如图4-2-3所示。图4-2-3典型案例1运行截图分析过程:1.首先看看是否有内容相同,发现有相同的地方第*小时,正常执行24遍,刚好数字范围为1242.得出循环四要素循环体:第*小时,正常-初值count=1判断条件count<=24步长增量count++算法分析:1.定义变量count2.根据上述分析可得循环四要素的位置count=1while(count<=24){输出第*小时,正常count++}典型案例1流程图如图4-2-4所示图4-2-4典型案例1流程图程序代码:#include"stdio.h"voidmain(){inti=0;while(i<24){ i++; printf("第%d小时,正常\n",i);}}典型案例2:某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会加50元,一个驾驶员去年12月份的工资为3000元,这一年都开车都没有出事故,则这名驾驶员第12月的工资为多少,本年一共领取了多少工资?(用while显示)分析过程:初值salary=3000;sum_salary=0;month=1;1月份salary=salary+50;sum_salary1=sum_salary+salary;2月份salary2=salary1+50;sum_salary2=sum_salary1+salary2;……12月份salary12=salary11+50;sum_salary12=sum_salary11+salary12;查找循环四要素:初值salary=3000;sum_salary=0;month=1;判断条件month<=12步长增量month++循环体salary=salary+50;sum_salary=sum_salary+salary;算法分析:定义变量2.根据while循环格式初值while(判断条件){循环体步长增量}3.输出第12月份工资和一年的总工资典型案例2流程图如图4-2-5所示:图4-2-5典型案例2流程图程序代码#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum_salary=0;while(month<=12){ salary=salary+50; sum_salary=sum_salary+salary;month++;}printf("这名驾驶员第12月份的工资为:%d\n",salary);printf("这名驾驶员一共领取的工资为:%d",sum_salary);}典型案例2运行截图如图4-2-6所示:图4-2-6典型案例运行截图典型案例3:某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会增加上月工资的10%,一个驾驶员1月份的工资为3000元,这一年都开车都没有出事故,则这名驾驶员第12月的工资为多少,本年一共领取了多少工资?(用while显示)分析过程:参考任务4.1典型案例3分析过程算法过程:1.定义变量月份,工资,工资总额2.根据while循环格式,得出循环格式为intsalary=3000;intsum=0;intmonth=1;while(month<=12){ salary=salary+(salary*0.1); sum=sum+salary;month++;}输出第12月份工资和一年的总工资。流程图:典型案例3流程图和任务4.1典型案例3流程图一样,如图4-1-4所示:程序代码#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum=0;while(month<=12){ salary=salary+(salary*0.1); sum=sum+salary;month++;}printf("这名驾驶员第12月份的工资为:%d\n",salary);printf("这名驾驶员一共领取的工资为:%d",sum);}典型案例3运行截图如图4-2-7所示:图4-2-7典型案例运行截图典型案例4:已知汽车的电池随着使用年限的增加电池的容量会下降,假设开始电池的容量为1,每年下降10%,当电池的容量低于0.5时,此电池需要更换,求电池的使用年限?(变量:电池容量Battery_capacity,电池年限Battery_life)分析过程:初值Battery_capacity=1;一年后:Battery_capacity1=Battery_capacity*0.9二年后Battery_capacity2=Battery_capacity1*0.9……..n年后Battery_capacityn=Battery_capacity(n-1)*0.9停止条件Battery_capacityn<0.5查找循环四要素:初值Battery_capacity=1;Battery_life=0;判断条件Battery_capacity>=0.5与停止条件相反步长增量Battery_life++循环体Battery_capacity=Battery_capacity*0.9算法分析:1.定义变量2.根据while循环格式Battery_capacity=1;Battery_life=0;while(Battery_capacity>=0.5){Battery_capacity=Battery_capacity*0.9Battery_life++}输出电池年限流程图:典型案例4流程图如图4-2-8所示图4-2-8典型案例4流程图程序代码#include"stdio.h"voidmain(){doubleBattery_capacity=1;intBattery_life=0;while(Battery_capacity>=0.5){ Battery_capacity=Battery_capacity*0.9; Battery_life++;}printf("电池的使用年限为:%d",Battery_life);}典型案例4运行截图如图4-2-9所示:图4-2-SEQ图4-\*ARABIC9典型案例运行截图典型案例5:某新能源大客车集团需要招收一名驾驶员,要求是驾驶员必须驾照为A级并且3年内没有出现任何交通事故,从键盘输入驾驶员的等级和驾驶安全年限,当不满足要求时,显示条件不满足,请继续招聘,请输入应聘驾驶员的驾照等级和安全年限。当满足条件时,显示应聘条件合格,招聘结束。(变量:驾照类型type,安全年限years)典型案例5运行截图如4-2-10所示图4-2-10典型案例5运行截图分析过程:初值无循环体:输入驾驶员的等级输入驾驶员的安全年限当条件合格时,输出招聘结束当条件不合格时,输出继续招聘停止条件当等级为A并且安全年限>=3循环四要素不完全满足:算法分析:1.定义变量驾驶员的等级,驾驶员的安全年限。2.考虑四要素不足,但是有明确的停止条件,采用死循环格式while(1){输入驾照类型输入安全年限if(type=='A'&&years>=3){printf("应聘条件合格,招聘结束"); break;} elseprintf("应聘条件不合格,请继续招聘\n");}}流程图:典型案例5流程图如图4-2-11所示图4-2-11典型案例5流程图程序代码#include"stdio.h"voidmain(){chartype;intyears;while(1){printf("请从键盘输入驾驶员的驾照类型:");scanf("%c",&type);printf("请从键盘输入驾驶员驾驶安全年限:"); scanf("%d",&years);if(type=='A'&&years>=3){printf("应聘条件合格,招聘结束"); break;} elseprintf("应聘条件不合格,请继续招聘\n");}}4.2.4任务分析与实践算法分析:1.循环8次确定初值、判断条件、步长增量2.循环体:充电%d小时,继续充3.充满,请停止充电有条件的显示一次任务目标流程图如图4-2-12所示图4-2-SEQ图4-\*ARABIC12任务目标流程图程序代码:#include"stdio.h"voidmain(){inti=0;while(i<=8){ printf("充电%d小时,继续充\n",i);i++;} printf("充满,请停止充电");}4.2.4动手练习1.改写下面的程序用循环结构#include"stdio.h"voidmain(){ intmonth,costofgas,sum=0;/*month月份,costofgas煤气费,sum总金额*/ printf("请输入1月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入2月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入3月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入4月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入5月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入6月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入7月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入8月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入9月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入10月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入11月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("请输入12月份煤气费用:"); scanf("%d",&costofgas); sum=sum+costofgas; printf("改住户一年的煤气总费用是%d",sum);} 2.求1+1/2+1/3+。。。+1/11的和。3.求200到300之间的奇数和。课题任务4.3固定时间内车辆电池状态实时监测(dowhile循环)课型讲练授课班级授课时数2教学目标1.灵活运用关系与逻辑运算符,正确描述循环条件;2.掌握do-while语句的格式及灵活运用;3.理解while语句和do-while语句的区别。教学重点1.do-while语句的具体应用及与while语句的相互转换。2.for语句的结构及与当型、直到型循环的转换。教学难点使用do-while语句/for语句对具体问题的算法描述。三种循环语句的具体应用。学情分析学生对循环结构的含义不是很明了,因而重点是语法知识的理解掌握(如do-while语句/for语句的简单运用),掌握较好的学生逐步过渡到良好的编程习惯及编程规范的培养。教学效果教后记任务4.3固定时间内车辆电池状态实时监测(dowhile循环)4.3.1任务目标某电池需要充电,当电池充电时间少于8小时时,显示充电多少小时,继续充,当8小时显示充满,请停止充电。运行截图参考任务4.2任务目标的运行截图,如图4-2-1所示。4.3.2知识储备do-while循环一般也是不确定循环次数时使用,和while循环,for循环最大的区别是它是先执行再判断,一般至少执行循环体一次。1.do-while语句的一般形式为:do{循环体语句;}while(表达式);dowhile语句的流程如图4-3-1所示,(a)是流程图,(b)是N-S图图4-3-1do-while循环流程图注意:while(表达式);后面的分号“;”不能丢掉。do-while循环一般四要素的位置为初值do{循环体语句;步长增量}while(判断条件);2.示例一张厚度0.5mm的面积足够大的纸,将它不断对折,问对折多少次后,其厚度可达到珠峰的高度(8848M)?#include"stdio.h"voidmain(){floath;intcount;h=0.5/1000;count=0;while(h<=8848){h=h*2;count=count+1;}printf(“一个要折叠%d次”,count);}4.3.3典型案例典型案例1:用do-while循环显示车辆一天24小时电池状态,运行截图参考任务4.2典型案例1运行截图,如图4-2-3所示:分析过程:参考任务4.2典型案例1分析过程。算法分析:1.定义变量count2.根据上述分析可得do-while四要素的位置count=1do{输出第*小时,正常count++}while(count<=24);典型案例1流程图如图4-3-1所示图4-SEQ图4-\*ARABIC3-1典型案例1流程图程序代码:#include"stdio.h"voidmain(){intcount=0;do{ printf("第%d个小时,正常\n",i);count++;}while(count<=24);}典型案例2:某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会加50元,一个驾驶员去年12月份的工资为3000元,这一年都开车都没有出事故,则这名驾驶员第12月的工资为多少,本年一共领取了多少工资?(用do-while显示)任务分析:参考任务4.2典型案例2分析过程。算法分析:1.定义变量2.根据do-while循环格式初值do{循环体步长增量}while(判断条件)输出第12月份工资和一年的总工资流程图:典型案例2流程图如图4-3-2所示图4-3-2典型案例2流程图程序代码:#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum_salary=0;do{ salary=salary+50; sum_salary=sum_salary+salary; month++;}while(month<=12);printf("这名驾驶员12月份的工资为:%d\n",salary);printf("这名驾驶员一共领取工资为:%d",sum_salary);}典型案例3:某集团对于驾驶员的工资是根据是否出现交通事故而定,如果不出事故,驾驶员下一月的工资会增加上月工资的10%,一个驾驶员1月份的工资为3000元,这一年都开车都没有出事故,则这名驾驶员第12月的工资为多少,本年一共领取了多少工资?(用do-while显示)分析过程:参考任务4.1典型案例3分析过程。算法分析:1.定义变量月份,工资,工资总和2.根据上述分析可得do-while四要素的位置intsalary=3000;intsum=0;intmonth=1;do{salary=salary+(salary*0.1); sum=sum+salary;month++;}while(month<=12);典型案例3流程图如图4-3-3所示图4-SEQ图4-\*ARABIC3-3典型案例3流程图#include"stdio.h"voidmain(){intmonth=1;intsalary=3000;intsum=0;do{salary=salary+(salary*0.1); sum=sum+salary;month++;}while(month<=12);printf("这名驾驶员12月份的工资为:%d\n",salary);printf("这名驾驶员一共领取工资为:%d",sum);}典型案例4:已知汽车的电池随着使用年限的增加电池的容量会下降,假设开始电池的容量为1,每年下降10%,当电池的容量低于0.5时,此电池需要更换,求电池的使用年限?(用do-while显示)任务分析:参考任务4.2典型案例4任务分析。算法分析:1.定义变量2.根据do-while循环格式Battery_capacity=1;Battery_life=0;do{Battery_capacity=Battery_capacity*0.9Battery_life++}while(Battery_capacity>=0.5)输出电池年限流程图:典型案例4流程图如图4-3-4所示图4-3-4典型案例4流程图程序代码:#include"stdio.h"voidmain(){doubleBattery_capacity=1;intBattery_life=0;do{ Battery_capacity=Battery_capacity*0.9; Battery_life++;}while(Battery_capacity>=0.5);printf("电池的使用年限为:%d",Battery_life);}典型案例5:某新能源大客车集团需要招收一名驾驶员,要求是驾驶员必须驾照为A级并且3年内没有出现任何交通事故,从键盘输入驾驶员的等级和驾驶安全年限,当不满足要求时,显示条件不满足,请继续招聘,请输入应聘驾驶员的驾照等级和安全年限。当满足条件时,显示应聘条件合格,招聘结束。(do-while显示)任务分析:参考任务4.2典型案例5任务分析算法分析:1.定义变量驾驶员的等级,驾驶员的安全年限。2.考虑四要素不足,但是有明确的停止条件,采用死循环格式do{输入驾照类型输入安全年限if(type=='A'&&years>=3){printf("应聘条件合格,招聘结束"); break;} elseprintf("应聘条件不合格,请继续招聘\n");}}while(1);流程图:典型案例5流程图如图4-3-5所示图4-3-5典型案例5流程图程序代码:#include"stdio.h"voidmain(){chartype;intyears;do{ printf("请从键盘输入驾驶员的等级:");scanf("%c",&type);printf("请从键盘输入驾驶员的安全年限:");scanf("%d",&years);if(type=='A'&&years>=3){ printf("应聘条件合格,招聘结束\n"); break;}}while(1);}4.3.4任务分析与实践算法分析:1.循环7次确定初值、判断条件、步长增量2.循环体:充电%d小时,继续充3.充满,请停止充电有条件的显示一次流程图:任务分析流程图如图4-3-6所示图4-3-6任务分析流程图程序代码:#include"stdio.h"voidmain(){inti=1;do{ printf("充电%d个小时,请继续充电\n",times); }while(i<=8);printf("充满,请停止充电");}4.3.4动手练习1.使用do-while语句计算1+3+5+7+。。。。+101的和。2.使用do-while语句计算1+2+3+。。。+n的和,其中n的值从键盘输入。3.使用do-while语句计算1+1/3+1/5+1/7+….+1/21的和。课题任务4.4固定时间内车辆电池故障数判别(循环+选择)课型讲练授课班级授课时数2教学目标1.灵活运用关系与逻辑运算符,正确描述循环条件;2.掌握循环语句的格式及灵活运用;3.掌握循环中带有选择结构教学重点循环中带有选择的灵活应用教学难点循环中带有选择的灵活应用学情分析三种循环结构已经基本掌握,但是灵活应用还有很大一段距离。掌握较好的学生逐步过渡到良好的编程习惯及编程规范的培养。教学效果教后记任务4.4固定时间内车辆电池故障数判别(循环+选择)4.4.1任务目标某新能源汽车电池当使用1-3小时时,显示车辆使用小时,电量充足,请继续行驶,当使用4-7小时时,显示电量正常,请继续行驶,当行驶7-8小时时,显示电池电量不足,请尽快充电。任务目标运行截图如图4-4-1所示。图4-4-1任务目标运行截图4.4.2知识储备1.break语句的一般形式为:break;其语句功能:break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环语句下面的一个语句。break在循环中其流程显示如图4-4-2所示。图4-4-2break在循环中其流程显示2.从键盘输入一个整数,判断此数是否为素数。#include<stdio.h>voidmain(){inti,m;printf("请输入一个整数:");scanf("%d",&m);for(i=2;i<m;i++)if(m%i==0)break;if(i<m)printf("%d不是素数\n",m);elseprintf("%d是素数\n",m);}4.4.3典型案例典型案例1:某车辆装载的货物箱数在100-200之间,数量满足对5求余为3,对6求余4,求货物的数量是多是。(参考变量quantity)分析过程:数据范围在100-200之间,可以确定初值,判断条件,步长增量循环体if对5求余为3,对6求余4,显示货物数量算法过程:1.定义变量quantity。2.有明确的范围考虑使用for循环。流程图:典型案例1流程图如图4-4-3所示图4-SEQ图4-\*ARABIC4-3典型案例1流程图程序代码#include"stdio.h"voidmain(){intquantity;for(quantity=100;quantity<=200;quantity++){ if(quantity%5==3&&quantity%6==4) printf("货物的数量可能为%d\n",quantity);}}典型案例1运行截图4-4-4如图所示图4-4-4典型案例1运行截图典型案例2:某居民家庭买了一部新能源汽车,此汽车可以行使的最高里程为280KM,假定它离单位的距离为180KM,每周六需要出去游玩距离为50KM,当电池行驶到250以上时,需要充电一次充满,假设周一到周五需要充电时在单位充电,显示3月份充电的次数。(变量:最高里程,单位距离,游玩距离,充电次数)(1号为周一)分析过程1.使用时间为3月份1-31号,可以确定循环的三要素,初值,判断条件,步长增量2.循环体分情况考虑当周一到周五时如果电池可以行驶的距离<30,那么充电,统计次数行驶距离-20.当周六时如果电池可以行驶的距离<100,那么充电,统计次数行驶距离-100.3.输出充电次数流程图:典型案例2流程图如图4-4-5所示图4-SEQ图4-\*ARABIC4-5典型案例2流程图程序代码:#include"stdio.h"intmain(){intmax=280,distance1=10,distance2=50,count=0,day;//最高里程max,离单位的距离为distance1,游玩距离distance2,充电次数chargefor(day=1;day<=31;day++){if(day%7!=0&&day%7!=6){ if(max<30) { printf("%d号需要充电\n",day); count++; max=280; } max=max-(distance1*2);}if(day%7==6){ if(max<100) { printf("%d号需要充电\n",day); count++; max=280; } max=max-(distance2)*2; }}printf("共充电%d次\n",count);}典型案例2运行截图如图4-4-6所示:图4-4-6典型案例2运行截图4.4.4任务分析与实践算法分析:根据范围1-8可以确定三要素循环体分析当1<=i<=3时,显示请继续使用当4<=i<=6时,显示正常当7<=i<=8时,显示请尽快充电流程图:任务目标流程图如4-4-7所示图4-4-7任务目标流程图程序代码:#include"stdio.h"voidmain(){inti;for(i=1;i<=8;i++)if(i<=3)printf("车辆已经使用%d小时,请继续使用\n",i);elseif(i<=6)printf("车辆已经使用%d小时,正常\n",i);elseif(i<=8)printf("车辆已经使用%d小时,请尽快充电\n",i);}4.4.5动手练习1.输出100以内能被3整除且个位数为6的所有整数。2.编程计算200至300之间的偶数和,并将和打印输出。3.编程输出1000以内所有“水仙花数”:所谓水仙花数是指一个三位十进制数,该数的各位数字立方之和,等于该数本身。(举例153)课题任务4.5新能源多种汽车一年销售数据显示(循环嵌套)课型讲练授课班级授课时数2教学目标掌握双循环程序的结构,学会双重循环的使用教学重点双重循环的结构教学难点辨别什么时候使用单循环、什么时候使用双循环学情分析循环的三种方式已经学过,对于双重循环是个新的知识点,同学们不容易把握重难点。教学效果教后记任务4.5新能源多种汽车一年销售数据显示(循环嵌套)4.5.1任务目标已知某个集团车辆停放位置是个三角形,运行结果如图4-5-1所示:图4-5-1任务目标运行截图4.5.2知识储备1.一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。三种循环(for循环、while循环、dowhile循环)可以互相嵌套。以下是循环嵌套几种常见的形式:(1)while()(4)while(){…{…while()do{…}{…}}while();…}(2)do(5)for(;;){…{…dowhile(){…}{…}while();…}}while();(3)for(;;)

温馨提示

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

评论

0/150

提交评论