内容正文:
2.5
制作电子储物柜
可视化编程应用基础——visual Basic (陈建军)
1
电子储物柜——视频
2
简易型储物柜
本节课将先介绍简易型储物柜的功能,具体如下:(图片链接源程序)
本课任务
存物
3
知识集中营
数组
随机函数Rnd
InputBox函数
4
InputBox函数
在程序运行过程中有时需要用户输入数据,程序再根据用户输入的数据来决定程序的执行,或者有时需要比较简单地临时要求用户输入一个数据,此时可以利用InputBox函数来实现,如:
格式:
a=InputBox(提示文字,[,标题,默认值])
说明:产生一个输入对话框,其中提示文字必须要有,后面两个参数可以省略。该函数返回一个字符型的值。如以上格式中输入的字符串会存储到变量a中。
5
随机函数Rnd
生活中到处充满随机现象,为了模拟现实生活中的随机现象,VB提供了一个自带的内部函数Rnd,用于产生0~1之间的正小数。(大于等于0,小于1)
格式:Rnd([参数])
返回:0~1之间的一个随机正小数。
注意:为了保证产生不同的随机数,通常需在rnd执行之前执行randomize语句。
如果想产生区间[m,n]之间的随机整数,则可以采用以下表达式
Int((n-m+1)*rnd)+m
如产生[2,10]之间的随机整数的表达式为:int(rnd*9)+2
int(x)函数是取不大于x的最大整数
6
任务1:界面设计(自主完成)
7
任务2、数组定义及赋值
设某学校高一有5个班级,如果要表示每个班级的学生数,可以定义5个变量gy1、gy2、gy3、gy4、gy5来分别表示。如果要表示高三(4)班56位学生的总分成绩,也可以定义56个变量s1、s2、s3、……、s56来表示。
如果想求得高一总的学生数,可以通过形如xs=gy1+gy2+gy3+gy4+gy5来实现,如果相求得高三(4)班学生的平均分或许仍可以通过以下语句来实现。 pjf=(s1+s2+s3+……+s56)/56
显然这种求平均分的语句已经比较冗长,这种存储、处理数据的方法极不方便。
假如这次期中考试的试卷批改过程中有误,须给全年级2012名学生加5分,那么该如何来模拟这个加分过程呢?
S1=s1+5
s2=s2+5
……
S2012=s2012+5
繁琐
不方便
难实现
为什么引入数组
8
数组概念
为了解决上述问题,程序设计语言中提供了数组这种变量类型,来存储具有相似特征的数据面,结合循环语句可以方便的处理、加工数据。假如全年级学生期中成绩用数组s表示,2012名学生成绩则用s(1)、s(2)、s(3)、……s(2012)来表示,这样2012个变量具有相同名字s,不同之处只是下标而已。(下标类似校内学号)。
从而给2012名学生成绩加5分的处理过程,可以用循环语句描述如下:
For i=1 to 2012
s(i)=s(i)+5
next
方便
直观
易于操作
9
数组定义
格式1:
Dim 数组名(下标开始 to 下标结束) as 类型
例1:dim s(1 to 56) as integer
定义了一个名为s的数组,下标为1~56,即有56个数组元素,分别是s(1)、s(2)、……ss(56),这56个数组元素都为整型,都能存放整型数据。
格式2:
Dim 数组名(下标结束) as 类型
说明:如果省略了下标开始,默认从0开始
例2:dim s(56) as integer
定义了一个名为s的数组,下标为0~56,数组元素个数为57,依次为s(0)、s(1)、s(2)、……s(56),均为整型。
10
数组使用
使用数组元素与简单的 变量在本质上是一样的,因此数组可以看做是n个简单变量的集合,其赋值格式为:
数组名(下标)=值
如:s(2000)=590
11
本任务中数组定义
Dim gzzt(1 To 16) As Boolean
柜子是否可用,true表示空柜,false表示被占用。
Dim gznr(1 To 16) As String
存放柜子里物品的名称
Dim gzmm(1 To 16) As Integer
存放柜子的密码
12
本任务中数组初始化
For i = 1 To 16
gzzt(i) = True ’初始为柜子都可用
gznr(i) = “” ’初始为柜子都为空
gzmm(i) = -1 ’-1表示无效的密码
Next
13
任务3:储物柜存物操作
1、判断是否有空的可用柜子;
2、如果没有,跳出“没有空柜”消息框;
3、如果有空柜子,随机生成一个1~1000之间的数字作为柜子密码,并以消息框形式提醒须记住;
4、产生密码后,弹出文本框用于输入