VB 入门记录(一)
一、Visual Basic 界面简介
-
打开题目进入界面是这个样子的
图一
-
我们的题目信息在这里
图二
-
然后当你双击那个产生按钮的时候
图三
OK,这个时候我们需要用到的窗口界面就基本已经呈现出来了。
工程
在图的右上角那边有个工程的地方就是包含我们整个文件的内容,我们称他为一个工程(project)。我们只要理解他为一个程序一个工程就可以了。
窗体
而在工程下面有一个叫窗体文件夹的文件夹,里面有一个文件叫 “Form1” 双击之后就会出现,图二中的界面,这个就是我们设计的窗口,用户可以看到的界面。这时候你可以点击上方有一个“三角形” 进行运行,或者按快捷键F5运行。得到如下界面:
比较图二:
可以发现,之前我们所点击的窗体就是程序运行后呈现给我们的样子。
那么我们怎么去设计这个界面呢?
这就要引出一个概念:控件
控件
可以看到,在我们从打开软件到现在左边一直有这个框框,这个框框里面有很多的图标,这些图标,每一个图标都代表一个控件,比如有:按钮,标签,文本框,图片等
添加控件:
-
第一步:在左边的控件框里面选择你想要的控件,点击
-
第二步,在你的窗体里也就是刚才展示的那个界面里,点击,然后想要多大拉多大放开就可以了。
-
比如这样:我们为刚才的窗口添加了一个名字为Command3的按钮
但是这个按钮是不是很丑,而且我们也不能直观的看到这个按钮能干嘛。那么我们要怎么去修改他呢?这个时候就要引入一个新的概念:属性
属性
每一个东西都有它的属性,比如:足球
它的属性有:形状、颜色、功能、品牌等等
所以我们的控件也不例外,让我们来看看我们新建的这个按钮有什么属性
点击你想了解的控件,这时候一直出现在我们右下角的框框就会显示出我们想要的信息:
里面有很多的属性,我们可以根据我们的需要修改我们的属性。我们可以看到第一个属性是名称,这时我们就会想到这个名称会不会就是按钮显示的文字,因为内容确实是一样的。可惜不是的哦。
这个名称指的是我们这个控件的标识符:就是我们可能创建多个按钮,但是我们怎么去区分他呢,就要给他取个名字。
这时候我们看到下面有一个属性叫Caption的内容也是跟按钮所显示的内容一致,那么肯定就是他了。我们可以点击修改他的值
这时候按钮就显示我们想要看到的内容了。
但是,你看这个按钮说求求我们去点击他,但是点击他干嘛呢?我们不会去莫名其妙的点击他。点击他会发生什么吗?这时候我们作为程序的制作者,我们拥有很大的能量,可以去随意的设置点击之后会发生什么。但肯定不会是地球毁灭。
接下来让我们去设置他的功能,我们要先了解一个概念:事件
事件
这时候你肯定会疑惑,不是说让我们学习编程吗,怎么从头到尾讲了这么多,我连代码都没看到。程序员不应该就是在电脑面前噼里啪啦的打代码吗??
别急,好戏马上就来了。既然这个按钮让我们点击他。我们就先试着双击一下他:
哇呜,这些乱七八糟的英文是什么,看到上面的(Code)了没,就是代码了
不要怕,刚接触编程的人,肯定头都大了。我们先不管他,我们看到下面有我们熟悉的中文,按钮3
我们就只关注这个就行了,上面那些,看不懂就不看了。因为这个例子是二级题目里面选的,所以会有这些,如果自己创建的话就不会有那么多代码了。
private Sub 按钮_Click()End Sub
我们解释一下上面代码的意思:
按钮_Click : 表示的是这个我们想要完成的这个功能的名称
private: 表示的是一个权限的意思,这个按钮他说他是有尊严的他有他的功能但是不是谁都能用的
Sub: 表示的是实现这个功能的过程,我们要在下面两个Sub之间填写如何实现这个功能
End: 表示Sub 过程结束的意思
然后我们要做的事情就是在Sub 之间编写我们要实现的功能。这些功能需要用代码实现。
我们熟悉一下控件的用法,创建一个标签,内容显示为:helloword!因为学编程有一个传统就是每学习一门语言的第一个程序就是编写输出helloword!
那我们就实现一个点击按钮,改变标签内容的功能吧!
private Sub 按钮_Click()Label1.caption = "好吧我就勉为其难点你一下"
End Sub
我们编写这句代码进去
然后点击运行试一下
然后点击按钮
OK,我们的第一个小程序已经完成了,我们也编写了我们的第一行代码。
这时候要提一下“事件”的概念:在生活中小明跟小东打架了是一个事件,小红生病了小明去看她,是一个事件。那我们用鼠标点击一个按钮是不是也叫一个事件,那我们用鼠标双击是不是又是另一个事件。所以我们刚才编写的程序是在我们用鼠标单击了一下按钮这个事件发生后所实现的功能。(按钮只有单击没有双击的功能)
要进一步了解事件,我们可能需要熟悉一下刚才我们编写程序也就是我们写第一行代码的地方
左上角有一个可选框,里面是我们这个程序里面所有的组件,刚才我们选中的是按钮3,所以是对按钮3进行编程,我们可以选中别的,对别的组件进行操作。这边不展示。
右上角也有一个可选框。里面是显示当前组件可以编写的事件,我们刚才是完成了对单击(Click)事件的编写
在你点击一个想要编写的时间之后在代码界面就会出现一个关于这个事件的过程给你编写如
有些事件是比较复杂的,还带有“参数”。
总结
这个时候对VB的编程方式有了一定模糊的了解,我们总结一下。
编写一个程序的基本过程:
- 创建一个窗口
- 为这个窗口添加我们想要的控件
- 为这些控件设置属性
- 为这些控件编写事件(功能)
- 运行完成
重要的语法
变量
定义变量的格式:
Dim | Private | Static | Public 变量名 As 数据类型
解释一下
Dim | Private | Static | Public : 就是我之前所说的权限的意思。你定义的东西,你可以为她设置权限,看看谁可以用,谁不能用。这边的谁不是指某个人什么的,是指一个范围。在那个范围内可以用这个变量,出了这个范围就不用。主要用Dim 就可以了。static 比较特殊,用不到不解释。
As 数据类型 :这个是可选项,你可以为这个变量设置数据类型,比如:Integer(整型),Double(双精度浮点型)等等。如果你不设置的话他会设置会“变体类型“。这里的变体类型我的理解是会根据情况设置他的类型。相当于一个什么都能装的盒子,而定义了类型的变量就相当于只能装特定东西的盒子。这个万能盒子好用是好用不过容易出错。
详细的可以看书P43
例如:
Dim num As integer
运算符
算术运算符和算术表达是就相当于数学上的加减乘数,求模什么的容易理解。也很重要,很多编程题都是考数学题。需要掌握。书本P46
关系运算符和字符串表达式,也是很重要的,跟数学上的大于、小于、等于没什么区别,如果对比的结果是正确的返回true 如果是错误的返回false。经常用在if else 语句上面。就是判断的时候经常会用到P47
逻辑运算符:主要掌握 not(非),and(和),or(或)其他几个在书本P48
not:就是例如结果本来为真 not之后就会假,反之
例如:not(5>3) : false
and:就是要同时为真才为真
例如:(5>3) and (3>5) :flase
(5>3) and (6>3) :true
or:就是只要有一个为真就为真
例如:(5>3) and (3>5) :true
书本上有表
控制结构(★)
顺序结构
你的代码编写:写在前面的先运行,写在后面的,后运行。就是按顺序运行。
选择结构
判断语句(单行):if 条件 then 语句块1 [else 语句块2]
例如:if x>y then print x else print y
IF 后面的语句就是条件框 true:执行then后面的语句
flase :执行else 后面的语句
翻译一下:if:如果 else:否则
判断语句(块结构):比上面的单行语句常用,也更好理解
第一种:单纯一个是或者否
if 条件1 then语句块1
else 语句块2
第二种:嵌套
if 条件1 then语句块1
else if 条件2 then语句块2else if 条件3 then语句块3....else语句块n
end if
例如:a 表示我们获得的分数
if a<60 thenprint "不及格"
else if a<80 thenprint "及格"else if a<100 thenprint "优秀"else print "满分"end if
选择语句
select case
Selcet case 测试表达式
case 表达式1语句
case 表达式2语句
case 表达式3语句
case else语句
end select
这个的意思就是,先计算测试表达式的值,然后用这个值去跟case 后面的值进行匹配,如果匹配成功就执行下面的语句,如果上面的case都不成功就执行case else下面的语句,然后结束
例子:
dim a as integer
a = 2
select case a
case 1print "1"
case 2print "2"
case elseprint "没有"
end select
这个结果会输出一个数字2,因为a = 2 与 case 后面的2 相匹配,所以执行下面的语句。
循环结构(★)
For - Next 循环 P84
循环就是重复做同一件事情,比如我们要计算1+2+3+4+5,这个非常的简单,我们口算就可以算出来,但是如果1+100呢,这些人工算不来,就得需要电脑来做。
我们可以定义一个变量 sum 用他来存储我们的结果,定一个变量a 作为相加的数。我们将变量sum理解为一个装糖果的盒子,将a理解成每次放进去糖果的数量。刚开始里面是没有糖果的所以要赋值为0,后来,我们第一次放1个,第二次放2个这么放,来计算最后盒子里面有多少个糖果。
第一次,我们盒子里面没有糖果所以就是0+1个糖果放进去,现在盒子里面有1个糖果
第二次,盒子里面有1个糖果,再放进去两个 就是1+2,有3个糖果
第三次,盒子里面有3个糖果,放3个进去就是3+3,有6个
以此类推,我们每放进一次就是重复的把前面的再加上我们现在放进去的。
这种重复的动作可以用循环解决。我们可以知道,盒子里面的糖果是sum 放进的糖果是 a
每次的动作都是sum + a 得出的结果再放进去盒子,结果就是sum 可以列出式子 sum = sum + a
但是每次放进的糖果是不一样也就是每次的a都不一样,每次都是比前面的的数量多1,这时候for循环就派上用场了
for a = 1 to 5 就是第一次放进去的数量是1个但是他会放一直放,直到他一次性放进去5个
第一次: a = 1 sum = 1
第二次: a = 2 sum = 3
。。。
第五次: a = 5 sum = 15
a 从 a=0 到 a = 5 已经满足了for循环的条件退出循环
for a = 3 to 10 就是第一次放3个,他每次会比前一次+1个 放到一次放10个就停止
for a = 1 to 10 2 这个的意思比较特别,他第一次放1个,每次会比前一次多放两个,直到放到一次性放进去十个或者超出去为止
总结:
for start to end
语句
next start
定义一个数,start 每次会 +1 加到end或者超过end的值就停止,每+1一次就会执行 “语句”
语句就是每次都要做的动作
'例子1: 求 1加到5'
dim a,sum
sum = 0
for a = 1 to 5sum = sum + a
next a'例子2:求5! '
dim a,sum
sum = 1
for a = 1 to 5sum = sum * a
next a'例子3:输出5次你好'
dim a
for a = 1 to 5print "你好"
next a
循环我感觉学好For循环就够了,就可以解决很多问题了,如果你时间不够的话。
多重循环
'打印矩阵'
dim row ,col
for row = 1 to 5for col = 1 to 5print "*"next colprint
next row'打印结果:'
*****
*****
*****
*****
*****
这个的意思是 row 指的是行数,col指的是列数
这个的意思可以理解为,我们要做五次同样的事情,但是再每做一次的事情里面又重复做五次。
两个循环就相当于做了25次的事情。
这个比较难,多理解!
数组
数组:比如一个班有50个学生,我们要保存他们的身高,要怎么保存呢,我们之前有学过用变量的方法去存储一个数据,但是50个学生我们要定义50个变量吗,那会很繁琐,更别说如果100,1000个了。
所以我们就有了数组的概念,比如我们身高都是用数字表示,我们就可以创建50个数字大小的小组存放这50个数字。创建的方式:dim arry(50) as integer
这样就相当于创建了50个变量,是不是特别的便捷。但是怎么对这50个变量进行赋值呢
arry(0) = 165
这样就为这个数组中的第一个元素赋值了。同理
arry(1) = 160
arry(2) = 170
修改也是同理,arry(数字) 就相当于一个变量,可以进行任何变量之间的操作。
看这样赋值是不是也有点重复的意思,那么我们就可以借用循环来为我们的数组进行赋值
dim i
dim arry(50) as integer
for i = 0 to 49arry(i) = i
next i
这样就为arry(0) 赋值为 0
arry(1) 赋值为 1
...
多维数组
这时候我们可以把一维数组理解为一排座位,每个元素相当于一个座位
把二维数组相当与多排的座位,一个矩阵,
应用
题1:
有两个要求,要实现计算按钮跟保存按钮
先打开源文件看看界面:
有一个输入框,计算按钮,显示框,以及保存按钮
第一个:为我们的计算按钮添加功能
-
单击计算按钮,先查看这个按钮的属性
查看名称,我们要知道这个计算按钮叫什么,等会添加功能的时候才知道对那个按钮进行添加
-
双击计算按钮,进入编程
先检查我们要编写的组件以及事件没有错
-
找到对应的过程函数进行编写
由题目可以知道,我们要完成数学题1+2+3+…+N
-
首先我们要先获取N的值,N是由我们输入得到的,在前面的输入文本框里面
-
我们先定义一个变量N ,然后让他等于我们输入的值 N = Text1.Text
-
Text1.text :获取文本框里面的内容
-
计算,在上面的for循环有讲过
-
然后我们要将得到的值用label2显示出来,所以我们要将它的属性caption 修改为我们所得到的结果sum
-
Label2.Caption = sum
第一个功能已经实现了
第二个功能是将结果保存到文件
- 同样双击保存按钮,为他添加功能
-
代码
-
结果
我们要借助Open 函数打开我们的文件 第一步把我们的要保存的文件地址还有文件名称填上去,第二步设置我们要做的是,是要输入,还是输出这边是输出:for output 第三步:为我们打开的文件设置一个编号,我们设置为1。
接下来我们要将值传进我们的文件里面去,用print函数,print #1,label2.caption 的意思是,将label2.capation的内容输出到 #1 一号文件里面去。
最后close #1 关闭一号文件。这题就解决了
例题二:
第一步先显示年份,为显示年份的按钮添加功能:这个设计到了列表,这时候需要用到函数AddItem()这些特别控件特定的函数在介绍控件那边有说明,为其添加表项。然后配合for循环完成操作
第二步:判断是不是闰年:四年一闰,百年不闰,四百年再闰
先获取list列表中的年份 year = lIst1.text
然后用if进行判断,之前学的逻辑运算符,关系运算符就用上了,然后根据口诀,就可以判断这个年是不是闰年,然后将要输出得文字赋值给str。
最后在右边的文本框中显示结果:Text1.text = text1.text & year & str & vbCrlf
因为我们要保存之前判断过得年份,所以每次都要加上之前的内容 text1.text然后用连接字符串符号&连接年份,在连接vbcrlf 换行符
结果如下:
总结:
看了一下题目,编程题就为一些按钮添加一些功能,不过可能会涉及到别的按钮,这时候你就需要调用别的按钮的一些数据,为你实现这个功能。
调用格式:要调用的控件名称.调用的属性或者方法
用 “.” 来调用
别控件特定的函数在介绍控件那边有说明,为其添加表项。然后配合for循环完成操作
[外链图片转存中…(img-srSG9dZt-1576950400418)]
第二步:判断是不是闰年:四年一闰,百年不闰,四百年再闰
[外链图片转存中…(img-A8O7auvY-1576950400418)]
先获取list列表中的年份 year = lIst1.text
然后用if进行判断,之前学的逻辑运算符,关系运算符就用上了,然后根据口诀,就可以判断这个年是不是闰年,然后将要输出得文字赋值给str。
最后在右边的文本框中显示结果:Text1.text = text1.text & year & str & vbCrlf
因为我们要保存之前判断过得年份,所以每次都要加上之前的内容 text1.text然后用连接字符串符号&连接年份,在连接vbcrlf 换行符
结果如下:
[外链图片转存中…(img-ugn7hliE-1576950400418)]
总结:
看了一下题目,编程题就为一些按钮添加一些功能,不过可能会涉及到别的按钮,这时候你就需要调用别的按钮的一些数据,为你实现这个功能。
调用格式:要调用的控件名称.调用的属性或者方法
用 “.” 来调用
VB是可视化编程主要是熟悉各个控件怎么使用!