收藏 分销(赏)

VB操作题答案.doc

上传人:xrp****65 文档编号:9433700 上传时间:2025-03-26 格式:DOC 页数:21 大小:230KB 下载积分:10 金币
下载 相关 举报
VB操作题答案.doc_第1页
第1页 / 共21页
VB操作题答案.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
第一次作业 Private Sub Command1_Click() Text1.Text = "欢迎你学习VB程序设计" Text1.ForeColor = vbGreen Text1.Font = "宋体" Text1.FontSize = 25 Text1.FontItalic = True Text1.FontBold = True End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Click() Text1.ForeColor = vbRed Text1.Font = "隶书" Text1.Text = "佛山大学理学院" End Sub 第二次作业(服务员密码) 1、请建立一个工程( zy02.vbp),含有1个窗体(zy02.frm),该窗体有两个标签,两个命令按钮(设置成不同的背景色),一个文本框。要求如下:1)当程序启动运行时,命令按钮不可用(变灰色),当在文本框中输入正确密码时,显示出来的是星号,(2)… 3)点击结帐按钮后,窗体所有控件消失,仅显示出标签“谢谢你,再见!”这样的服务用语。 Private Sub Command1_Click() Text1.Visible = False Label2.Visible = True Label2.Caption = "你好,你需要什么" Command2.Enabled = True End Sub Private Sub Command2_Click() Command1.Visible = False Command2.Visible = False Label1.Visible = False Label2.Caption = "谢谢你,再见!" End Sub Private Sub Form_Load() Label2.Visible = False Command1.Enabled = False Command2.Enabled = False End Sub Private Sub Text1_Change() If Text1.Text = "12345" Then Command1.Enabled = True Text1.PasswordChar = "*" End Sub 第三次 建立一个工程(zy03.vbp),含有一个窗体(zy03.frm)。请在该窗体上设计两个文本框,三个命令按钮,标题分别是减运算和除运算,退出,如图。请编写适当的程序,根据两个文本框中输入的数据(整型数据)分别进行减运算和除运算,并将运算结果(注意:除运算结果采用浮点数)用标签控件显示出来。特别要求:总是用两个文本框中输入的大数据做被减数或被除数。工程文件和窗体文件上传到你的操作题子目录下。 Private Sub Cd1_Click() Dim X%, Y%, Z% Dim P$ X = Int(Tt1.Text) Y = Int(Tt2.Text) If X > Y Then Z = X - Y Else Z = Y - X P = Str(Z) Ll2.Caption = P End Sub Private Sub Cd2_Click() Dim X%, Y%, Z# Dim P$ X = Int(Tt1.Text) Y = Int(Tt2.Text) If X > Y Then Z = X / Y Else Z = Y / X P = Str(Z) Ll2.Caption = P End Sub Private Sub Cd3_Click() Visible = False End Sub 第四次 1、建立一个工程(zy041.vbp),含有一个窗体(zy041.frm)。请在该窗体上设计三个文本框,两个命令按钮,标题分别是计算和与清除,如图。请编写两个命令按钮适当的程序,点击命令按钮计算,利用inputbox函数输入任意两个正整数,将这两个数显示在前两个文本框中,然后根据两个数的和进行判断,如果是奇数,将其放在第3个文本框中,如果是偶数,将其打印在窗体上,点击清除按钮后,清除文本框中的数和窗体上的数据。 Private Sub C1_Click() Dim x As Integer, y As Integer, z As Integer, m As Integer x = InputBox("请输入第一个正整数:", "数据输入") y = InputBox("请输入第二个正整数:", "数据输入") If x > 0 And y > 0 Then T1.Text = x T2.Text = y z = x + y m = z Mod 2 If m = 0 Then Print z Else T3.Text = z End If Else Print "输入的数据无效!请再次输入~" End If End Sub Private Sub C2_Click() T1.Text = "" T2.Text = "" T3.Text = "" Cls End Sub Private Sub Form_Load() T1.Enabled = False T2.Enabled = False T3.Enabled = False End Sub 2建立一个工程(zy042.vbp),含有一个窗体(zy042.frm)。请在该窗体上设计两个文本框,。编写窗体的单击事件过程,使得在文本框中输入任意两个正整数后点击窗体,弹出一个消息框,如图。如果选择“是”,则求出两个数的商,选择“否”,则求出两个数的余数,然后将结果(商或余数)用标签方式显示在文本框下面,形式为 您求得的结果是:(数字) Private Sub Form_Click() Dim x As Integer, y As Integer, z As Integer x = Val(T1.Text) y = Val(T2.Text) msg1 = "你选择做除法吗?" message = MsgBox(msg1, 16 + 4, "请选择") If x > 0 And y > 0 Then If message = 6 Then z = x \ y L2.Caption = "求得的结果是:" & z Else z = x Mod y L2.Caption = "求得的结果是:" & z End If Else Print "您输入的数据有误,请再输入!" End If End Sub 第五次 1、建立一个工程(zy051.vbp),含有一个窗体(zy051.frm)。请在该窗体上设计两个标签,两个文本框,一个命令按钮,如左下图。请编一帐号和密码检验程序, 要求:帐号不超过6位数字,有错,清除原内容再输入。    密码输入时(假如是ww199)在屏幕上以 “*”代替; 若密码输入错,显示一个消息框,如右下图。选择“重试”按钮,清除原内容再输入,选择“取消”按钮,停止运行。 特别提示:   标签的borderstyle属性设置成1;帐号6位,只要将文本框的MaxLength设为6 ; 在文本框的LostFocus事件中,利用数字IsNumeric函数判断是否输入的是数字;如果密码输入不对,用MsgBox函数设置密码错对话框,根据返回值处理; 清除原内容再输入的处理技巧是:文本框内容清空,并用setfocus方法使光标回到文本框里。  文本框的 密码PassWordChar设为“*” Private Sub Command1_Click() Dim I% If Text2.Text <> "sfxia" Then I = MsgBox("密码错误", 53, "输入密码") If I <> 4 Then End Else Text2.Text = "" Text2.SetFocus End If End If Print "谢谢!" End Sub Private Sub Form_Load() Text2.PasswordChar = "*" Text2.Text = "" Text1 = "" End Sub Private Sub Text1_Change() If Not IsNumeric(Text1) Then MsgBox "帐号有非数字字符错误" Text1.Text = "" Text1.SetFocus End If End Sub 2、建立一个工程(zy051.vbp),含有一个窗体(zy052.frm)。请在该窗体上设计三个横排的文本框,编写窗体的单击事件过程,使得在每个文本框中输入任意1个整数后点击窗体时,最大数在左边的文本框里。最小数在右边的文本框里,另一数在中间的文本框中。 Private Sub Form_Click() Dim a, b, c, t As Single a = Val(T1.Text) b = Val(T2.Text) c = Val(T3.Text) If a < b Then t = a a = b b = t End If If a < c Then t = c c = b b = a a = t ElseIf b < c Then t = c c = b b = t End If T1.Text = a T2.Text = b T3.Text = c End Sub 3、在窗体上设置一个文本框,编写一个窗体单击事件过程,根据文本框中输入的学生成绩利用Print函数在窗体上打印一个文字评价,规则是:90~100分,优秀,80~90分,良好,70~80分,中等;60~70分,及格;20~60分,及格;其他情况,异常。文件名分别保存为zy053.vbp,和zy053.frm Private Sub C1_Click() T1.Text = "" Cls End Sub Private Sub Form_Click() Dim s, i As Integer s = T1.Text Select Case s Case 90 To 100 Print "优秀" Case 80 To 90 Print "良好" Case 70 To 80 Print "中等" Case 60 To 70 Print "合格" Case 20 To 60 Print "不合格" Case Else Print "异常" End Select End Sub 第六次 1、建立一个工程(zy061.vbp),含有一个窗体(zy061.frm)。请在该窗体上设计一个图片框(其中放置一个小的图片),一个文本框。请编写程序来实现:当在文本框中输入任意字符(数字,字母或其他符号)后点击窗体,图片框中将显示输入字符的性质,如下图(要求:用case语句)。 Private Sub Form_Click() Dim aw As String P1.Cls aw = T1.Text Select Case aw Case "0" To "9" P1.Print aw + "是数字字符" Case "a" To "z", "A" To "Z" P1.Print aw + "是字母字符" Case Else P1.Print aw + "是其它字符" End Select End Sub 100到999之间的水仙花数 Private Sub C1_Click() Dim i, i2, i3, j, a As Integer Print "100到999之间的水仙花数" For i = 100 To 999 j = i \ 100 a = i \ 10 i2 = a - j * 10 i3 = i - a * 10 If i = j ^ 3 + i2 ^ 3 + i3 ^ 3 Then Print i Next i End Sub Private Sub C2_Click() Dim i, j, a As Integer Print "100到999之间的水仙花数" For i = 1 To 9 For j = 0 To 9 For a = 0 To 9 s = i * 100 + j * 10 + a If s = i ^ 3 + j ^ 3 + a ^ 3 Then Print s Next a Next j Next i End Sub 最大公约数和最小公倍数 Private Sub Form_Click() Dim x, y, a, s As Integer x = InputBox("请输入一个整数") y = InputBox("请输入第二个整数") a = x Do If x Mod a = 0 Then s = a If y Mod s = 0 Then Print "x和y的最大公约数是 "; s Print "x和y的最大公倍数是 "; x * y / s Exit Do End If a = a - 1 Loop While a > 0 End Sub 求出2!+3!+4!+5!的和 Private Sub Command1_Click() Sum = 0 For i = 2 To 5 s = 1 For j = 1 To i s = s * j Next j Sum = Sum + s Next i Print Sum End Sub Private Sub Form_Click() Dim i%, s%, a% Print s = 1 a = 0 For i = 2 To 5 s = s * i a = a + s Next i Print "2!+3!+4!+5!="; a End Sub 九九乘法口决表 Private Sub Form_Click() Dim i%, j%, d% For i = 1 To 9 d = -10 For j = 1 To 9 d = d + 10 Print Tab(d); i & "×" & j & "=" & i * j; Next j Next i End Sub 求解出100以内的所有素数 Private Sub Form_Click() Dim i%, j%, a%, p As Boolean Print "100以内的所有素数:" For i = 2 To 100 p = True a = Int(Sqr(i)) For j = 2 To a If i Mod j = 0 Then p = False Exit For End If Next j If p = True Then Print i Next i End Sub 第七次 1、定义一个一维数组X,将下面的10 个数字赋值到它的10个元素中,33,12,0,12,14,90,14,45,23,44。然后通过一个循环将最大元素值(即90)以及最大元素的下标值打印出来工程文件名保存为zy081.vbp Private Sub Form_Click() Dim x() Dim a As Integer x = Array(33, 12, 0, 12, 14, 90, 14, 45, 23, 44) a = x(0) y = 1 For i = 1 To 9 If a < x(i) Then a = x(i): y = i + 1 Next i Print "最大值为"; a; "其下标为"; y End Sub 2、建立含有四个命令按钮的控件数组,当单击某个命令按钮,分别显示不同的图形或结束操作。要求:命令按钮名称为CMD,标题分别为:直线,方框,椭圆,结束,工程文件名保存为zy082.vbp 界面和下图相似 Private Sub CMD_Click(Index As Integer) Select Case Index Case 0 P1.Cls P1.Line (2, 2)-(7, 7) Case 1 P1.Cls P1.Line (2, 2)-(7, 7), , BF Case 2 P1.Cls P1.Circle (5, 5), 3.5, , , , 1.4 Case Else End End Select End Sub Private Sub Form_Load() P1.Scale (0, 0)-(10, 10) End Sub 3、定义一个一维数组X,将下面的10 个数字赋值到它的10个元素中,33,12,0,12,14,90,14,45,23,44。并在窗体上打印该数组,然后采用选择排序方法按递减顺序排序该数组元素,最后再在窗体上打印该数组,工程文件名保存为zy083.vbp Private Sub Form_Click() Dim x() x = Array(33, 12, 0, 12, 14, 90, 14, 45, 23, 44) Print "原数据为:" For j = 1 To 10 Print x(j); Next j Print For s = 1 To 9 For i = s + 1 To 10 If x(s) < x(i) Then c = x(i) x(i) = x(s) x(s) = c End If Next i Next s Print "排序后为:" For j = 1 To 10 Print x(j); Next j Print End Sub 第八次 1、编写一个打印由指定符号构成的直角三角形图案的子过程DY,该过程有2个形式参数:参数S用于指定三角形的字符,参数N指定构成直角三角形图案的行数。然后编写窗体的单击事件过程,用INPUTBOX函数输入2个实参,调用子过程DY打印出图案来。工程文件名保存为zy81.vbp 界面与下图相似,(实参n=6,s=”*”) Private Sub Form_Click() Dim n As Integer Dim s As String s = InputBox("输入组成三角形的字符") n = InputBox("输入三角形图案的行数") For i = 1 To n For j = 1 To i Print s; Next j Print Next i End Sub 2、编写一个求阶乘的函数JC,然后编写窗体的单击事件过程,在其中调用函数JC,求出2!+4!+6!+8!+10!的和。工程文件名保存为zy82.vbp Private Sub Form_Click() Dim i% Sum = 0 For i = 2 To 10 Step 2 Sum = Sum + jc(i) Next i Print "阶乘 4!+6!+8!+10!= "; Sum End Sub Private Function jc(n%) s = 1 For i = 1 To n s = s * i Next i jc = s End Function 3、在窗体上建立两个命令按钮,标题分别为“传址调用实例”和“传值调用实例”;然后编写两个子过程F1和F2,这两个过程都有2个参数A、B,不同的是:F1中参数采用传址调用,F2采用传值调用,两过程功能相似,都是将两个参数相加和相乘,即 A=A+B,B=A*B,并打印A、B值;请编写两个命令按钮的事件过程,用INPUTBOX函数输入两个实参,然后分别调用F1和F2,并打印两个实参的值,注意观察其不同。工程文件名保存为zy83.vbp 界面与下图相似,(实参X=1,Y=2) Private Sub C1_Click() Dim x!, y! x = InputBox("请输入X的值") y = InputBox("请输入Y的值") Call f1(x!, y!) Print "x="; x, "y="; y End Sub Private Sub f1(a!, b!) a = a + b b = a * b Print "a="; a, "b="; b End Sub Private Sub f2(ByVal a!, ByVal b!) a = a + b b = a * b Print "a="; a, "b="; b End Sub Private Sub C2_Click() Dim x!, y! x = InputBox("请输入X的值") y = InputBox("请输入Y的值") Call f2(x!, y!) Print "x="; x, "y="; y End Sub Private Sub Form_Load() End Sub 第九次 1、如果求t1=∑ai 请编写一个函数FF,要求ai利用数组参数传递的方式与主程序交换数据,注意利用数组的上下界函数lbound(),ubound(),主程序是form-click事件,利用自然数0到9来产生一个数组,然后调用函数FF,求出并打印t1的值,工程文件名保存为zy091.vbp Private Sub Form_Click() Randomize Dim a(9) As Integer Print "数组为:" For i = LBound(a) To UBound(a) a(i) = Int(Rnd * 10) Print a(i); Next i Print Print "t1="; ff(a(), LBound(a), UBound(a)) End Sub Public Function ff(a() As Integer, d As Integer, f As Integer) Dim x As Integer x = 0 For i = LBound(a) To UBound(a) x = x + a(i) Next i ff = x End Function 2、在菜单工程中选“添加模块”产生标准模块,在其中添加一个全局过程GG,该过程有三个整型参数,其中第三个是可选参数,该过程的功能是求这些参数中的最大值,并在窗体上打印最大值(注意要用form1.print方法)。在窗体上建立两个命令按钮C1,C2,标题分别是传两个参数、传三个参数,然后在通用段定义三个模块级整型变量A%,B%,C%,再编写两个命令按钮的事件过程,在C1事件中 a=2,b=5调用GG,在C2事件中c=6调用GG,运行该程序,注意模块级变量的作用。工程文件名保存为zy092.vbp,标准模块名保存为zy092.bas Dim a%, b%, c% Private Sub C1_Click() a = 2 b = 5 Call GG(a%, b%) Print "最大值为:"; a End Sub Private Sub C2_Click() c = 6 Call GG(a%, b%, c%) Print "最大值为:"; a End Sub Private Sub Form_Load() F1.FontSize = 15 End Sub Public Sub GG(a%, b%, Optional c%) a = IIf(a > b, a, b) If Not IsMissing(c) Then a = IIf(a > c, a, c) End Sub 3、如果求t2=∏ai (连乘的意思)请编写一个过程PP,要求ai利用可变参数传递的方式与主程序交换数据,注意利用ParamArrar数组名,主程序是form-click事件,调用过程PP,传递参数2,4,6,8,9求出并打印t2的值,工程文件名保存为zy093.vbp Private Sub Form_Click() F1.FontSize = 20 Print "数组为:"; pp 2, 4, 6, 8, 9 End Sub Private Sub pp(ParamArray a()) N = 1 For Each x In a N = N * x Print x; Next x Print Print "t2="; N End Sub 4、Fibonacci数列的第一项和第二项为1,以后各项均是前两项的和,请用递归算法编写一程序,求出该数列的前N项,工程文件名保存为zy094.vbp Private Sub Form_Click() Dim n% n = InputBox("请输入N的值") For i = 1 To n Print fib(i); If i Mod 5 = 0 Then Print Next i End Sub Private Function fib(ByVal n%) If n <= 2 Then fib = 1 Exit Function Else fib = fib(n - 1) + fib(n - 2) End If End Function 第十次 1、 参照教材P278例11.1,设计一个具有算术运算及清除功能的菜单,并考虑以下四点要求。工程文件名保存为zy101.vbp ⑴ 子菜单项设置快捷键。 2)子菜单项有效控制,只有当除数不为0(即第2个文本框有值)时 “除”子菜单才有效。 3)设置子菜单项标记,即在刚完成的子菜单项前面自动打勾。 4)为“乘”和“清除”子菜单设置访问键,乘采用英文字母&mul,清除采用中文 清除(&q)。 要用common dialog 控件 Private Sub add_Click() L4.Caption = Val(T1) + Val(T2) mul.Checked = False sub1.Checked = False div.Checked = False add.Checked = True clea.Checked = False End Sub Private Sub clea_Click() T1.Text = "" T2.Text = "" L4.Caption = "" mul.Checked = False sub1.Checked = False div.Checked = False add.Checked = False clea.Checked = True End Sub Private Sub div_Click() L4.Caption = Val(T1) / Val(T2) mul.Checked = False sub1.Checked = False div.Checked = True add.Checked = False clea.Checked = False End Sub Private Sub exit_Click() End End Sub Private Sub Form_Load() Show T1.SetFocus End Sub Private Sub mul_Click() L4.Caption = Val(T1) * Val(T2) mul.Checked = True sub1.Checked = False div.Checked = False add.Checked = False clea.Checked = False End Sub Private Sub oper_Click() If Val(T2) = 0 Then div.Enabled = False Else div.Enabled = True End If End Sub Private Sub sub1_Click() L4.Caption = Val(T1) - Val(T2) mul.Checked = False sub1.Checked = True div.Checked = False add.Checked = False clea.Checked = False End Sub 2、参考教材p303的例12.1,完成对话框程序设计,建立和保存数据文件。工程名以zy102.vbp保存。 Private Sub C1_Click() Cd1.FileName = "" Cd1.Flags = 2048 Cd1.Filter = "All files|*.*|(*.exe)|*.exe|(*.txt)|*.txt|" Cd1.FilterIndex = 2 Cd1.DialogTitle = "打开文件(*.exe)" Cd1.Action = 1 If Cd1.FileName = "" Then MsgBox "No file selected", 37, "checking" Else Open Cd1.FileName For Input As #1 Do While Not EOF(1) Input #1, a$ Print a$ Loop End If End Sub Private Sub C2_Click() Cd1.CancelError = True Cd1.DefaultExt = "txt" Cd1.FileName = "1bw,txt" Cd1.Filter = "txt files(*.txt)|*.txt|all files(*.*)|*.*|" Cd1.FilterIndex = 1 Cd1.DialogTitle = "save file as(*.,txt)" Cd1.Flags = 2050 Cd1.Action = 2 End Sub 3、在窗体上设置如下图的界面,当点击命令按钮调用字体通用对话框后,选择字体名称、大小、粗斜体以及颜色等,然后将颜色应用到标签“请输入数据”的前景色,其他选择应用到文本框中的文字(注意flag 参数的设置)。工程文件名保存为zy103.vbp。 Private Sub C1_Click() Cd1.Flags = 259 Cd1.ShowFont L1.ForeColor = Cd1.Color T1.FontSize = Cd1.FontSize T1.Font = Cd1.FontName T1.FontBold = Cd1.FontBold End Sub Private Sub Form_Load() End Sub 第十一次 2、 参考教材P292的例题11.4,编写一个复杂的弹出式菜单,当在窗体上(非文本框位置)用鼠标右击时,弹出如下图1的菜单(粗体、斜体、隶书),当鼠标滑过文本框时,弹出如下图2的菜单(该菜单带有子菜单),点击这些菜单都可以改变文本框里的文字格式(提示:在菜单编辑器中设置两个一级菜单gs1,gs2。他们都设置成不可见。其中gs1下属粗体、斜体、隶书,gs2下属字号20,颜色、退出,在窗体和文本框的鼠标事件中分别弹出gs1或gs2即可)。工程文件名保存为zy111.vbp Private Sub bjs_Click() Text1.BackColor = vbGreen End Sub Private Sub ls_Click() Text1.FontName = "隶书" End Sub Private Sub qjs_Click() Text1.ForeColor = vbRed End Sub Private Sub tc_Click() End End Sub Private Sub xt_Click() Text1.FontItalic = True End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu gs1 End If End Sub Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) PopupMenu gs2 End Sub Private Sub ct_Click() Text1.FontBold = True End Sub Private Sub zh_Click() Text1.FontSize = 20 End Sub 2、设计一个最简单的画图程序。程序运行时,按住鼠标右键移动画红线,按住鼠标左键移动画蓝线。松开鼠标移动不画线,双击窗体清除图形 ,工程文件名保存为zy112.vbp Dim paint As Boolean Private Sub Form_DblClick() Cls End Sub Private Sub Form_Load() DrawWidth = 10 End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) paint = True If Button = 1 Then ForeColor = RGB(0, 0, 256) ElseIf Button = 2 Then ForeColor = RGB(256, 0, 0) End If End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If paint = True Then PSet (X, Y) End If End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) paint = False End Sub 3、设计一个简单的动画程序。材料有:
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服