一、 实验目的:通过此次的实验是为了让我们更加的了解VB,更加深入的去探索学习VB的奥妙。同时,此次试验的目的不仅仅只限于此,更重要的是让我们养成自主学习的习惯,培养我们独立学习的能力。让我们适应大学的学习方法:不是被迫的学习,而是自己主动的学习。
二、 实验内容:1、显示各位数:
Private Sub Command1_Click()
Dim x As Integer
Dim a, b, c, d
x = 1234
a = x \ 1000 Mod 10
b = x \ 100 Mod 10
c = x \ 10 Mod 10
d = x Mod 10
Print a, b, c, d
For n = 100 To 999
a = n \ 100
b = (n - a * 100) \ 10
c = n Mod 10
If n = (a ^ 3 + b ^ 3 + c ^ 3) Then Print n
Next
End Sub
2、大小写转化:
Dim x as String
Private Sub Form_Load()
x=Text1.Text
End Sub
Private Sub Command1_Click()
Text1.Text=Ucase(x)
End Sub
Private Sub Command2_Click()
Text1.Text=Lcase(x)
End Sub
Private Sub Command3_Click()
Text1.Text=x
End Sub
3、随机数:
① 在通用声明段中,声明一个模块级的数组,代码如下:
Dim a(1 To 4,1 To 4)As Integer
②在“代码”窗口中选择Form_Load事件,编写事件过程代码如下:
Private Sub Form_Load()
Dim p As String
Randomise
P=""
For i=1 To 10
Do
x=Int(Rnd*90)+10
yes=0
For j=1 To i-1
Ifx=a(j)Then yes=1:Exit For '防止出现重复的数
Next
Loop While yes=1
a(i)=x
p=p & Str(a(i))& ","
Next
Label1.Caption=Ltrim(Left(p,Len(p)-1))
Label2.Caption=""
End Sub
③在“代码”窗口中选择Command1控件的Click事件,编写事件过程代码如下:
Private Sub Command1_Click()
Form_Load
End Sub
④在“代码”窗口中选择Command2控件的Click事件,编写事件过程代码如下:
Private Sub Command2_Click()
p=""
For i=1 To 9
For j=1 To 10-i
Ifa(j)<a(j+1)Then '“<”改为“>”,则为升序
t=a(j):a(j)=a(j+1):a(j+1)=t
End If
Next
Next
For i=1 To 10
p=p &Str(a(i))&","
Next
Label2.Caption=Ltrim(Left(p,Len(p)-1))'去掉字符串前空格及最后一个“,”
End Sub
4、写Blog,上机实现能动的图形:
Private Sub Command1_Click ()
Show
Me Scale (0, 0)-(18, 8)
Me. Auto redraw =True
Me. Draw Mode =2
Circle (3, 4), 3, VB Red
Me. Auto Redraw =false
Line (7, 1) –step (4, 6) .VB Green .B
Line (13, 7) –step (4, 0).VB Blue
Line step (0, 0) –step (-2, -6). VB Blue
Line step (0, 0) –step (-2, 6). VB Blue
End sub
5、让程序随机不定时间生成随机种类的图形,并且要生成多个图形:
PrivateSub Form_Load()
Command1.Caption = "随机画圆"
Command2.Caption = "随机文字"
Command3.Caption = "立体图形"
Command4.Caption = "随机图像"
Command5.Caption = "退出"
Form1.ScaleMode = 1
Picture1.ScaleMode = 1
Picture2.Picture = LoadPicture
EndSub '随机画圆动画
PrivateSub Command1_Click()
Dim XPos, YPos
Picture1.Cls
Do nn = Int(100 * Rnd)
If nn > 0 Then
Picture1.DrawWidth = nn
End If
XPos = Rnd * Picture1.ScaleWidth
YPos = Rnd * Picture1.ScaleHeight
Picture1.PSet (XPos, YPos), RGB (Rnd * 256, Rnd * 256, Rnd *256)
DoEvents
Loop
EndSub
'随机文字动画
PrivateSub Command2_Click()
Picture1.Cls
Do nn = Int(45 * Rnd)
If nn > 0 Then
Picture1.FontSize = nn
End If
Picture1.CurrentX = Rnd * Picture1.ScaleWidth - 1000
Picture1.CurrentY =Rnd * Picture1.ScaleHeight
Picture1.ForeColor =RGB(Rnd * 256, Rnd * 256, Rnd * 256)
Picture1.Print "随机 OK!"
n = n + 1
If n > 50 Then n = 0
Picture1.BackColor = QBColor(Rnd * 15)
End If
DoEvents
Loop
EndSub
'立体随机动画
PrivateSub Command3_Click()
Dim m, n
Picture1.DrawWidth = 1
Picture1.BackColor = RGB(210, 150, 0)
Picture1.Cls
Do
m = Rnd * Picture1.ScaleWidth
n = Rnd * Picture1.ScaleHeight - 500
For i = 0 To Rnd * 800
Picture1.Line(m,n+2.5*i)-(m+i/2,n+2*i),RGB(180,180,180)
Picture1.Line(m,n+2.5*i)-(m-i/2,n+2*i),RGB(80,80,80)
Next i
DoEvents
Loop
EndSub
'随机图像显示
PrivateSub Command4_Click()
Do
xx = Rnd * Picture1.Width
yy = Rnd * Picture1.Height
Picture1.PaintPicture Picture2.
Picture, xx, yy,
Picture2.Width, Picture2.Height
DoEvents
Loop
EndSub
'退出按钮
PrivateSub Command5_Click()
End
EndSub
三、 心得体会:就五个实验,却把我要折磨疯了。因为基础的不会,那些专业术语也不懂,程序根本就设计不下去,设计到最后连我自己都不知道我设计了什么。归根结底就是没有看书的后果,就是没有把书看透。而且我各种搜查、各种询问都没有找到满意的结果。终于让我明白了一个道理:做什么事都要脚踏实地的,一步一步地走。俗话说得好“千里之行,始于足下。”人生就如VB程序设计一样,成功的阶梯需要你踏实的向上走,如果你有一步没有踏稳,你将会摔得粉身碎骨。所以,从现在起,我们就应该从长远角度考虑,从未来的角度出发,踏实的做好身边的每一件小事,为日后的成功打下良好的基础。为了以后的生活,从现在起就要努力奋斗、奋力拼搏。
四、 遇到的问题及解决方法:1、遇到的问题:程序不会设计;VB的基础语言不懂;不知道怎样从网上找资料。
2、解决方法:上网查(百度、csdn网站、腾讯…);问同学;和同学一起交流、讨论。
五、 没有解决的问题:还是不会自己编写程序;编好的程序错误的地方自己不会调试。