收藏 分销(赏)

VB程序设计教程(第3版)课后实验答案.doc

上传人:xrp****65 文档编号:5973088 上传时间:2024-11-24 格式:DOC 页数:37 大小:130KB
下载 相关 举报
VB程序设计教程(第3版)课后实验答案.doc_第1页
第1页 / 共37页
VB程序设计教程(第3版)课后实验答案.doc_第2页
第2页 / 共37页
点击查看更多>>
资源描述
实验A A.1 Private Sub Command1_Click() Label3 = Text1 End Sub A.2 Private Sub Form_Load() Timer1.Interval = 0 End Sub Private Sub Command1_Click() '自动 Timer1.Interval = 200 End Sub Private Sub Command2_Click() '手动 Timer1.Interval = 0 Call MyMove End Sub Private Sub Timer1_Timer() Call MyMove End Sub Sub MyMove() Label1.Move Label1.Left - 50 If Label1.Left < 0 Then Label1.Left = Form1.Width End Sub A.3 Private Sub Form_Click() Text1 = Val(Text1) + 1 End Sub Private Sub Form_Load() Text1 = 0 End Sub A.4 Private Sub Form_Click() Caption = "单击窗体,改变图片" Picture = LoadPicture(App.Path + "\n_015.bmp") Print "欢迎使用VB" End Sub Private Sub Form_DblClick() Cls Caption = "双击窗体,卸去图片" Picture = LoadPicture("") ' End Sub Private Sub Form_Load() Caption = "装入窗体" Picture = LoadPicture(App.Path + "\n_016.bmp") Print "装入图" End Sub Private Sub Form_Resize() ' 该事件的作用窗体始终与图一样大 'Caption = "窗体大小不变" 'Form1.Width = 260 * 16 ' 260是Tongji-2.bmp图的宽度,象素单位 'Form1.Height = 260 * 16 + 200 ' 260是图的高度,象素单位,200是窗体的标题栏高度 End Sub A.5 Sub Command1_Click() Text1.FontName = "隶书" Text1.FontSize = 25 End Sub Sub Command2_Click() Text2.Text = Text1.SelText Text2.FontName = Text1.FontName Text2.FontSize = Text1.FontSize End Sub 实验B B.1 Private Sub Command1_Click() Text2 = Format(5 / 9 * (Val(Text1) - 32), "0.00") End Sub Private Sub Command2_Click() Text1 = Format(9 / 5 * Val(Text2) + 32, "0.00") End Sub 或 Private Sub Command1_Click() Dim f!, c! ' 声明两个变量 f = Val(Text1) c = 5 / 9 * (f - 32) Text2 = Format(c, "0.00") ' 保留两位小数 End Sub Private Sub Command2_Click() Dim ff!, cc! ' 声明两个变量 cc = Val(Text2) ff = 9 / 5 * cc + 32 Text1 = Format(ff, "0.00") ' 保留两位小数 End Sub B.2 Private Sub Command1_Click() Label2 = Format(Val(Text1) * Val(Text1) * 3.14, "0.00") End Sub Private Sub Command2_Click() Label3 = Format(Val(Text1) * 3.14 * 2, "0.00") End Sub Private Sub Text1_LostFocus() If Not IsNumeric(Text1.Text) Then MsgBox "输入有非数字字符,请重新输入", , "警告" Text1.Text = "" Text1.SetFocus End If End Sub 或 Private Sub Command1_Click() Label2 = Format(Val(Text1) * Val(Text1) * 3.14, "0.00") End Sub Private Sub Command2_Click() Label3 = Format(Val(Text1) * 3.14 * 2, "0.00") End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Not IsNumeric(Text1.Text) Then Text1.Text = "" End If End If End Sub B.3 Private Sub Command1_Click() n = Int(Log(2) / Log(1.008) + 1) Label1 = n & "年后人数超过26亿" End Sub B.4 Private Sub Command1_Click() Dim x, dx, cd x = Text1.Text dx = UCase(x) cd = Len(x) Print "大写字母为:"; dx Print "字符串长度为:"; cd End Sub B.5 Private Sub Command1_Click() Text1 = Int(Rnd * 900 + 100) End Sub Private Sub Command2_Click() Dim x%, x1%, x2%, x3% x = Val(Text1) x1 = x Mod 10 ' 分离出的个位数 x2 = (x Mod 100) \ 10 ' 分离出的十位数 x3 = x \ 100 ' 分离出的百位数 Label1 = x1 * 100 + x2 * 10 + x3 End Sub B.6 Private Sub Form_Click() Label1 = Left(Text1, 11) Label2 = Mid(Text1, 12, 6) Label3 = Right(Text1, 5) End Sub B.7 Private Sub Command1_Click() Print For i = 1 To 5 Print Tab(15 - i * 2); String(2 * i - 1, "★"); Spc(18 - 4 * (i - 1)); String(2 * i - 1, "★") Next i End Sub Private Sub Command2_Click() Cls End Sub 进一步要求: Private Sub Command1_Click() Print For i = 1 To 5 Print Tab(15 - i * 2); String(2 * i - 1, "★"); String(10 - (2 * i - 1), "☆"); String(2 * i - 1, "★") Next i End Sub Private Sub Command2_Click() Cls End Sub B.8 Private Sub Form_Click() x = Val(InputBox("输入一正实数", "计算", 0)) pf = Format(x * x, "0.000") pfg = Format(Sqr(x), "0.000") lf = Format(x * x * x, "0.000") lfg = Format(x ^ (1 / 3), "0.000") Print "平方为:"; pf; Space(5); "平方根为:"; pfg; Space(5); "立方为:"; lf; Space(5); "立方根为:"; lfg End Sub 实验C C.1 Private Sub Form_Click() Dim x!, y! x = Val(InputBox("输入x的值")) If x < 1000 Then y = x ElseIf x < 2000 Then y = 0.9 * x ElseIf x < 3000 Then y = 0.8 * x Else y = 0.7 * x End If Print y End Sub C.2 Private Sub Form_Click() Dim x!, y! x = Val(InputBox("输入上网时间")) If x < 10 Then y = 30 ElseIf x < 50 Then y = 30 + 2.5 * (x - 10) Else y = 30 + 2.5 * 40 + 2 * (x - 50) End If If y > 150 Then y = 150 End If Print y End Sub C.3 Private Sub Command1_Click() Dim x!, y!, z! x = InputBox("input x") y = InputBox("input y") z = InputBox("input z") Print " x y z" Print " 排序前"; x; " "; y; " "; z If x < y Then t = x: x = y: y = t If x < z Then t = x: x = z: z = t If y < z Then t = y: y = z: z = t Print " 排序后" & x & " " & y & " " & z End Sub Private Sub Command2_Click() Dim x!, y!, z! x = InputBox("input x") y = InputBox("input y") z = InputBox("input z") Print " x y z" Print " 排序前"; x; " "; y; " "; z If x < y Then t = x: x = y: y = t If y < z Then t = y: y = z: z = t If x < y Then t = x: x = y: y = t End If End If Print " 排序后" & x & " " & y & " " & z End Sub C.4 Dim a(3) As Integer Private Sub Command1_Click() Picture1.Cls For i = 0 To 2 a(i) = Int(Rnd * 100 + 200) Picture1.Print a(i) Next i End Sub Private Sub Command2_Click() Picture2.Cls Dim z As Integer For i = 0 To 1 If a(i) > a(i + 1) Then z = a(i + 1) a(i + 1) = a(i) a(i) = z End If Next i Picture2.Print a(0) Picture2.Print a(1) Picture2.Print a(2) End Sub C.5 Private Sub Text2_LostFocus() Dim m%, n%, y% m = Val(Text1) n = Val(Text2) If n Mod 2 <> 0 Then MsgBox ("脚数必定为偶数") Text2 = "" Text2.SetFocus Else y = n / 2 - m If y < 0 Then MsgBox ("脚数必须≥2倍的头数,请重新输入") Text2 = "" Text2.SetFocus Else x = n / 2 - m Label2 = y Label3 = m - y End If End If End Sub C.6 Private Sub Command1_Click() Dim a!, b!, c!, x1!, x2!, de! a = Text1 b = Text2 c = Text3 de = b * b - 4 * a * c t = 2 * a If de = 0 Then Text4 = Format(-b / t, "0.00") Text5 = Format(-b / t, "0.00") ElseIf de > 0 Then Text4 = Format((-b + Sqr(de)) / t, "0.00") Text5 = Format((-b - Sqr(de)) / t, "0.00") Else Text4 = Format(-b / t, "0.00") & "+" & Format(Sqr(Abs(de)) / t, "0.00") & "i" Text5 = Format(-b / t, "0.00") & "-" & Format(Sqr(Abs(de)) / t, "0.00") & "i" End If End Sub Private Sub Command2_Click() Text1 = "" Text2 = "" Text3 = "" Text4 = "" Text5 = "" End Sub C.7 Private Sub Text3_LostFocus() Select Case Trim(Text3) Case "+" Text4 = Val(Text1) + Val(Text2) Case "-" Text4 = Val(Text1) - Val(Text2) Case "*" Text4 = Val(Text1) * Val(Text2) Case "/" If Val(Text2) = 0 Then MsgBox "分母为零,重新输入" Text2 = "" Text2.SetFocus Else Text4 = Val(Text1) / Val(Text2) End If End Select End Sub C.8 Private Sub Text1_LostFocus() Select Case Trim(Text1) Case 1 Text2 = "Monday" Case 2 Text2 = "Tuesday" Case 3 Text2 = "Wednesday" Case 4 Text2 = "Thursday" Case 5 Text2 = "Friday" Case 6 Text2 = "Saturday" Case 7 Text2 = "Sunday" Case Is > 7, Is < 1 MsgBox "数字为1~7,重新输入" Text1 = "" Text1.SetFocus End Select End Sub 或者 Private Sub Text1_LostFocus() If Text1 > 7 Or Text1 < 1 Then MsgBox "数字为1~7,重新输入" Text1 = "" Text1.SetFocus Else Text2 = Choose(Text1, "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday") End If End Sub 实验D D.1 Private Sub Form_Click() For i = 1 To 9 Print Tab(10 - i); String(2 * i - 1, Trim(Str(i))) Next i End Sub D.2 Private Sub Form_Click() For i = 1 To 10 Step 1 Print Tab(i); String((20 - 2 * i), Chr(64 + i)) Next i End Sub D.3 Private Sub Command1_Click() Dim s!, t!, i& s = 1 t = 1 For i = 1 To 100000 t = t + i s = s + 1 / t If 1 / t < 0.00001 Then Exit For Next i Print "For结构"; s, i; "项" End Sub D.4 Private Sub Command1_Click() Dim n&, pi#, i& n = InputBox("输入n值") pi = 2 For i = 1 To n pi = pi * (2 * i) / (2 * i - 1) * (2 * i) / (2 * i + 1) Next i Print "当n=" & n & "时,pi="; pi End Sub D.5 Private Sub Form_Click() Dim s!, t!, i!, a%, n% a = Int(Rnd * 9 + 1) n = Int(Rnd * 6 + 5) t = 0: s = 0 Print "a="; a, "n="; n For i = 1 To n t = t * 10 + a s = s + t Print t; Next i Print Print "s="; s End Sub D.6 Private Sub Command1_Click() Dim s As Integer s = 0 For i = 1 To 9 For j = 0 To 9 For k = 0 To 9 s = i * 100 + j * 10 + k If s = i ^ 3 + j ^ 3 + k ^ 3 Then Print s End If Next k Next j Next i End Sub Private Sub Command3_Click() formd6.Hide main.Show End Sub D.7 Private Sub Command1_Click() Dim a!, x0!, x1! a = 27 x0 = 2 i = 0 Do i = i + 1 x1 = 2 * x0 / 3 + a / (3 * x0 * x0) If Abs(x1 - x0) < 0.00001 Then Exit Do x0 = x1 Loop Print x1, i End Sub D.8 Private Sub Command1_Click() s = 0 x0 = 0.01 For i = 1 To 30 s = s + x0 x0 = x0 * 2 Next i Print s End Sub D.9 Private Sub Command4_Click() Picture1.Cls Picture1.Print "x课安排在 "; "y课安排在 "; "z课安排在 " Picture1.Print "" For z = 5 To 6 For x = 1 To z - 2 For Y = x + 1 To z - 1 X1 = Choose(Weekday(x), "周一", "周二", "周三", "周四", "周五", "周六", "周日") Y1 = Choose(Weekday(Y), "周一", "周二", "周三", "周四", "周五", "周六", "周日") z1 = Choose(Weekday(z), "周一", "周二", "周三", "周四", "周五", "周六", "周日") Picture1.Print " "; X1; " "; Y1; " "; z1 Next Y Next x Next z End Sub 实验E E.1 Private Sub Form_Click() Dim a(1 To 10) As Integer For i = 1 To 10 a(i) = Int(Rnd * 71 + 30) Print a(i); " "; Next i Max = a(1) Min = a(1) Avg = a(1) For i = 2 To 10 If a(i) > Max Then Max = a(i) If a(i) < Min Then Min = a(i) Avg = Avg + a(i) Next i Avg = Avg / 10 Print Print "Max="; Max; " Min="; Min; " Avg="; Avg End Sub E.2 Private Sub Form_Click() Dim a a = Array(56, 78, 98, 88, 76, 78) For i = 0 To 5 Print String(a(i) \ 5, "◆"); a(i) Print Next i End Sub E.3 Dim a%(19) Private Sub Command1_Click() Picture1.Cls For i = 0 To 19 a(i) = Int(Rnd * 101) Picture1.Print a(i); " "; If (i + 1) Mod 4 = 0 Then Picture1.Print Next i End Sub Private Sub Command2_Click() Picture2.Cls Dim s(5 To 9) For i = 0 To 19 k = a(i) \ 10 Select Case k Case 0 To 5 s(5) = s(5) + 1 Case 9 To 10 '90~100分的人数 s(9) = s(9) + 1 Case 6 To 8 ' 存放其他三个分数段的下标有规律,根据K获得 s(k) = s(k) + 1 End Select Next i For i = 5 To 9 If s(i) <> 0 Then Picture2.Print "s("; i; ")的人数有 "; Format(s(i), "0"); "个" Next i End Sub E.4 Private Sub Command1_Click() Picture1.Cls Dim d%(1 To 10) For i3 = 1 To 10 Randomize d(i3) = Int(Rnd * 91 + 10) Next i3 For i = 1 To 10 For j = 1 To 10 - i If d(j) < d(j + 1) Then t = d(j): d(j) = d(j + 1): d(j + 1) = t End If Next j Next i For i = 1 To 10: Picture1.Print d(i); If i Mod 5 = 0 Then Picture1.Print Next i End Sub E.5 Dim a%(3, 3), b%(3, 3) Private Sub Form_Load() For i = 0 To 3 For j = 0 To 3 a(i, j) = Int(Rnd * 36 + 35) b(i, j) = Int(Rnd * 41 + 100) Next j Next i End Sub Private Sub Command1_Click() Picture1.Cls For i = 0 To 3 For j = 0 To i Picture1.Print a(i, j); " "; Next j Picture1.Print Next i End Sub Private Sub Command2_Click() Picture2.Cls For i = 0 To 3 For j = i To 3 Picture2.Print Tab(j * 6); b(i, j); Next j Picture2.Print Next i End Sub Private Sub Command3_Click() Picture3.Cls sa = 0 For i = 0 To 3 sa = sa + a(i, i) Next i sb = 0 For i = 0 To 3 sb = sb + b(i, 3 - i) Next i Picture3.Print "A数组主对角线元素和为:"; sa Picture3.Print "B数组副对角线元素和为:"; sb End Sub E.6 Private Sub Form_Click() n = InputBox("输入n值") ReDim a6%(n + 1, n + 1) a6(0, 0) = 1: a6(1, 1) = 1: a6(1, 0) = 1 For i = 2 To n + 1 For j = 2 To i a6(i, j) = a6(i - 1, j - 1) + a6(i - 1, j) Picture1.Print a6(i, j); ""; Next j Picture1.Print Next End Sub E.7 Private Sub Form_Load() List1.Clear List1.AddItem "大学计算机基础" List1.AddItem "C/C++程序设计" List1.AddItem "VB程序设计" List1.AddItem "Web程序设计" List1.AddItem "多媒体技术与应用" List1.AddItem "数据库技术与应用" List1.AddItem "网络技术与应用" List1.AddItem "硬件技术基础" List1.AddItem "软件技术技术基础" End Sub Private Sub List1_Click() If List2.ListCount >= 5 Then MsgBox ("超过5门课程,不能再选") Exit Sub Else List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If End Sub E.8 Sub Combo1_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 48 To 57, 13 Case Else KeyAscii = 0 End Select If KeyAscii = 13 Then Combo1.AddItem Combo1.Text Combo1.Text = "" End If End Sub Private Sub Command1_Click() Dim min%, max% min = Val(Combo1.List(0)) max = Val(Combo1.List(0)) imin = 0 imax = 0 For i = 1 To Combo1.ListCount - 1 If Val(Combo1.List(i)) > max Then imax = i max = Combo1.List(i) ElseIf Val(Combo1.List(i)) < min Then imin = i min = Combo1.List(i) End If Next i t = Combo1.List(0) Combo1.List(0) = Combo1.List(imin) Combo1.List(imin) = t t = Combo1.List(Combo1.ListCount - 1) Combo1.List(Combo1.ListCount - 1) = Combo1.List(imax) Combo1.List(imax) = t End Sub E.9 Private Sub Form_Click() For i = 0 To Screen.FontCount - 1 If Asc(Left(Screen.Fonts(i), 1)) < 0 Then Picture1.Print Screen.Fonts(i) Picture2.FontName = Screen.Fonts(i) Picture2.Print "商丘师范学院" End If Next i End Sub E.10 Private Type clerk number As String * 3 name As String * 5 salary As Integer End Type Dim a(0 To 4) As clerk, n% Private Sub Command1_Click() If n >= 5 Then MsgBox ("输入人数超过数组声明的个数") Else With a(n) .number = Text1 .name = Text2 .salary = Text3 Picture1.Print a(n).number, a(n).name, a(n).salary Print End With n = n + 1 Text1 = "" Text2 = "" Text3 = "" End If End Sub Private Sub Command2_Click() Dim t As clerk, i%, j% For i = 0 To n - 1 For j = i To n - 1 If a(i).salary < a(j + 1).salary Then t = a(i): a(i) = a(j + 1): a(j + 1) = t End If Next j Next i Picture1.Cls Picture1.Print "工号 姓名 工资" For i = 0 To n - 1 Picture1.Print a(i).number, a(i).name, a(i).salary Print Next i End Sub 实验F F.1 Private Sub Form_Click() Dim a(1 To 10), amin, i% For i = 1 To 10
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服