VB实例源码.docx
《VB实例源码.docx》由会员分享,可在线阅读,更多相关《VB实例源码.docx(92页珍藏版)》请在冰豆网上搜索。
![VB实例源码.docx](https://file1.bdocx.com/fileroot1/2023-1/10/eeebdbd1-275d-4213-b2a2-3963f42e5164/eeebdbd1-275d-4213-b2a2-3963f42e51641.gif)
VB实例源码
课前体验
PrivateSubForm_Click()
Fori=1To10
Forj=1Toi
Print"*";
Nextj
Print
Nexti
EndSub
【例3-1】
PrivateSubForm_Click()
c1$=Chr$(13)+Chr$(10)
msg1$="请输入您的名字:
"
msg2$="输入后按回车键"
msg3$="或单击“确定”按钮"
msg$=msg1$+c1$+msg2$+c1$+msg3$
name$=InputBox(msg$,"InputBox函数示例","张三")
Printname$
EndSub
【例3-2】
PrivateSubForm_Click()
Msg1$=”AreyouContinueto?
”
msg2$=”OperationDialogBox”
r=MsgBox(msg1$,34,msg2$)
Printr
EndSub
【例3-3】编写程序,用MsgBox函数判断是否继续执行。
PrivateSubForm_Click()
msg$="请确认此数据是否正确"
Title$="数据检查对话框"
x=MsgBox(msg$,19,Title$)
Ifx=6Then
Printx*x
ElseIfx=7Then
Print"请重新输入"
EndIf
EndSub
【例3-5】
PrivateSubForm_Click()
Print:
Print
FontName="隶书"
FontSize=16
Print"姓名";Tab(8);"年龄";Tab(16);"职务";
PrintTab(24);"单位";Tab(32);"籍贯"
Print
Print"吴大明";Tab(8);25;Tab(16);"职员";Tab(24);"人事科";Tab(32);"北京"
EndSub
【例3-6】
PrivateSubForm_Click()
X=InputBox("请输入成绩","学生成绩录入","00")
Printx
EndSub
【例3-7】
PrivateSubForm_Click()
DimxAsSingle,yAsSingle
x=InputBox(“请输入x的值”)
Ifx>0Theny=1ElseIfx=0Theny=0Elsey=-1
Print“x=”;x,”y=”;y
EndSub
【例3-8】
PrivateSubForm_Click()
Dimmsg,UserInput
msg="请输入一个字母或0~9之间的数字."
UserInput=InputBox(msg)‘输入一个字母或数字
IfNotIsNumeric(UserInput)Then‘判断是否是数字
IfLen(UserInput)=1Then‘不是数字时,判断输入的字符串长度是否为1
SelectCaseAsc(UserInput)‘判断输入字母的ASCII码值
Case60To90'在60-90之间为大写字母
msg="你输入的是一个大写字母'"
msg=msg&Chr(Asc(UserInput))&"'。
"
Case97To122'小写字母
msg="你输入的是一个小写字母'"
msg=msg&Chr(Asc(UserInput))&"'。
"
CaseElse
msg="你没有输入字母或数字."
EndSelect
EndIf
Else
SelectCaseVal(UserInput)'将输入的数值型字符转换为数值
Case1,3,5,7,9'如果是奇数
msg=UserInput&"是一个奇数。
"
Case0,2,4,6,8'如果是偶数
msg=UserInput&"是一个偶数。
"
CaseElse'出界
msg="你输入的数字不在0~9范围内"
EndSelect
EndIf
MsgBoxmsg
EndSub
【例3-8】
PrivateSubForm_Click()
Dimmsg,UserInput
msg="请输入一个字母或0~9之间的数字."
UserInput=InputBox(msg)‘输入一个字母或数字
IfNotIsNumeric(UserInput)Then‘判断是否是数字
IfLen(UserInput)=1Then‘不是数字时,判断输入的字符串长度是否为1
SelectCaseAsc(UserInput)‘判断输入字母的ASCII码值
Case60To90'在60-90之间为大写字母
msg="你输入的是一个大写字母'"
msg=msg&Chr(Asc(UserInput))&"'。
"
Case97To122'小写字母
msg="你输入的是一个小写字母'"
msg=msg&Chr(Asc(UserInput))&"'。
"
CaseElse
msg="你没有输入字母或数字."
EndSelect
EndIf
Else
SelectCaseVal(UserInput)'将输入的数值型字符转换为数值
Case1,3,5,7,9'如果是奇数
msg=UserInput&"是一个奇数。
"
Case0,2,4,6,8'如果是偶数
msg=UserInput&"是一个偶数。
"
CaseElse'出界
msg="你输入的数字不在0~9范围内"
EndSelect
EndIf
MsgBoxmsg
EndSub
【例3-10】
SubForm_Click()
DimNAsInteger
n=InputBox("EnterN:
")‘输入N的值
k=1
Fori=1ToN‘循环N次,计算出N!
k=k*I
Nexti
PrintN;”!
=”;k‘数据输出
EndSub
【例3-12】
DimS,N
S=0:
N=0
DoWhileS<=100
N=N+1
S=S+N
Loop
PrintS,N
【例3-13】
PrivateSubForm_Click()
DimcharAsString
Count=0
char=InputBox("请输入一个字符")
Whilechar<>"?
"
Count=Count+1
char=InputBox$("请输入一个字符")
Wend
Print"输入的字符数是:
";Count
EndSub
【例3-14】
PrivateSubForm_Click()
Print"*";
Fori=1To9
PrintTab(i*6);i;
Nexti
Print
Forj=1To9
Printj;
Fork=1Toj
PrintTab(k*6);j*k;"";
Nextk
Print
Nextj
EndSub
第4章
课前体验
(1)假定用来输入数学成绩的文本框名称为Text1,该文本框的LostFocus事件过程如下:
PrivateSubText1_LostFocus()
IfVal(Text1.Text)<0OrVal(Text1.Text)>100Then
Text1.Text=""
Text1.SetFocus
EndIf
EndSub
(2)其他文本框的LostFocus事件类似。
(3)假定按钮名称为Command1,该按钮的Click事件过程如下:
PrivateSubCommand1_Click()
IfCheck1.Value=1ThenSum=Sum+Val(Text1.Text)
IfCheck2.Value=1ThenSum=Sum+Val(Text2.Text)
IfCheck3.Value=1ThenSum=Sum+Val(Text3.Text)
IfCheck4.Value=1ThenSum=Sum+Val(Text4.Text)
IfCheck5.Value=1ThenSum=Sum+Val(Text5.Text)
Text6.Text=Sum
EndSub
【例4-1】
PrivateSubCommand1_Click()‘在其单击事件中编程
Fori=1To6‘外循环,控制输出几行
Forj=1Toi‘内循环,控制输出几列
Print"*";
Nextj
Print‘换行
Nexti
EndSub
【例4-2】
PrivateSubText1_Change()
Text2.Text=LCase(Text1.Text)
Text3.Text=UCase(Text1.Text)
EndSub
【例4-3】
PrivateSubCheck1_Click()
Text1.FontUnderline=NotText1.FontUnderline
EndSub
PrivateSubCheck2_Click()
Text1.FontItalic=NotText1.FontItalic
EndSub
PrivateSubOption1_Click()
Text1.Font="黑体"
EndSub
PrivateSubOption2_Click()
Text1.Font="宋体"
EndSub
【例4-4】
PrivateSubCommand1_Click()
IfOption1Then
Text1.FontName="宋体"
Else
Text1.FontName="黑体"
EndIf
IfOption3Then
Text1.FontSize=8
Else
Text1.FontSize=10
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
【例4-5】
PrivateSubForm_Load()
‘在窗体的Load事件中输入列表框的各个项目
lstBooks.AddItem"计算机应用基础"
lstBooks.AddItem"操作系统"
lstBooks.AddItem"数据结构"
lstBooks.AddItem"网络技术基础"
EndSub
PrivateSubcmdAdd_Click()
‘单击添加命令按钮时将文本框中输入的内容添加到列表框中
lstBooks.AddItemtxtItem
txtItem=""
EndSub
PrivateSubcmdDelete_Click()
‘删除列表框中选中的项目
lstBooks.RemoveItemlstBooks.ListIndex
EndSub
PrivateSubcmdModify_Click()
‘所选项目显示在文本框中,等待修改
txtItem.Text=lstBooks.Text
cmdAdd.Enabled=False
cmdDelete.Enabled=False
cmdModify.Enabled=False
cmdModify_OK.Enabled=True
EndSub
PrivateSubcmdModify_OK_Click()
‘所选项目显示在文本框中修改完成后,按下修改确定按钮,更新列表框内容
lstBooks.List(lstBooks.ListIndex)=txtItem
cmdModify_OK.Enabled=True
cmdAdd.Enabled=True
cmdDelete.Enabled=True
cmdModify.Enabled=True
txtItem=""
EndSub
【例4-6】
PrivateSubForm_Click()
Picture3.Picture=Picture1.Picture
Picture1.Picture=Picture2.Picture
Picture2.Picture=Picture3.Picture
Pciture3.Picture=LoadPicture()‘把第3个图片框设置为空
Endsub
【例4-7】
PrivateSubHScroll1_Change()
Text1.Text=HScroll1.Value
EndSub
【例4-8】
PrivateTimer1_Timer()
Labe1.Caption=Time$
EndSub
实训
PrivateSubCommand1_Click()
Debug.Print"姓名:
";Text1.Text
Debug.Print"出生年月:
";Text2.Text
Debug.Print"籍贯:
";Text3.Text
IfOption1.ValueThenDebug.Print"性别:
";"男"
IfOption2.ValueThenDebug.Print"性别:
";"女"
Debug.Print"民族:
";Combo1.Text
IfCheck1.Value=1ThenDebug.Print"健康"ElseDebug.Print"不健康"
Debug.Print"职称:
";Combo3.Text
Debug.Print"工资:
";Text4.Text
Debug.Print"外语熟练程度";HScroll1.Value
Debug.Print"简历:
";Text5.Text
EndSub
第5章
课前体验
PrivateSubCommand6_Click()
Constn=10‘定义常量n的值为10
Max=0:
K=0‘最高分及所在位置赋初值
Fori=1Ton
b(i)=InputBox("请输入第"&i&"个同学的成绩",求最高分)‘输入成绩
Ifb(i)>MaxThen
Max=b(i)
K=I‘将第i个成绩与最高分Max相比,如果比最高分高,则保存起来
EndIf
Nexti
Print"最高分是第"&K&"个同学,其成绩是:
"&Max
EndSub
【例5-1】
OptionBase1
PrivateSubCommand1_Click()
Dima(3)AsInteger
a
(1)=1:
a
(2)=3:
a(3)=5
Printa
(1)
Printa
(2)
Printa(3)
EndSub
【例5-2】
Fori=1To10
b(i)=InputBox("请输入第"&i&"个数")
Nexti
【例5-3】
Fori=1To2
Forj=1To2
b(i,j)=i+j
Nextj
Nexti
【例5-4】
DimS(3,2)AsInteger
程序如下:
Fori=0To3
PrintTab(5);‘输出位置定位
Forj=0To2
S(i,j)=i*2+j‘给各元素赋值
图5-4使用二维数组打印出的图形
PrintS(i,j);
Nextj
Print‘换行
Nexti
【例5-5】
PrivateSubForm_Click()
Dims(5)AsInteger'定义数组S
Constn=5
Fori=1Ton
s(i)=Val(InputBox("请输入第"<rim$(Str$(i))&"个数",数据排序))
‘输入n个数,转换成数值后保存在数组中。
Nexti
Fori=1Ton-1‘进行n-1趟比较
Max=I‘对第i遍比较时,初始假定第i个元素最小。
Forj=i+1Ton‘在数组i~n个元素中选最小元素
Ifs(j)
Nextj
t=s(i)
s(i)=s(Max)
s(Max)=t‘i~n个元素中选出的最小元素与第i个元素交换
Nexti
Fori=1To5
Prints(i)
Nexti
EndSub
【例5-6】
Dimb()AsInteger
PrivateSubForm_Click()
ReDimb
(2)
Fori=0To2
b(i)=i
Nexti
ReDimPreserveb(3)
b(3)=7
Fori=0To3
Printb(i);
Nexti
EndSub
【例5-7】
Dima(8,8)AsInteger'定义一个二维数组
PrivateSubForm_Click()
‘下面的二层循环语句给数组赋值
Fori=1To8
Forj=1Toi
Ifi=1Orj=1Then
a(i,j)=1'数组中每一行第一个,最后一个数均为1
Else
a(i,j)=a(i-1,j-1)+a(i-1,j)
'数组中其余数据等于它上一行的相邻两列之和
EndIf
Nextj
Nexti
'下面的二层循环语句将数组中的值打印出来
Fori=1To8
PrintTab(20-2*i);'定位打印位置
Forj=1Toi
Ifa(i,j)<10Then'将数组中的值转换成长度为3的字符串,可使打印数据整齐
s=""+Str(a(i,j))+""
ElseIfa(i,j)<100Then
s=""+Str(a(i,j))
EndIf
Prints;
Nextj
Print'换行
Nexti
EndSub
【例5-8】
PrivateSubOption1_Click(IndexAsInteger)
SelectCaseIndex
Case0
Label1.ForeColor=RGB(255,0,0)
Case1
Label1.ForeColor=RGB(0,255,0)
Case2
Label1.ForeColor=RGB(255,255,0)
EndSelect
EndSub
实训
OptionBase1‘定义数组下标从1开始
Dimarr()‘定义动态数组arr
PrivateSubForm_Click()
n=Val(InputBox("请输入矩阵的行数"))‘输入矩阵行数
m=Val(InputBox("请输入矩阵的列数"))‘输入矩阵列数
ReDimarr(n,m)‘重定义数组arr为n行m列的二维数组
‘下列程序段为数组输入数据
Fori=1Ton
Forj=1Tom
arr(i,j)=Val(InputBox("请输入矩阵第"&i&"行第"&j&"列的数据"))
Nextj
Nexti
‘下列程序段在数组中找出最大值及所在位置
row=1:
col=1
Fori=1Ton
Forj=1Tom
Ifarr(i,j)>arr(row,col)Then
row=i:
col=j
EndIf
Nextj
Nexti
‘下列程序段输出矩阵及最大值及所在位置
Print"您输入的矩阵是:
"
Print
Fori=1Ton
PrintTab(8);‘打印位置定位
Forj=1Tom
Printarr(i,j);
Nextj
Print‘换行
Nexti
Print
Print"矩阵中最大值为:
";arr(row,col);"其位置在第"&row&"行"&col&"列"
EndSub
第6章
课前体验
(2)编写窗体装载事件过程:
PrivateSubForm_Load()
ForI=0To100
List1.AddItemi
Nexti
EndSub
(3)使用“添加过程”对话框创建出判断成绩等级的过程
PublicSubDengJi(aAsInteger)
SelectCasea
Case0To59
Label1.Caption="不及格"
Case60To69
Label1.Caption="及格"
Case70To79
Label1.Caption="中等"
Case80To89
Label1.Caption="良好"
Case90To100
Label1.Caption="优秀"
EndSelect
EndSub
4)编写列表框单击Click事件过程:
PrivateSubList1_Click()
DimnAsInteger
N=Val(List1.Text)
CallDengJi(n)'调用判断成绩等级的过程
EndSub
(5)编写命令按钮单击Click事件过程:
PrivateSubCommand1_Click()
End