VB程序设计实例

来源 :中学时代 | 被引量 : 0次 | 上传用户:chsmfzh
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  在初中《信息技术》(福建教育出版社,《信息技术》教材编写组编著)八年级上册中,其中第二单元“VB程序设计基础”介绍了VB的开发环境和有关基础知识,初步体验了顺序、分支和循环结构的程序设计,让学生深刻体会到了可视化程序设计的一般过程。下面介绍本人在平时教学过程中对VB程序设计的一些体会和做法。
  一、教材中有一个“电视歌手大奖赛评分”程序设计,题目是这样的:在电视歌手大奖赛中,经常有10个评委为参赛选手打分,分数为1到10分。选手的得分为去掉一个最高分和一个最低分后其余8个分数的平均值。请你编写一个程序,当用户点击“开始”按钮后,程序将提示输入各个评委的打分,输入一个并在列表框中显示一个打分,最后在列表框输出去掉的最高分、最低分以及最后得分。
  我们可以对教材中的“电视歌手大奖赛评分”程序设计进行拓展引伸,设计出比较智能多用途的程序。现介绍如下。
  1.程序界面设计
  新建一个标准exe工程,添加如表1所示的控件,并设置控件相应的属性。(见附图1)
  表1 “时钟的时针和分针重合的问题”程序用到的控件及其属性说明


  2.算法分析
  ①请输入这次大奖赛的满分分数(如10分或100分)以及评委的人数,赋值给系统的公共变量public_min和public_i。这里要求事先定义好这两个系统公共变量。
  系统公共变量的定义方法:单击“工程”菜单,选择“添加模块”命令,在“Module1”框中输入Public public_min As Single和 public_i As Single即可。
  ②输入各评委的评分并计算。如果输入的数值超过事先输入的满分的值,系统则提示:“出错啦,分数超出范围。”在这里用到了For …Next循环语句、输入函数InputBox(提示信息,标题,默认值,位置)和输出函数MsgBox“”。
  ③输出。去掉一个最高分和一个最低分后其余分数的平均分。
  3.编写事件过程
  由于在“大奖赛评分系统”程序中用户单击“请先输入满分和评委人数”按钮后,开始读入满分分数和评委人数,因此:
  ⑴在“Command1”的“Click”事件过程中程序代码如下:
  Private Sub Command1_Click()
  public_min = Val (InputBox("请输入本次大赛的满分分数", "输入满分分数"))
  public_i = Val (InputBox("请输入本次大赛的评委人数", "输入评委人数"))
  End Sub
  ⑵ 在“Command2”的“Click”事件过程中程序代码如下:
  Private Sub Command1_Click()
  Dim max As Single, min As Single, score As Single, sum As Single
  Dim i As Single
  List1.Clear ‘列表清空
  max = 0
  min = public_min
  sum = 0
  ii = public_i
  For i = 1 To ii
  ‘输入第i个评委的打分
  score = Val (InputBox("请输入第" & i & "?个评委的打分", "输入分数"))
  ‘将第i个评委的分数加入列表
  If score <= public_min Then
  List1.AddItem ("评委" & i & "£o " & score)
  If score > max Then max = score
  If score < min Then min = score
  sum = sum + score
  Else
  MsgBox "出錯啦,分数超出范围"
  Exit Sub
  End If
  Next i
  将“去掉一个最高分:”与max的值连接成字符串添加到List列表框中
  List1.AddItem ("去掉一个最高分:o" & max)
  List1.AddItem ("去掉一个最低分:o" & min)
  List1.AddItem ("选手最后得分o" & (sum - max - min) /(ii - 2))
  End Sub
  ⑶在“Command3”的“Click”事件过程中程序代码如下:
  Private Sub Command3_Click()
  End
  End Sub
  二、下面针对教材的第103页和第107页的“创新活动”中的问题给出比较详细的程序编写过程。
  ㈠教材第103页“创新活动”的问题:在12小时制的时间中,在钟表正常走动的时候,有多少个时针和分针重合的位置?它们分别表示什么时刻(精确到秒即可)?
  请编写一个界面如附图2所示的“时钟的时针和分针重合的问题”程序,单击“开始计算”按钮,程序计算并显示出答案,单击“退出”按钮,结束程序运行。
  1.程序界面设计
  新建一个标准exe工程,添加如表2所示的控件,并设置控件相应的属性。   表2 “时钟的时针和分针重合的问题”程序用到的控件及其属性说明


  2.编写事件过程
  由于在“时钟的时针和分针重合的问题”程序中用户单击“开始”按钮后就在List框中显示出时针和分针重合的位置时刻,因此我们在“开始”按钮处编写Click事件过程。算法如下:
  ①minute = 0,second = 0, hour = 1
  ②For i = 1 To 11 Step1依次计算1到11时的时针和分针重合的时刻,并进行处理:当秒数大于或等于60时要进到分;当分大于或等于60时要进到小时。
  If second >= 60 Then
  minute = Int(second / 60) + minute
  second = second - Int(second / 60) * 60
  End If
  If minute >= 5 Then
  hour = Int(minute / 5) + hour
  minute = minute + 5 * i - 60
  Else
  minute = minute + 5 * i
  End If
  输出计算后的时、分、秒
  Next i
  ⑴ Command1的Click事件过程中程序代码如下:Private Sub Command1_Click()
  Dim hour As Single, time As Single, minute As Single, second As Single
  Dim i As Integer
  List1.Clear
  minute = 0
  second = 0
  time = 0
  For i = 1 To 11
  hour = 1
  hour = hour * i
  time = 2.73 * i / 6
  minute = Int(time)
  second = Int((time - Int(time)) * 60)
  If second >= 60 Then 把大于或等于60的秒转化为分
  minute = Int(second / 60) + minute
  second = second - Int(second / 60) * 60
  End If
  If minute >= 5 Then 把大于或等于60的分转化为时
  hour = Int(minute / 5) + hour
  minute = minute + 5 * i - 60
  Else
  minute = minute + 5 * i
  End If
  List1.AddItem (hour & “时” & minute & “分” & second & “秒”)
  Next i
  End Sub
  ⑵ 对于“结束”按钮,我們只要在它的Click事件过程中写下一个语句“end”即可。
  对于“哪些时刻时针与分针成平角或直角”等问题,做法类似,这里就不再赘述。
  ㈡教材第107页“创新活动”的第一个问题:编写一个猜数游戏程序,程序界面如附图3所示。单击“开始”按钮后,电脑随机产生一个1到100之间的整数,然后程序提示你猜一个数,如果你输入的数太大,则程序会提示你“太大了!”,如果你输入的数太小,程序会提示你“太小了!”,直到你猜中为止。最后程序还会报告你一共猜了几次。
  1.程序界面设计。新建一个标准exe工程,添加如表3所示的控件,并设置控件相应的属性。


  2.编写事件过程。由于在“猜数游戏”程序中用户单击“开始”按钮后就会弹出一个框,要求你输入所猜的数,输入的数会在List1框中显示出来,并提示是“太大了!”或“太小了!”,因此我们在“开始”按钮处编写Click事件过程。算法如下:
  ①电脑随机产生一个1到100之间的整数
  ②程序提示你输入所猜的数,并显示出所猜的数是“太大了!”或“太小了!”,直到你猜中为止
  这里采用:Do Until <表达式>
  <语句组>
  Loop的循环语句。
  ③最后统计输出你一共猜了几次
  ⑴ Command1的Click事件过程中程序代码如下:
  Private Sub Command1_Click()
  Dim a As Integer, b As Integer, i As Integer,RandNum As Integer, Num As Integer
  List1.Clear
  i = 1
  a = 1
  b = 100
  Randomize ‘随机数生成初始化
  RandNum = Int((b - a + 1) * Rnd + a) ‘生成一个1到100之间的随机数
  Num = Val (InputBox("请输入你猜的数", "请输入一个数整数"))
  Do Until Num = RandNum
  If Num > RandNum Then
  List1.AddItem ("您猜:" & Num & " 太大了!")
  End If
  If Num < RandNum Then
  List1.AddItem ("您猜:" & Num & " 太小了!")
  End If
  Num = Val (InputBox ("请输入你猜的数", "输入一个数整数"))
  i = i + 1
  Loop
  List1.AddItem ("您猜:" & Num & "恭喜您猜中了!"& "您猜了" & i & "次!")
  End Sub
  ⑵ 对于“结束”按钮,我们只要在它的Click事件过程中写下一个语句“end”即可。
