VB程序设计实验报告.docx
- 文档编号:15520687
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:40
- 大小:31.05KB
VB程序设计实验报告.docx
《VB程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《VB程序设计实验报告.docx(40页珍藏版)》请在冰点文库上搜索。
VB程序设计实验报告
(此文档为word格式,下载后您可任意编辑修改!
)
湖北文理学院
VB程序设计课程
实验报告
学院物电学院
专业自动化
班级1211
学号
姓名王亮
任课教师王福林
实验一、VB控制结构
一、实验目的
1.掌握选择语句的使用
2.掌握循环语句的使用
二、实验内容
1、选择语句
程序1:
创建应用程序。
要求:
单击窗体可弹出输入框,任意输入三个数,然后按从小到大的顺序输出到窗体上。
程序2:
创建应用程序。
要求:
单击窗体可弹出一输入框,任意输入一个正整数,在窗体上显示该整数是否为素数的字样。
2、循环语句
程序3:
创建应用程序。
要求:
单击窗体可显示一个由“*”组成的平行四边形图案。
程序4:
创建应用程序,其功能是显示所有的水仙花数。
三、实验记录
程序1如下:
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger,tAsInteger'定义a,b,c,t为整形变量
Cls'清屏
a=Val(InputBox("请输入第1个数:
"))'给a赋值
b=Val(InputBox("请输入第2个数:
"))'给b赋值
c=Val(InputBox("请输入第3个数:
"))'给c赋值
Ifa>bThent=a:
a=b:
b=t'如果a>b,把a的值赋给t,b的值赋给a,t的值赋给b
Ifb>cThen'嵌套,如果b>c
t=b:
b=c:
c=t'把b的值赋给t,b的值赋给c,t的值赋给c
Ifa>bThen'再次嵌套,如果a>b
t=a'把a的值赋给t
a=b'b的值赋给a
b=t't的值赋给b
EndIf
EndIf
Printa;"、";b;"、";c'输出a"、"b;"、";c
EndSub
PrivateSubCommand2_Click()
End'退出程序
EndSub
程序2如下:
PrivateSubCommand1_Click()
DimiAsInteger,kAsInteger,nAsInteger'定义整形变量i,k,n
n=Val(InputBox("任意输入一个整数:
"))'给n输入值
i=2'i初始值为2
k=Int(n2)'为整形的二分之一n的值赋给k
DoWhilei<=k'当i小于且等于k
IfnModi=0Then'如果n模除i为0
ExitDo'退出循环
Else
i=i+1'否则i加1
EndIf
Loop
Ifi>kThenPrintn;"是素数"ElsePrintn;"不是素数"'如果i大于k,输出n的值是素数,否则输出n的值不是素数
EndSub
PrivateSubCommand2_Click()
End'退出程序
EndSub
程序3如下:
PrivateSubForm_Click()
DimmAsInteger,nAsInteger'定义整形变量m,n
Cls'清屏
Form=1To6'm赋初始值为1,当m大于6停止
PrintTab(15-m);'第15-m列开始输出
Forn=1To8'n赋初始值为1,当n大于6停止
Print"*";'输出*
Nextn
Print""'输出空格
Nextm
EndSub
程序4如下:
PrivateSubCommand1_Click()
DimiAsInteger,mAsInteger,nAsInteger,kAsInteger,sxhAsIntege
'定义整形变量i,m,n,k,sxk
Fori=100To999'i赋初始值为100,当i大于999,停止循环
m=i\100'i除以100,结果赋给m
n=(iMod100)\10'i模除100后的值再除以10,最后结果赋给n
k=iMod10'i模除10后的值赋给k
sxh=m^3+n^3+k^3'sxh作算术运算
Ifsxh=iThen'如果sxh等于i
Printi,'输出i的值
EndIf
Nexti
EndSub
PrivateSubCommand2_Click()
End'程序结束
EndSub
4、实验总结
实验二、窗体和标准控件
一、实验目的
1.掌握命令按钮、标签及文本框控件的使用方法
2.掌握复选框、单选按钮及框架控件的使用方法
3.掌握列表框和组合框控件的使用方法
4.掌握滚动条和定时器控件的使用方法
二、实验内容
1、命令按钮、标签及文本框控件的使用方法
程序1:
在窗体上建立两个标签、两个文本框和两个命令按钮,运行界面如左图所示。
要求在运行时,两个文本框中的内容均不允许用户编辑;如果用户在“原文”的文本框中选定所需的内容,单击“复制”命令按钮,则在“输出”文本框中输出选定的内容;如果单击“结束”命令按钮,则结束程序的运行。
程序2:
建立如下图所示的窗体,要求程序能对输入的“性别”和“邮政编码”、“电话号码”进行校验(性别只允许输入“男”或“女”,邮政编码必须是6位数字,电话号码必须是8位数字)。
如果输入的数据不符号要求,则清空相应的文本框,并将插入点置于该框中。
所有的校验工作可以在单击“退出”按钮后进行,此时,程序检查所有文本框,如有空白或内容错误,要求继续输入,否则结束程序。
2、复选框、单选按钮及框架控件的使用
程序3:
在窗体中有一个标签,内有若干文字,要求通过窗体中的复选框或单选按钮确定标签中文字的字体(宋体或黑体)、字号(10号或12号)和字形(是否粗体、是否斜体),请建立应用程序。
3、列表框和组合框控件的使用
程序4:
编写程序。
要求:
程序运行初期,在窗体左边的列表框中生成10个由小到大排列的10到100之间的随机整数,单击窗体中“右移”按钮,则左边列表框的10个数移动到右边的列表框中,并由大到小排列,此时“左移”按钮变为有效。
单击“左移”按钮,右边列表框中的数又被移到左边的列表框中。
单击“退出”按钮或按ESC键,可退出程序。
窗体示意图如下。
程序5:
建立应用程序,窗体如下图所示,有一个简单组合框、三个命令按钮、一个文本框和一个标签。
要求:
●单击“添加”按钮可将输入的内容添加到组合框中
●单击“删除”按钮可删除组合框中选定的项目
●单击“统计人数”按钮,可将组合框中的项目总数输出到右边的文本框
●单击“退出”或按ESC键退出程序
4、滚动条和定时器控件的使用
程序6:
编写程序,运行时的界面如下图所示。
要求:
无论是拖动滚动条上的滚动框,还是单击滚动箭头(数值递增或递减1)或滚动条(数值递增或递减10),均可以在相应的标签中反映当前数值,并动态计算出均值;单击“Reset”按钮,可将各滚动条上的滚动框复位。
程序7:
利用定时器控件设计一个数字式时钟应用程序。
三、实验记录
程序1如下:
PrivateSubForm_Load()
Text1.Text="文本框是一个多功能控件,可以显示或者接收用户输入的文本信息。
"'给文本框指定内容
EndSub
PrivateSubCommand1_Click()
Text2.Text=Text1.SelText'在Text1中选定文本赋给Text2
EndSub
PrivateSubCommand2_Click()
End'程序结束
EndSub
程序2如下:
PrivateSubCommand1_Click()
IfText1=""Then
'如果Text1没有输入,当前的激活文本区(焦点)在Text1
Text1.SetFocus
ExitSub'退出过程
EndIf
IfText2=""Then
'如果Text2没有输入,当前的激活文本区(焦点)在Text2
Text2.SetFocus
ExitSub'退出过程
EndIf
IfText3=""Then
'如果Text3没有输入,当前的激活文本区(焦点)在Text3
Text3.SetFocus
ExitSub'退出过程
EndIf
IfText4=""Then
'如果Text4没有输入,当前的激活文本区(焦点)在Text4
Text4.SetFocus
ExitSub'退出过程
EndIf
IfText5=""Then
'如果Text5没有输入,当前的激活文本区(焦点)在Text5
Text5.SetFocus
ExitSub'退出过程
EndIf
End'退出程序
EndSub
PrivateSubText2_LostFocus()
IfText2.Text<>""Then'如果Text2有输入
IfText2.Text<>"男"AndText2.Text<>"女"Then
'如果Text2输入的内容不是“男”和“女”
Text2.Text=""'则Text2不输出
Text2.SetFocus'当前的激活文本区(焦点)在Text2
EndIf
EndIf
EndSub
PrivateSubText4_LostFocus()
IfText4.Text<>""Then'如果Text4有输入
IfLen(Text4.Text)<>6OrNotIsNumeric(Text4.Text)Then
'如果Text4输入的内容不是数值或者字符串的长度不为6
Text4.Text=""'则Text4不输出
Text4.SetFocus'当前的激活文本区(焦点)在Text4
EndIf
EndIf
EndSub
PrivateSubText5_LostFocus()
IfText5.Text<>""Then'如果Text5有输入
IfLen(Text5.Text)<>8OrNotIsNumeric(Text5.Text)Then
'如果Text5输入的内容不是数值或者字符串的长度不为8
Text5.Text=""'则Text5不输出
Text5.SetFocus'当前的激活文本区(焦点)在Text5
EndIf
EndIf
EndSub
程序3界面设计(程序设计界面和运行结果界面):
程序3如下:
PrivateSubOption1_Click()
Text1.FontName="宋体"'Text1中的内容为宋体
EndSub
PrivateSubOption2_Click()
Text1.FontName="黑体"'Text1中的内容为黑体
EndSub
PrivateSubOption3_Click()
Text1.FontSize=10'Text1中的内容为字号大小为10号
EndSub
PrivateSubOption4_Click()
Text1.FontSize=12'Text1中的内容为字号大小为12号
EndSub
PrivateSubCheck1_Click()
IfCheck1.Value=1Then'如果Check1被选中
Text1.FontBold=True'Text1中的内容变为粗体
Else
Text1.FontBold=False'Text1中的内容不变
EndIf
EndSub
PrivateSubCheck2_Click()
IfCheck2.Value=1Then'如果Check2被选中
Text1.FontItalic=True'Text1中的内容变为斜体
Else
Text1.FontItalic=False'Text1中的内容不变
EndIf
EndSub
程序4如下:
PrivateSubCommand1_Click()
DimiAsInteger,LastAsInteger'定义i和Last为整型变量
Last=List1.ListCount-1
'将List1.ListCount-1中被选中的内容赋給Last
Fori=0ToLast'统计i大于Last时停止循环
List2.AddItemList1.List(Last-i)
'将List2中被选中的内容添加到List1中
List1.RemoveItemLast-i'将List1中被选中的内容删除Last-i个
Nexti
Command1.Enabled=False'Command1按钮无效
Command2.Enabled=True'Command2按钮有效
EndSub
PrivateSubCommand2_Click()
DimiAsInteger,LastAsInteger'定义i和Last为整型变量
Last=List2.ListCount-1
'将List2.ListCount-1中被选中的内容赋給Last
Fori=0ToLast'统计i大于Last时停止循环
List1.AddItemList2.List(Last-i)
'将List1中被选中的内容添加到List2
List2.RemoveItemLast-i'将List2中被选中的内容删除Last-i个
Nexti
Command1.Enabled=True'Command1按钮有效
Command2.Enabled=False'Command2按钮无效
EndSub
PrivateSubCommand3_Click()
UnloadMe'程序退出
EndSub
PrivateSubForm_Load()
DimiAsInteger
Fori=0To9'统计i大于9时停止循环
Randomize
List1.AddItemInt((90*Rnd)+10)'给List1中添加内容
Nexti
EndSub
程序5如下:
PrivateSubCombo1_Change()
IfCombo1.Text<>""Then'如果Combo1输入内容不为空
Command1.Enabled=True'Command1按钮点击有效
Command1.Default=True'Command1为默认按钮
Else
Command1.Enabled=False'否则,Command1按钮点击无效,成灰色状态
EndIf
EndSub
PrivateSubCombo1_Click()
Command2.Enabled=True'Command2按钮点击有效
Command2.Default=True'Command2为默认按钮
Combo1.SetFocus'赋焦点光标在停放Combo1里
EndSub
PrivateSubCommand1_Click()
Combo1.AddItemCombo1.Text'添加内容到Combo1中
Combo1.Text=""'Combo1输入内容为空
Combo1.SetFocus'赋焦点光标在停放Combo1里
EndSub
PrivateSubCommand2_Click()
x=Combo1.ListIndex'将Combo1中的内容赋給x
Combo1.RemoveItemx'将Combo1中的内容中的x删除
Ifx Combo1.ListIndex=x'将x中的内容赋給Combo1 Else Ifx>0Then'否则,如果x大于0 Combo1.ListIndex=x-1'x-1赋给Combo1 Else Command2.Enabled=False'否则,Command2按钮点击无效Command2.Default=False'Command2不为默认按钮 EndIf EndIf Text1.SetFocus'赋焦点光标在停放text1里 EndSub PrivateSubCommand3_Click() Text1.Text=Combo1.ListCount'将Combo1中的内容赋給Text1 Combo1.SetFocus'赋焦点光标在停放Combo1里 EndSub PrivateSubCommand4_Click() End'程序结束 EndSub 程序6如下: PrivateSubCommand1_Click() HScroll1.Value=0'将数值0赋给滚动条HScroll1 HScroll2.Value=0'将数值0赋给滚动条HScroll2 HScroll3.Value=0'将数值0赋给滚动条HScroll3 EndSub PrivateSubHScroll1_Change() Label5.Caption=HScroll1.Value '滚动条HScroll的数值显示在标签Label5上 Average'求其平均值 EndSub PrivateSubHScroll2_Change() Label6.Caption=HScroll2.Value '滚动条HScrol2的数值显示在标签Label6上 Average'求其平均值 EndSub PrivateSubHScroll3_Change() Label7.Caption=HScroll3.Value '滚动条HScrol3的数值显示在标签Label7上 Average'求其平均值 EndSub PrivateSubAverage() DimTempAsDouble'定义双精度变量Temp Temp=(HScroll1.Value+HScroll2.Value+HScroll3.Value)3 '将滚动条HScroll,HScroll2,HScroll3的平均值之和除以3,结果赋给Temp Label8.Caption=CStr(Temp)'Temp的均值显示在标签Label8上 EndSub 程序7如下: PrivateSubForm_Load() Label1.Caption=Time'在窗体上,将现在的时间赋给标签Label1 EndSub PrivateSubTimer1_Timer() Label1.Caption=Time '在时间控件Time1把现在的时间显示在标签Label1上 EndSub 4、实验总结 实验三、过程 一、实验目的 1.掌握过程的定义和调用的方法 2.掌握典型问题的算法求解 二、实验内容 1、过程的定义和调用 程序1: 创建应用程序,要求对输入的非负整数m和n,如果m>=n,则显示组合数的值,否则显示数据出错。 二、典型问题的算法 程序2: 利用下列两式求得圆周率π的近似值,忽略级数式中绝对值小于0.000001的项。 以及 程序3: 如下图所示,求2-200之间的所有素数,要求每输出五个数据换一行。 程序4: 利用随机函数产生20个-500到500的随机整数(包括-500和500),单击窗体时,在窗体上输出这20个数,同时在窗体上显示输出从大到小排好序的这些数。 要求以每行5个数的格式显示,如下图所示。 三、实验记录 程序1如下: PrivateSubCommand1_Click() IfText1.Text=""OrNotIsNumeric(Text1.Text)Then '如果Text1没有输入或者不是字符串 MsgBox"请输入一个非负整数! ",,"提示" '弹出消息框标题为“提示”,内容为"请输入一个非负整数! " ExitSub'退出过程 EndIf IfText2.Text=""OrNotIsNumeric(Text2.Text)Then '如果Text2没有输入或者不是字符串 MsgBox"请输入一个非负整数! ",,"提示" '弹出消息框标题为“提示”,内容为"请输入一个非负整数! " Text2.SetFocus'此刻焦点指在Text2 ExitSub'退出过程 EndIf IfCInt(Text1.Text)>CInt(Text2.Text)Then '如果输入Text1的整形函数值大于Text2的整形函数值 MsgBox"数据出错,请重新输入! ",,"警告" '弹出消息框标题为“警告”,内容为"数据出错。 请重新输入! " Text1.Text=""'Text1不输出 Text2.Text=""'Text1不输出 Text1.SetFocus'此刻焦点指在Text1 ExitSub'退出过程 EndIf n=CInt(Text1.Text)'Text1的整形函数值赋给n m=CInt(Text2.Text)'Text2的整形函数值赋给m Text3.Text=CStr(Fac(m)Fac(n)Fac(m-n)) '组合数做运算,利用阶乘 EndSub PrivateFunctionFac(ByValnAsInteger)AsDouble '函数的调用,定义双精度变量Fac(),整形变量n DimiAsInteger,TempAsDouble'定义整形变量i,Temp Temp=1'Temp初值为1 Fori=1Ton'做循环 Temp=Temp*i'做乘积运算 Nexti Fac=Temp'把Temp的值赋给Fac EndFunction'结束函数 PrivateSubCommand2_Click() End'结束程序 EndSub 程序2如下: Privat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计 实验 报告