电子说
Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。
“Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序[2] 。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
(1) VB的语言特点
可视化开发环境:界面设计所见所得;面向对象程序设计:程序和数据封装作为一个对象,在工具箱里面的都是一个一个的类,比如commandbutton类,当你把它从工具箱拖出来已经,它就被实例化成了一个对象,名称叫command1,如果你拖了2个command,就是2个不同的对象;事件驱动编程:VB程序没有明显的入口和出口,都在等待用户或者系统或者代码触发某个事件,然后执行事件对应的任务
(2) VB的工作模式
设计模式,运行模式,中断模式;程序在运行模式是没有办法修改代码和设计界面窗口的。
(3) VB的文件类型
窗体文件frm;程序模块文件bas;类模块文件cls;工程文件vbp;工程组文件vbg;资源文件res;保存工程的时候应该同时保存工程文件vbp和窗体文件frm。
(4) VB的窗口
任何的窗口被关闭了找不到了,都应该在视图菜单下面来寻找,工具箱窗口,代码窗口,窗体布局窗口,立即窗口(可以在中断模式下查询程序运行对象值,ctrl+G打开立即窗口)
(1) 面向对象的基本概念
类:具有类似属性和方法的对象的抽象,比如大学;对象:类实例化就成为一个对象,每个对象都具有自己的属性和方法,比如西南财经大学天府学院。属性:对象的静态特征,最重要的属性是name,在VB里面对象的name是不能省略的,而且在程序运行的过程中是不能修改的;事件:人或者系统对对象的作用,对象是被动者,比如load,unload,timer;click等;方法:对象发出的行为,对手是主动者,比如move,show,hide等。
(2) VB的开发流程
第一步分析后画流程图
第二步界面设计
第三步编写代码
第四步测试运行
(1) VB书写代码的格式
VB代码中不区分字母的大小写。
同一行可以书写多条语句,语句间用冒号“:”分隔。
一条语句可以写在同一行,也可以写在多行。续行符号是一个空格加下划线“_”。
注释语句以Rem开头,也可以使用单引号“‘”。后者注释内容可直接出现在相关语句的后面。
VB6中新增了“块注释/取消块注释”:在代码模式下,右击工具栏,在弹出菜单里把“编辑”项选中„„
变量和常量的命名规则:有数字,字母,下划线组成;字母作首字符;不超过255个字符;不能以VB关键字和系统常量做名字
(2) VB的数据基本类型
字符串类型:
string 用“”双引号作为定界符
声明一个字符串变量,不规定串长:dim s as string
例: dim s as string
S=”中国”
Print len(s) „ 长度为4个字节
S=”abs”
Print len(s) „ 长度为3个字节
声明一个定长字符串,在后面加 *指定字符串的长度 dim s as string * 8
例:
Dim s as sting * 6
Dim a as integer
S=”12345678”
Print len(s) „ 长度为6个字节
a=len(s)
print len(a) „ 长度为2个字节,如果打印其他类型的长度,则为其数据类型
所占用的字节数
日期类型
用“”双引号或者# #井号作为定界符
例: dim a as date
A=#4/20/1999#
A=A-10
Print A „ #4/10/1999# 减去的是天数
对象类型
对象类型变量可以用来引用程序中各种对象,对象类型的使用分为声明,
赋值,代表三步,类似给控件取一个小名
例:
Dim a as commandbutton
Set a=command1
a.caption=”hello” „等价于command1.caption=”hello”
变体类型
变体型声明方式 dim c或者dim c as variant
例:
Dim a ,b as double „a是变体型
变体型在未进行变量赋值前是值是empty
变体型是数据类型根据赋值不同可以改变
例: Dim A
A=”88” „A是字符串 “88”
A=A+10 „A的值是98
(3) VB常量的声明
符号常量声明:关键字是const,必须在声明的时候进行初始化
符号常量声明分隐式声明和显式声明
例:
Const a as string=”123” 显式声明
Const a =true 隐式声明
(4) VB变量的声明
变量声明:关键字是dim,变量必须要定义,再使用
变量声明分隐式声明和显式声明
例:
Dim a as double
Dim a%,b#
(5) VB运算符
运算符分类
算术运算符:() ^ * / \ mod + -
关系运算符:《 》 = 《= 》= 《》
逻辑运算符:not and or xor eqv imp
运行符优先级
算术运算符》关系运算符》逻辑运算符
优先级的顺序:
由上至下对应由高到低,同一行的优先级相同,程序顺序执行。
算术运算符(优先级最高)
()
sin cos„
^
* / \
mod
+ -
关系运算符
》 》= 《 《= = 《》
逻辑运算符(优先级最低)
Not
And Or Xor Eqv Imp
运算符
除法/ \ mod :/ 是真正除法,返回商23/5=4.6
\ 是整除 23\5.8=3 23\5.2=4
Mod返回余数 23mod5.8=5 23mod5.2=3 1mod2=1
+号运算符:两边都是字符串做字符串连接 “1“+”2“=”12“
一边是字符串一边是数值,把字符串转换成数值再加 1+”2”=3
两边都是数值做数值加法 1+2=3
+号的优先级高于& “300”& “123”+200=“300323”
关系运算符:运算结果是true或者false 1《=2 为true
“a”《”b” 比较的是ASCII
“abc” 《“abd” 从首字符依次比较ASCII
逻辑运算符:not 取反
And 取幷 两个同时为true才为true
Or取或 有一个为true就为true
Xor异或 不同为true,相同为false
Eqv同或 相同为true, 不同为false
imp蕴含 true imp false 为false 其他都为true
(6) VB函数
数学运算函数
abs:取参数绝对值,如果变量未初始化,则为0 abs(-10)=10
int:取整,当为负数的时候,返回小于等于参数的第一个负整数int(-1.1)=-2
fix:取整,当为负数的时候,返回大于等于参数的第一个负整数fix(-1.1)=-1
exp:返回e的多少次方
log:返回参数的自然对数
Len:取字符串的长度,len(“abcdefg”)=7 len(“小白”)=4
Trim:去除字符串左右两边的空格
String:连续返回多少个字符串首字符 string(3,”abc”)=”aaa”
Lcase:大写字母变小写 lcase(“ABcd”)=”abcd”
Ucase:小写字母变大写 Ucase(“ABcd”)=”ABCD”
Left:返回字符串左边起多少个字符,如果个数大于长度全返回
left(“abcdef”,3)=”abc”
Right:返回字符串右边起多少个字符,如果个数大于长度全返回
right(“abcdef”,3)=”def”
mid:从中间某个位置返回指定长度的字符串
mid(“abcdef”,3,2)=”cd”
instr:返回指定字符串在另一字符串中出现的位置
instr(1,”abcdef”,”de”)=4 instr(4,“abcdef”,”cd”)=0
日期函数
类型转换函数
其他函数
Cstr:把数值转化成字符串
Val:把字符串转化成数值
Rnd:产生随机数
Int(Rnd()*90+10) 范围是10-99
Int(Rnd()*99+1) 范围是1 - 99
(1) inputbox函数
inputbox用于接收用户的键盘数据的输入,只接收一个数据输入
inputbox的语法格式:inputbox(“提示信息”,”标题”,”默认值”)
提示信息长度不能超过1024字节
对话框标题如果不写,默认为工程1,和““空标题不一样
Inputbox返回的数据类型是string,因此通常返回数值类型的时候需要加
val函数把字符串转换成数值
(2) msgbox函数
msgbox函数用于进行消息的提示,并且接受用户的反馈的单击按钮信息
msgbox的语法格式:
msgbox(“提示信息”,对话框按钮组合方式+图标+默认按钮,”标题”)
提示信息长度不能超过1024字节
对话框标题如果不写,默认为工程1,和““空标题不一样
Msgbox返回的数据类型是integer类型,即用户单击了消息框按钮后返回vbyes,vbno等VB常量,详细请参考书上对应的表格
(3) msgbox语句
msgbox语句和msgbox函数的相同之处都是给出一个消息提示
msgbox语句和msgbox函数的不同之处是语句没有返回值,即用户单击了消息框按钮后,也没有任何的信息返回
其他语法规则,包括对话框的组合方式都和msgbox函数是完全一样的
(4) print方法
print方法用于在form上或者在打印机上输出数据
print单独写是打印一个空行
print后面加;号是连续在一行输出
print后面加,号是以14个字符为一个输出区输出各表达式
tab(n)是绝对距离
spc(n)是相对距离
标签
类名叫label,实例化对象名字默认叫label1,即name属性
Caption:显示标签的文本内容,例如label1.caption=”欢迎vb”
Backstyle:设置标签透明效果,0为透明,1为不透明
文本框
类名叫textbox,实例化对象名字默认叫text1,即name属性
Text:用来显示或者获取文本框的内容,例如:text1.text=”12”显示12到
文本框,a=text1.text获取文本框输入的内容
Alignment:文本框的对齐方式
Enable:设置文本框是不是可用
Visible:设置文本框可见与否
Tooltiptext:设置鼠标放置上去后的提示信息
Passwordchar:输入或者显示密码的符号
Maxlength:设置输入字符的最大长度,为0可以输入任意长度
Change事件:文本框内容发生变化的时候就触发
命令按钮
类名叫commandbutton,实例化对象名默认叫command1,即name属性
Canel:设置按钮是否为当前窗体中默认取消按钮,ESC时触发
Default:设置按钮是否为当前窗体默认确定按钮,ENTER时触发
计时器
类名叫timer,实例化对象名默认叫timer,即name属性
Enable:设置文本框是不是可用
Interval:设置计时间隔,单位毫秒
图形按钮
类名叫pictureBox,实例化对象名默认叫picture1,即name属性
Picture:设置该属性装载图片,格式Picture1.picture=loadpicture(“URL”)
单选按钮
类名叫optionbutton,实例化对象名默认叫option1,即name属性
Caption:显示单选按钮的文本内容
Value:确定单选按钮是不是被选中,值为true和false
If option1.value=true then
Label1.caption=option1.caption
Elseif option2.value=true then
Label1.caption=option2.caption
End if
复选按钮
类名叫checkbox,实例化对象名默认叫check1,即name属性
Caption:显示复选按钮的文本内容
Value:确定复选按钮是不是被选中,值为0和1,2分别表示为未选中,
选中,不可以使用
If check1.value=1 then
Label1.caption=check1.caption
endif
If check2.value=1 then
Label1.caption=check2.caption
End if
滚动条
类名叫scrollBar,实例化对象名默认叫scroll1,即name属性
Max:滚动条的最大值
Min:滚动条的最小值
Smallchange:单击滚动条箭头时value的变化量
Largechange:单击滚动条空白时value的变化量
Value:滑动块所处的位置
Scroll事件:滑动块实时移动的时候一直触发
Change:单击空白,单击箭头,滑动块移动鼠标释放的时候触发一次
列表框
类名叫listbox,实例化对象名默认叫list1,即name属性
List:列表框第i-1项的内容,存放数据的地方,访问用下标list(1)
Listcount:表示列表框的列表项数
Listindex:选中项下表,例:被选中项内容:list1.list(list1.listindex)
Selected:下标表示项选中与没选中的状态
Additem:在列表框指定位置插入一行文本,例:插入到最后
List1.additem “aaaa” ,list1.listcount-1
Removeitem:删除列表项,例:删除当前选中项
List1.remveitem list1.listindex
Clear:清空列表框
组合框
类名叫combobox,实例化对象名默认叫combo1,即name属性
组合框是组合的textbox和listbox,所以有这两个控件共同的属性
使用的时候只是对象名要变成combo1,其他属性参考list
重点是要能写程序,灵活应用
程序设计有三种结构,顺序结构,条件结构,循环结构
条件结构
If 条件 then 任务 ,end if省略
If 条件 then 任务 else 任务 ,end if省略
If 条件 then
任务
Endif
If 条件
then
任务
Else
任务
Endif
If 条件 then
任务
Elseif 条件 then
任务
Elseif 条件 then
任务
Elseif 条件 then
任务
Endif
只要有一个条件满足,后面都不会判断
Select case 变量
Case 值
任务
Case 值列表
任务
Case 值范围
任务
Case 条件表达式
任务
End select
只要有一个条件满足,后面都不会判断
循环结构
For型循环
For 变量=初值 to 终值 step 步长
任务
Next 变量
退出循环的时候变量要多加一次1
例子for i=1 to 100 step 1
S=s+i
Next i
While型循环
变量=初值
While 条件
任务
变量=变量+步长
Wend
例子:while i《=100
S=s+i
i=i+1
wend
Do型循环
Do while 条件
任务
Loop
例子:Do while i《=100
S=s+i
I=i+1
Loop
Do until 条件
任务
Loop
例子: Do until i》100
S=s+i
I=i+1
Loop
Do
任务
Loop while 条件
例子: Do
S=s+i
I=i+1
Loop while i《=100
Do
任务
Loop until 条件
例子: Do
S=s+i
I=i+1
Loop until i》100
Goto 语句
语句标号:任务
If 条件 then
Goto 语句标号
Endif
例子:a:s=s+i
I=i+1
If i》=100 then
Goto a
End if
Exit语句强制退出循环
数组的声明
Dim 数组名(下标 to 上标)as 数据类型
Dim a(1 to 10) as integer 长度为10
Dim b(5) as integer 长度为6,下标省略
如果想让默认下标从1开始,加option base 1
数组的操作:赋值,引用,输入,输出,复制
在对数据进行操作的时候要保证数组下标不溢出
输入10个数,找最大最小平均,冒泡排序
Private Sub Command1_Click()
Dim (1 To 10) As Integer
Dim i As Integer
Dim j As Integer
Dim max As Integer
Dim min As Integer
Dim avg As Integer
Dim sum As Integer
For i = 1 To 10
a(i) = Val(InputBox(“”, “”, “1”))
Print a(i);
Next i
max = a(1)
min = a(2)
For i = 1 To 10
If max 《 a(i) Then
max = a(i)
End If
If min 》 a(i) Then
min = a(i)
End If
sum = sum + a(i)
Next i
avg = sum / 10
Print “max=”; max; “min=”; min; “avg=”; avg;
For i = 1 To 9
For j = 1 To 10 - i
If a(j) 》 a(j + 1) Then
t = a(j)
a(j) = a(j + 1)
a(j + 1) = t
End If
Next j
Next i
For i = 1 To 10
Print a(i);
Next i
End Sub
全部0条评论
快来发表一下你的评论吧 !