其他文献
导数概念的引入在传统的中学数学中注入了新的生机和活力,为中学数学的问题(如函数问题、不等式问题、解析几何问题等等)的学习和研究提供了新的视角、新的方法、新的途径.我
写好这篇作文,同学们要抓住“童年”“有趣”“难忘”几个关键词。“童年”划定了事情发生的时间,“有趣”和“难忘”划定了选材范围。在你的记忆中,“有趣”和“难忘”的事
国务院日前下发文件,批转了公安部关于解决当前户口管理工作中几个突出问题的意见。文件指出,要重点解决以下四个问题:一是实行婴儿落户随父随母自愿的政策。对以往出生并要
请下载后查看,本文暂不支持在线获取查看简介。 Please download to view, this article does not support online access to view profile.
期刊
20 0 0年 1 1月 7— 9日“纪念叶适诞辰 850周年暨永嘉学派国际学术研讨会”在浙江省温州市国际大酒店举行。 80余名中外专家学者参加了会议 ,大会收到学术论文 6 0余篇。与
1958年10月,《毛泽东同志论帝国主义和一切反动派都是纸老虎》的重要文献发表了。在同帝国主义及其走狗进行斗争的过程中,毛泽东同志一再教导我们,必须正确估计革命力量和反
在小学语文教学中联系教学内容,开展经典诵读,可以使学生的心田承蒙古圣先贤思想智慧甘露的滋养,体悟修身、齐家、治国、平天下的道理,心怀感恩之心,孝亲尊师,诚信守法,使学
开创新时期工会劳动保护工作的新局面李永安一、工会劳动保护工作在改革和建设中发挥了重要作用──党的十四大以来,在邓小平同志建设有中国特色社会主义理论指导下,各级工会坚
我们过去的研究结果证实,布病机体特异CIC的含量显著高于献血员和疫区正常人,并与疾病状况相关,可能系疾病迁延不愈的原因之一。但不同种布氏菌CIC的变化规律及对机体影响程
“耶!暑假可以去常州恐龙园啰!”我高兴地喊道。  到了常州恐龙园,我们首先去看鹦鹉(yīng wǔ)表演。咦,鹦鹉会表演什么节目呢?带着疑问,我走进了表演场。只见一位姐姐抱着鹦鹉站在台上,她轻轻地一挥手,“唰”的一声,鹦鹉飞到钢丝上,双翅伸成“一”字形,双爪摆成竖着的“一”字形,开始一步步在钢丝上走了起来。  “加油!加油!你一定能行的!”场下的观众看到后欢呼起来。鹦鹉似乎听懂了大家的话,飞快地向
期刊