《VB程序设计》实验报告.docx

上传人:b****7 文档编号:16433432 上传时间:2023-07-13 格式:DOCX 页数:27 大小:24.94KB
下载 相关 举报
《VB程序设计》实验报告.docx_第1页
第1页 / 共27页
《VB程序设计》实验报告.docx_第2页
第2页 / 共27页
《VB程序设计》实验报告.docx_第3页
第3页 / 共27页
《VB程序设计》实验报告.docx_第4页
第4页 / 共27页
《VB程序设计》实验报告.docx_第5页
第5页 / 共27页
《VB程序设计》实验报告.docx_第6页
第6页 / 共27页
《VB程序设计》实验报告.docx_第7页
第7页 / 共27页
《VB程序设计》实验报告.docx_第8页
第8页 / 共27页
《VB程序设计》实验报告.docx_第9页
第9页 / 共27页
《VB程序设计》实验报告.docx_第10页
第10页 / 共27页
《VB程序设计》实验报告.docx_第11页
第11页 / 共27页
《VB程序设计》实验报告.docx_第12页
第12页 / 共27页
《VB程序设计》实验报告.docx_第13页
第13页 / 共27页
《VB程序设计》实验报告.docx_第14页
第14页 / 共27页
《VB程序设计》实验报告.docx_第15页
第15页 / 共27页
《VB程序设计》实验报告.docx_第16页
第16页 / 共27页
《VB程序设计》实验报告.docx_第17页
第17页 / 共27页
《VB程序设计》实验报告.docx_第18页
第18页 / 共27页
《VB程序设计》实验报告.docx_第19页
第19页 / 共27页
《VB程序设计》实验报告.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《VB程序设计》实验报告.docx

《《VB程序设计》实验报告.docx》由会员分享,可在线阅读,更多相关《《VB程序设计》实验报告.docx(27页珍藏版)》请在冰点文库上搜索。

《VB程序设计》实验报告.docx

《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=a/b

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(i/100)

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+1/i^2

LoopUntil1/i^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=sum/n

'求出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=1To

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2