内容正文:
null
第12课
分支结构——公交车收费系统
教科版(云南)信息技术八年级下册
问题与任务:
小明想用VB编程模拟公交车收费系统,如图12-1所示,要求如下。
(1)每收费2元,可通过刷卡或投币付款。
(2)若刷卡成功则显示卡中余额,否则提示卡中余额不足并显示卡中剩余金额。
(3)若投币超过2元不设找赎,否则提示投入足够金额。
新课导入
一、分析公交车收费系统原理
1.公交车收费系统功能分析
公交车收费有刷卡和投币两种方式。刷卡收费时,如果卡中余额超过2元,就从卡中扣除本次车费并显示卡中余额否则提示刷卡失败并显示卡中余额。
试一试 用“如果……就……,否则……”描述公交车的投币收费功能。
新课讲解
2.刷卡收费原理分析
若用 Banlance表示卡中余额,则每扣一次费,就执行一次 Banlance-2的操作,并将相应结果保存在 Banlance中。对应的赋值语句就是: Banlance= Banlance-2。
设计计数器。请依照图12-2新建一个工程,添加一个 Command控件( caption属性值为0)。要求:每单击一次按钮,按钮的显示数字就加1。
练一练
二、设计公交车收费系统算法
1.分支结构
要让程序根据不同的情况执行不同的任务时,需要用到分支结构。VB中通常使用的分支结构是If语句,其格式为:
If条件Then
语句组1
[Else
语句组2]
End If
该语句的意思就是:如果条件成立,则执行语句组1;否则执行语句组2。对应的流程图如图12-3所示。
注意:(1)条件表达式中经常会用到比较运算,常用的比较运算符如下。
(2)复杂的条件需要用多个表达式才能表达。例如,0<x<2就要用x>0 And x<2表示。
2.收费系统算法流程图
根据前面的原理分析,刷卡收费对应的算法流程图如“图12-4刷卡收费算法流程图”所示。
请在框中画出投币收费的算法流程图。
练一练
三、 MsgBox函数
VB不仅可以通过 Label控件,还可以通过 Msg Box函数来显示结果。
该函数语法为: MsgBox(字符串)。其作用是弹出一个对话框,对话框中的内容就是字符串。
四、Val函数
试一试
(1)依照图12-5所示新建一个工程,添加两个Tex控件和一个 Command控件,并在 Command控件的 Click事件中输入下面的代码。
(2)在两个Text控件中,分别输入两组数据“11,12”“10,2”,点击比较,观察程序结果,思考原因是什么。
由于Text控件的Text属性值、 Label等控件的 Caption属性值都是字符类型,因此,它们的比较是从第一个字符开始,顺次向后直到出现不同的字符为止,然后以第一个不同的字符序号来确定。例如,“11”<“12”,“10”<“2”。
为了保证比较的结果符合数学规律,我们就必须通过Val函数将字符型数据转换为数值型数据,其语法格式为:Val(字符串)。
例如,Val(“12”)的结果就是整数12。
五、设计和调试公交车收费系统的程序
根据前面的原理分析和对应算法流程图,完整的公交车收费系统程序如图12-6所示。
小技巧 为了给乘客一个友好的提示,程序中使用了字符串运算符“&”,该运算符用于将两个表达式作为字符串连接。例如,刷卡前卡内余额为10元,第一次刷卡收费后,显示内容就是“卡中还余8元”。
试一试 利用所学的逐语句调试和变量监视,观察不同情况下程序的执行过程。
讨 论 程序中用变量 payment表示每次扣费金额,这样做的好处是什么?
小明准备为班级开发一个投票系统,如“图12-7 投票系统”所示,要求如下。
(1)点击“投票支持”按钮,对应的票数加1。
(2)当全班的51名同学投票完毕之后,统计出投票结果。
思考练习
拓展:在学校运动会上,李小白和杜小甫同学在争夺跳高比赛的冠军奖杯。现在需要利用VB程序,根据他们各自的跳高记录,, 对他们的成绩做一个排名, 分出冠军和亚军。编程任务落在了你的肩上。假设:李小白跳高160cm,杜小甫跳高163cm,则,杜小甫冠军,李小白亚军。两位选手的成绩由电脑输入。我们假设用户所输入的都是合法的整数。(包含程序运行界面的VB工程已经发送到学员的桌面。现在需要你对“裁判”按钮进行编程,完善程序的逻辑。)
这节课,我们知道了If语句的格式和执行过程,掌握了 MsgBox函数、Val函数的格式和作用,还有変量的概念、命名规则和定义方法等知识。学会了设计和调试公交车收费系统的程序。
课堂小结
分析公交车收费系统原理
设计公交车收费系统算法
MsgBox函数
Val函数
设计和调试公交车收费系统的程序
分支结构--公
交车收费系统
板书设计
课程结束
$$