《VB程序设计》实验报告.docx
- 文档编号:4329788
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:27
- 大小:24.93KB
《VB程序设计》实验报告.docx
《《VB程序设计》实验报告.docx》由会员分享,可在线阅读,更多相关《《VB程序设计》实验报告.docx(27页珍藏版)》请在冰点文库上搜索。
《VB程序设计》实验报告
(此文档为word格式,下载后您可任意编辑修改!
)
台州学院
《VB程序设计》实验报告
实验1.1设计一个程序,程序运行的初始界面如图1-1所示。
当单击“显示”按钮时,在文本框中显示“欢迎使用VB!
”(图1-1);当单击“清除”按钮时,清除文本框内的文本;当单击“退出”按钮时,结束程序运行。
PrivateSubCommand1_Click()
Text1.Text="欢迎使用VB!
"
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
EndSub
PrivateSubCommand3_Click()
End
EndSub
实验1.2设计一个程序,程序运行的初始界面如图1-3所示,其中“显示”按钮为不可用。
同时要求:
(1)当单击“改变文字”按钮时,在左边标签文字内容改为“你好,张三!
”,同时“改变文字”按钮变为不可用(图1-4);
(2)当单击“隐藏”按钮时,将左边标签设为不可见,同时“隐藏”按钮变为不可用,“显示”按钮变为可用(图1-5);
(3)当单击“显示”按钮时,重新显示左边标签,同时“隐藏”按钮变为可用,“显示”
PrivateSubCommand1_Click()
Label1.Caption="你好,张三!
"
Command1.Enabled=False
EndSub
PrivateSubCommand2_Click()
Label1.Visible=False
Command3.Enabled=True
Command2.Enabled=False
EndSub
PrivateSubCommand3_Click()
Label1.Visible=True
Command2.Enabled=True
Command3.Enabled=False
EndSub
实验2.1设计一个程序,运行时界面如图2-1所示。
当单击“左”、“右”、“上”、“下”按钮时,标签分别向左、右、上、下移动。
PrivateSubCommand1_Click()
Label1.Left=Label1.Left-100
EndSub
PrivateSubCommand2_Click()
Label1.Left=Label1.Left+100
EndSub
PrivateSubCommand3_Click()
Label1.Top=Label1.Top-100
EndSub
PrivateSubCommand4_Click()
Label1.Top=Label1.Top+100
EndSub
实验2.2设计一个程序,在文本框中输入一个3位整数,单击按钮后,在标签上输出该数的百位数、十位数和个位数,运行界面如图2-2所示。
PrivateSubCommand1_Click()
Label1.Caption="百位数:
"+Left(Text1.Text,1)+"十位数:
"+Mid(Text1.Text,2,1)+"个位数:
"+Right(Text1.Text,1)
EndSub
实验2.3设计一个程序,实现简单计算的功能、
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=Text1.Text
b=Text2.Text
c=a+b
Label1.Caption="+"
Text3.Text=c
EndSub
PrivateSubCommand2_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=Text1.Text
b=Text2.Text
c=a-b
Label1.Caption="-"
Text3.Text=c
EndSub
PrivateSubCommand3_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=Text1.Text
b=Text2.Text
c=a*b
Label1.Caption="*"
Text3.Text=c
EndSub
PrivateSubCommand4_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=Text1.Text
b=Text2.Text
c=ab
Label1.Caption=""
Text3.Text=c
EndSub
PrivateSubCommand5_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
EndSub
PrivateSubCommand6_Click()
End
EndSub
实验2.4设计一个程序,单击“输入”按钮可弹出一个输入对话框,提示用户输入带区号的电话号码,区号为4为,号码为8位,比如输入“7”,然后将区号和电话号码在消息对话框中显示出来,运行界面如图2-4所示。
PrivateSubCommand1_Click()
DimcAsString
c=InputBox("输入带区号的电话号码,区号为4为,号码为8位,比如输入“7”:
")
MsgBox("区号:
"+Left(c,4)+Chr(13)+Chr(10)+"号码:
"+Right(c,8))
EndSub
实验3.1在两个文本框中输入实数,单击按钮,显示“较小值是xxx”。
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,mAsSingle
a=Text1.Text
b=Text2.Text
Ifa m=a Else m=b EndIf MsgBox"较小值是"&m EndSub 实验3.2输入三个实数,计算其中的最大值,运行界面如图3-1所示。 采用变量m来存放中间过程和结果 PrivateSubCommand1_Click() DimaAsSingle,bAsSingle,cAsSingle,mAsSingle a=Text1.Text b=Text2.Text c=Text3.Text Ifa>bThen'将a,b的较大值存入m m=a Else m=b EndIf Ifc>mThenm=c'再将m与c比较,得到最大值 Text4.Text=m EndSub 注: 比较a,b部分可以写成单行If结构: Ifa>bThenm=aElsem=b 实验3.3用输入对话框输入x,根据下式计算对应的y,并在窗体上输出y的值。 PrivateSubCommand1_Click() DimxAsSingle,yAsSingle x=InputBox("请输入x的值: ",0) Ifx>10Then y=Sqr(x)+Sin(x) ElseIfx<10Then y=2*x^3+6'注意: 乘号不能省略 Else y=0 EndIf Print"y的值是"&y EndSub 实验3.4由键盘输入(1~7)范围内的整数,试编程将其转换为中文表示的星期几,运行界面如图3-2所示。 PrivateSubCommand1_Click() DimnAsInteger,wAsString'注意: w的类型必须为String n=Text1.Text Ifn=1Then w="星期一" ElseIfn=2Then w="星期二" ElseIfn=3Then w="星期三" ElseIfn=4Then w="星期四" ElseIfn=5Then w="星期五" ElseIfn=6Then w="星期六" ElseIfn=7Then w="星期日" Else w="错误的输入" EndIf Text2.Text=w EndSub 实验3.5(选做)由键盘输入3个数,试编程将它们的中间数打印出来 PrivateSubCommand1_Click() DimaAsSingle,bAsSingle,cAsSingle,mAsSingle a=Text1.Text b=Text2.Text c=Text3.Text Ifa>=bAndb>=cThen m=b ElseIfa>=cAndc>=bThen m=c ElseIfb>=aAnda>=cThen m=a ElseIfb>=cAndc>=aThen m=c ElseIfc>=aAnda>=bThen m=a Else m=b EndIf Text4.Text=m EndSub 实验4.1编写过程Commandl_Click,显示对话框输入n(n>0),循环n次,每次随机产生一个两位数,求出其中的偶数之和,并在标签框Label1上显示。 PrivateSubCommand1_Click() DimnAsInteger,iAsInteger,aAsInteger,sAsInteger Randomize'初始化随机数 n=InputBox("请输入n: ") Fori=1Ton a=Int(Rnd*90)+10'随机生成一个两位数存于变量a中 Printa;'显示在屏幕上,以便校对(实际编程可以省略) IfaMod2=0Thens=s+a'判断是否为偶数 Nexti Label1.Caption=s EndSub 说明: 随机生成两位数也可以用a=(Int(Rnd*9)+1)*10+Int(Rnd*10) 实验4.2编写过程Commandl_Click,用InputBox函数输入10个学生的成绩,统计后依次用标签控件Labell~Labe13显示优秀(85-100)、通过(60-84)和未通过(小于60)的人数。 PrivateSubCommand1_Click() Dimn1AsInteger,n2AsInteger,n3AsInteger,CJAsInteger Fori=1To10 CJ=InputBox("请输入成绩(一共10个成绩): ") IfCJ>=85AndCJ<=100Then n1=n1+1 ElseIfCJ>=60AndCJ<=84Then n2=n2+1 ElseIfCJ<60Then n3=n3+1 EndIf Nexti Label1.Caption=n1 Label2.Caption=n2 Label3.Caption=n3 EndSub 实验4.3编制事件程序Command1_Click,执行该过程时输入n,并计算下列表达式的值,然后将计算结果在文本框控件Text1中显示。 PrivateSubCommand1_Click() DimnAsInteger,iAsInteger,sAsSingle n=InputBox("请输入n: ") s=1 Fori=2Ton s=s+i((i+1)*(i+2)) Nexti Text1.Text=s EndSub 实验4.4打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数。 例如,153是一水仙花数,因为 程序1: 用3个数字组合成百位数的办法,生成所有的三位数进行判断。 DimaAsInteger,bAsInteger,cAsInteger'a代表百位数字,b十位,c各位 DimsAsInteger's存放组合成的三位数 Fora=1To9'百位数字取值范围是1-9 Forb=0To9'十位数字取值范围是0-9 Forc=0To9'个位数字取值范围是0-9 s=a*100+b*10+c'组合成的三位数 Ifs=a*a*a+b*b*b+c*c*cThen'判断是否水仙花数 Prints EndIf Nextc Nextb Nexta --- 程序2: 将百位数拆分出每一位,来判断是否水仙花数。 DimiAsInteger'存放循环取值的三位数 DimaAsInteger,bAsInteger,cAsInteger'a存放百位数字,b十位,c各位 Fori=100To999 a=Int(i100) b=Int((i-a*100)10) c=iMod10 Ifi=a*a*a+b*b*b+c*c*cThen'判断是否水仙花数 Printi EndIf Nexti 实验4.5用近似公式求值,当时不再累加。 PrivateSubCommand1_Click() DimiAsInteger,sAsSingle,tAsSingle t=1 Do i=i+1 s=s+1i^2 LoopUntil1i^2<10^-5 PrintSqr(6*s) EndSub 实验4.6(选做)一个两位数的正整数,如果将其个位数与十位数对调所生成的数称为对调数,如28是82的对调数。 现给定一个两位的正整数,请找到另一个两位的正整数,使这两个数之和等于它们各自的对调数之和,如56+32=65+23。 PrivateSubForm_Click() DimiAsInteger,jAsInteger,mAsInteger,nAsInteger m=InputBox("") n=(mMod10)*10+m\10 Fori=10To99 j=(iMod10)*10+i\10 Ifi+m=j+nThen Printm,i ExitFor EndIf Nexti EndSub 实验5.1输入10个数给x数组,找出其中值为最大的元素并将其与第一个元素互换,找出值最小的元素并将其与最后一个元素互换,其他元素不动。 如 原来: 8,7,9,15,0,3,-8,19,31,5 输出: 31,7,9,15,0,3,5,19,8,-8 PrivateSubForm_Click() Dimx(10)AsInteger,iAsInteger DimMaxAsInteger,mAsInteger,MinAsInteger,nAsInteger'Max、m存最大值和最大值位置;Min、n存最小值和最小值位置 Fori=1To10 x(i)=InputBox("请输入第"&i&"个数: ") Printx(i);'显示在窗体上 Nexti Print'显示换行 Max=x (1) Min=x (1) m=1 n=1 Fori=1To10 IfMax Max=x(i) m=i'记录最大值位置 EndIf IfMin>x(i)Then Min=x(i) n=i'记录最小值位置 EndIf Nexti Ifm>1Then'如果最大元素不是第一个,则与第一个交换 x(m)=x (1) x (1)=Max EndIf Ifn<10Then'如果最小元素不是第10个,则与第10个交换 x(n)=x(10) x(10)=Min EndIf Fori=1To10'在窗体上显示结果 Printx(i); Nexti EndSub 注意: 如果第一个为最小元素,则结果出错,因为最小值被最大值调换了。 可以这么改: 在最后一个If前添加一行“Ifn=1Thenn=m”可以设定新的最小值所在位置。 ==================== 实验5.2编写事件过程Command1_Click,完成下列运算: (1)输入10个数到整型数组a; (2)将a (1)各位数字和赋值到b (1)、a (2)各位数字和赋值到b (2)、...、a(10)各位数字和赋值到b(10); (3)在窗体上以一行输出a数组各元素值(保持原输入值不变); (4)在窗体上以一行输出b数组各元素值。 PrivateSubCommand1_Click() Dima(10)AsInteger,b(10)AsInteger,iAsInteger '下面完成 (1): Fori=1To10 a(i)=InputBox("请输入第"&i&"个数: ") Nexti ' (1)完成,下面完成 (2): Fori=1To10 t=a(i)'取元素 Whilet>0'分解t的每一位,并加入到b(i)中 b(i)=b(i)+(tMod10)'取出t的个位数,加入b(i)中 t=t\10’t缩小十倍,去掉原来的个位 Wend Nexti ' (2)完成,下面完成(3): Fori=1To10 Printa(i); Nexti Print '(3)完成,下面完成(4): Fori=1To10 Printb(i); Nexti EndSub ==================== 实验5.3利用随机函数产生30个不同的三位正整数,打印出这30个数,然后将它们按从大到小的次序排序,并打印出排序后的结果。 (完全可以参照: 书上实例,可以用冒泡排序法,也可以用选择排序法) ==================== 实验5.4(选做)输入n后,再输入n个数a1,a2,…,an,按照下列公式计算s的值并显示。 公式1: v=(a1+a2+...+an)n 公式2: s=Sqr((a1-v)^2+(a2-v)^2+...+(an-v)^2))n PrivateSubForm_Click() Dima()AsSingle,nAsInteger,iAsInteger DimsumAsSingle,vAsSingle,sAsSingle n=InputBox("请输入元素个数: ") ReDima(n) Fori=1Ton a(i)=InputBox("请输入第"&i&"个数: ") Printa(i);'显示在窗体上 Nexti Print'显示换行 '求出v: Fori=1Ton sum=sum+a(i) Nexti v=sumn '求出s: sum=0 Fori=1To10 sum=sum+(a(i)-v)^2 Nexti s=Sqr(sum)n '显示结果: Printv,s EndSub ==================== 实验6.1编写一个求三个数最大值的函数max(x,y,z),然后调用此函数求下列表达式的值,首先在文本框中输入a,b,c三个数,然后单击“计算”按钮,在文本框中输出表达式的值m。 表达式为: '功能: 返回x,y,z的最大值 Functionmax(ByValxAsSingle,ByValyAsSingle,ByValzAsSingle)AsSingle max=x Ifmax Ifmax EndFunction PrivateSubCommand1_Click() DimaAsSingle,bAsSingle,cAsSingle,mAsSingle a=Text1.Text b=Text2.Text c=Text3.Text m=max(a,b,c)(max(a+b,b,c)*max(a,b,b+c)) Text4.Text=m EndSub ==================== 实验6.2编一求素数的函数过程Prime(x),若x是素数返回True,否则返回False。 主调程序调用Prime(x)函数输出100之内的所有素数。 '功能: 判断整数x是否素数,如果是返回True,否则返回False FunctionPrime(ByValxAsInteger)AsBoolean DimiAsInteger Ifx<2ThenExitFunction'当x<2返回False Fori=2ToSqr(x) IfxModi=0ThenExitFunction'如果x被i整除,说明x不是素数,立刻返回 Nexti Prime=True'x是素数 EndFunction PrivateSubForm_Click() DimiAsInteger Fori=1To100 IfPrime(i)Th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB程序设计 VB 程序设计 实验 报告