VB实验任务7答案(1)
- 格式:doc
- 大小:66.50 KB
- 文档页数:3
第二部分综合练习理论练习一一单选1-5 CDCCB 640ABDCD 11-15 CCBBD 16-20 DBCBA二多选1 ABCE 2CE 3 BCE 4 ADE 5 ABCD6ABCDE 7ACD8ABCDE 9 ABC 10ABCDE三判断1-5 X V X V V6-10 V X V V V四填空1 x=int(Rnd*101)End If avg=s/82 i=l to 10Right(str(i),l)或Right(str(i mod 10))3 m*n/GCD(m,n)GCD(b, a mod b)4 Exit For i & “是素数”Next i五阅读程序1-4 DDCB六程序设计1Option Base 1Private Sub Form_click()Dim a( 10)Ciscreatedata a()sort a()Fori= ITo 10Print a(i);Next iEnd SubSub createdata(a())Fori = ITo 10a(i) = Int(Rnd * 101)Next iEnd SubSub sort(a())For i = 1 To 9Forj = 1 To 10-iIf a(j) > a(j + l)Thent = a(j): a(j) = a(j + 1): a(j + 1) = tEnd IfNext jNext iEnd Sub2Private Type ksno As String * 8Bscj As IntegerSjcj As IntegerEnd TypeDim student As ksPrivate Sub Form_Load()Open "c:\ksxx.dat" For Random As#l Len = Len(student)End SubPrivate Sub cmdadd_Click()student.no = Text 1.Textstudent.Bscj = Val(Text2.Text)student.Sjcj = Vai (Tex t3.Text)lastrecord = LOF( 1) / Len(student) + 1Put # 1, lastrecord, studentTextl.Text =Text2.Text = ””Text3.Text ="End SubPrivate Sub cmdquit_Click()Close #1EndEnd Sub1-5 CABCD理论练习二6-10 ABCCD 11-15 BBBAB1 CD2 AD3CE4BC6BCDE7CDE8ABCDE9 ABD三判断二多选1-5 X X X X V 6-10 V V V X X 16-20 DBAAC5 AD10ACDE1n-l 或者Sqr (n)02X y3 1 to 102*i-14Button=2start=True 五阅读程序1-5DBDAB六程序设计1Private Sub Form_click()四填空japan = 47528china = 22257n = 0 True — (x, y)Do While china <= japanchina = china * 1.098japan = japan * 1.028 n= n + 1LoopPrint n & ”年之后,中国GDP将超过日本”End Sub•VB6中的Split函数,其功能足将一字符巾用分界符分割为一字符串数组。
实验教材实验-1:单项选择题:AACCC DCBBC2:填空题:(1).bas(2).vbp, ,frm(3)视图工具箱(4)对象(5)属性对象事件方法(6)Windows(7)事件行为(8)窗体模块实验二1:单项选择题:ADCCA BAB DC BBCBC BAB DC 2:基本运算题:(1)27(2) 3.33333333333333(3) 3(4)0(5)-3(6) 2(7)ab33(8)类型不匹配(9) 3(10)AB3实验三1:单项选择题:BCBDC2:填空题:(1)300(2)321456(3)Shanghai(4) 6 7 6(5)True(6)2+3=5(7)”area=” 12.56(8)VISUAL实验四1:单项选择题:CAACA2:填空题:(1)7(2) 3 5(3)输入的数小于0(4) 3(5)False(6)2010 is not leap year.试验五1:单项选择题:ACCAB ACCCB2:填空题:(1)9(2)@n ② 1(3)®Len(a)②n\2 ③Mid(a,(n-i+l),l)④Mid(a,(n-i+l),l)(4)@n Mod 3=1 And n Mod 5=1 And n Mod 7=1 ©While CountN<5(5)Mid(cl,l,i)实验六1:单项选择题:DB DCD ACADD2:填空题:(1)30(2) 3(3)①a(2)②a(3)③a(l)(4)①1 ②2 ③a(i)=a(6-i)(5)①i+j ②0 ③a(i,j)(6)©Print ②k ③a(k,j)=a(j,k)④a(k,j);实验七1:单项选择题:ABBACB2:填空题:(1)15(2)①Preserve a(n+l) ②a(i+l)=a(i) ③Exit For ④a(i+l)=m⑤0 to n+1 (或LBound(a) to UBound(a))(3)d,c,b,a实验八1:单项选择题:CADBD CACB2:填空题:(1)a=9 b=4(2)362516941(2)①a (2)UBound(b)③实验九1:单项选择题:DDDBB CAB CAD2:填空题:(1)①p=p*n ②Fac(n) ③ 10人-6(2)①Max=x ②Max=y ③p ④Max(x,a(n))(3)①number(i) ②n as integer (3)number=number+7* 10A(i-1)实验十1:单项选择题:DC BAB C实验十一1:单项选择题:DADBBB BDD实验十二1:单项选择题:CBCBC CBDAD DBC2:填空题:(1)①Label 1. FondName=Combo 1 .TextCombo2.Text ③ Label 1 .FontBold=True ④ Label 1 .FondItalic=True⑤ Label 1 .FondSize=Combo3.Text(2)①Listl.Text ©List 1 .RemoveitemListl.ListindexListl .Additem List2.Text ④ List2.RemoveItem实验十三实验十四1:单项选择题:DACDAABC2:填空题:(1)ShowFont(2)打开另存为颜色字体打印机帮助(3)工程部件Microsoft Common Dialog Control 6.0(4 ) ShowColor Action=3实验十五1:单项选择题:CB BCB B BAD2:填空题:(1)内建菜单弹出菜单(2)Click(3)工具(4)代码窗口Click(5)相同不同实验十六1:单项选择题:B CAAC ACDDB DCC2:填空题:(1)①Open "c:\studl.txt” For Output As #1Textl.Text=”End”White #l,Textl.Text(2)①For Input ②For Output As #2 ③Not Eof(l)Input #l,strl ⑤ Close #1,#2 ⑥Kill(“c:\old.txt”(3)①For Output ②For Input As #2。
实验日期_____________________实验名称:实验一常用标准控件一【实验目的与要求】1.掌握Visual Basic的启动与退出。
2.熟悉Visual Basic的集成开发环境。
3.掌握在窗体中放置控件的方法。
4.掌握在“属性窗口”中设置控件属性的方法。
5.掌握在“代码编辑器”窗口中输入程序代码的方法。
6.掌握工具栏上启动按钮、结束按钮的使用方法。
7.掌握标签、文本框、命令按钮、列表框等控件的使用方法。
【实验内容与步骤】实验1.1.1 标签的使用(一)1.题目与要求:在名称为Form1、标题为“标签”的窗体上画一个名称为Label1的标签,并设置适当属性以满足以下要求:1)标签的内容为“计算机等级考试”;2)标签可根据显示内容自动调整其大小;3)标签带有边框,且标签内容显示为三号字。
2.实验步骤1)界面设置:在名称为Form1的窗体上放置一个标签控件Label1;2)属性设置(请将表格补充完整)表1.1.1 对象属性文件名为sjt1.frm。
实验1.1.2 标签的使用(二)1.在名称为Form1的窗体上画一个名称为 Label1的标签,标签的宽和高分别为2000、300,有边框,并利用属性窗口设置适当的属性,使其居中显示“等级考试”,并使标签的外观如图所示。
2.属性设置(请将表格补充完整)表1.1.2 对象属性sjt2.frm。
实验1.1.3 文本框的使用1.题目与要求:在名称为Form1的窗体上画两个文本框,名称分别为T1、T2,初始情况下都没有内容。
请编写适当的事件过程,使得在运行时,在T1中输入的任何字符,立即显示在T2中。
程序中不得使用任何变量。
2.实验步骤1)界面设置:在名称为Form1的窗体上放置两个文本框;2)属性设置表1.1.3 对象属性Private Sub T1_Change()T2.Text=T1.Text (T2=T1)End Sub3)保存文件:存盘时必须存放在C:\VB\Sy01文件夹下,工程文件名为sjt3.vbp,窗体文件名为sjt3.frm。
实验任务6参考答案课程名称:程序设计基础VB实验名称——实验六Visual Basic程序设计基础(2)一、实验目的:1.掌握顺序结构的程序设计方法2.掌握常用的接收和输出数据的方法3.进一步掌握常量、变量、运算符、表达式和常用函数的使用二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):实验1注意:类型符省略为%——Integer,&——Long,!——Single,#——Double,@——Currency,结果转换方向整型→长整型→单精度型→双精度型→货币型第(1)组总结◆加法和减法的情况相同◆通常相同类型的操作数进行运算,结果同操作数本身,但是除法/比较特殊,除单精度数据除外(Single),相同数据进行除运算结果是Double◆不同类型的操作数进行运算,结果通常按占用内存字节数多的方向转换(规则:转换方向整型→长整型→单精度型→双精度型→货币型);也有特例:单精度与长整型运算结果为Double,单精度与货币型相乘运算结果为Double, 双精度与货币型相乘运算结果为Double,单精度与整型相除运算结果为Single第(2)组Dim a As Integer, b As Single, c As Singlea < 2 = 3 b^2 - 4*a*c > 0 "ABC">"ACB" "ABC" = "abc" 200 + True"123ab" & 246#1/1/2007# - #1/1/2000# "30" + 140 "123" & 456 "123" + 456实验2请先手工写出以下程序段的运行结果,然后使用立即窗口或在窗体的Click事件过程中分别添加如下的程序段,运行验证,进一步理解和掌握运算符和表达式的应用。
实验报告参考答案(本部)实验一VB集成开发环境实验内容(3):四、设计流程①界面设计:在窗体上画一个标签。
②属性设置:标签的width设为2000,height设为300。
有边框是BordStyle设为1,背景透明是BackStyle设为0。
显示“等级考试”是将caption设为“等级考试”,居中是将Alignment 设为2。
③代码设计:无五、关键代码(注意:解题方法有多种,其它方法只要能完成实验任务也是正确的)无六、调试和测试结果至少要写测试结果正确,如果写了调试中出现的典型问题及解决方法,分数给高些实验二简单的VB程序设计实验内容(3):四、设计流程①界面设计:在窗体上画一个标签、一个命令按钮。
②属性设置:固定边框是BordStyle设为1,背景透明是BackStyle设为0。
③代码设计:分别在3个事件过程form_load(),form_click(),Cmd1_click()中编程。
其中图片从网上下载,与工程文件、窗体文件保存在同一目录,代码中使用相对路径app.path。
五、关键代码(注意:解题方法有多种,其它方法只要能完成实验任务也是正确的)Private Sub Form_Load()Form1.Picture = LoadPicture(App.Path + "\tu.jpg")Form1.Caption = "我的变化"End SubPrivate Sub Form_Click()LBL1.Top = 0LBL1.Left = 0End SubPrivate Sub Cmd1_Click()Cmd1.Height = 1500Cmd1.Width = 2000End Sub六、调试和测试结果至少要写测试结果正确,如果写了调试中出现的典型问题及解决方法,分数给高些实验三数据类型及其运算四、设计流程①界面设计:在窗体上画1个文本框、1个标签、6个命令按钮。
实验一:一、选择1.D2.D3.B4.A5.B6.C7.CD8.D9.D 10. BC11. A 12.D 13. D 14. C 15. A二、填空1.windows2. 中断3.工具箱4.代码5.分类6.form2.show7. 出现语法错误8. 错9. 事件10. 面向对象11.工程文件结构12. 工程13. 设计程序代码14. 双击窗体15. C:\Program Files\Microsoft Visual Studio\VB98 或者VB的安装文件夹16.属性17.方法18.font 19. form_load() 20.对象实验二:一、选择1.B2.C3. B4.C5.C6.C7.B8.B9.D 10. A11. C 12.C 13. C 14. B 15. A16.C 17.B 18.D 19.C 20. C二、填空1. Form_Click()2. Interval、50003..vbp .frm4.left top Height、Width twip5.picture6.load7. locked8. font Alignment9. GotFocus() LostFocus() 10. 属性窗口程序代码实验三:一、选择1.A2.BC3.BC4.A5.A6.A7.BCD8.D9.B 10. B11. B二、判断题不合法的变量:3. 4. 5. 6. 8. 10. 11. 14.15. 16.三、1、abs(x+y)2. (3+x*y)^23. (-b+sqr(b^2-4*a*c))/(2*a)4.sin(30*3.14/180)+exp(2)四、1. int(rnd* 71+20) 或int(rnd* 71)+202. x<0 and y>0 or x>0 and y<0 或者x*y<03. x mod 3=0 or x mod 7=0或x/3=x\3 or x/7=x\74. x>=10 and x<205. x>="A" and x<="Z"6. left(s,3)实验四:一、选择1.C2.D3. C4.D5.A6.D7.B8.B9.A 10. C二、填空1. 48.71E-01, -4.87122. 关系、逻辑、算术3. 900,100,mid(s,2,1)4.m、1,2,3 、print m & "月是第二季度"、end select 三、1. X=4 y=132. 10实验五一、选择B C B A C二、填空(1)for x=2 to 10s*(1-1/x)(2) 1 t>1E-6(3) j t(4) 5 11 5实验六一、选择B C C C D D D D C A实验七一、选择1C 2C 3D 4A 5B 6D 7AB 8A 9A 10A 二、填空(1)n!(2)1+1+2+3+4+……+n(3)n是否是素数(4)冒泡排序(5)递归调用产生斐波那契数列(6)求最大公约数和最小公倍数第八页编程2-1Private Sub Command1_Click()Label3 = Val(Text1) * Val(Text2)End SubPrivate Sub Command2_Click()Label3 = Val(Text1) / Val(Text2)End Sub2-2Private Sub Command1_Click()Picture1.Picture = LoadPicture("d:\tu1.jpg") End SubPrivate Sub Command2_Click()Picture1.Picture = LoadPicture("d:\tu2.jpg") End SubPrivate Sub Command3_Click()Picture1.Visible = FalseEnd Sub2-5Private Sub Form_Load()Image1.Picture = LoadPicture("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Sunset.jpg")End SubPrivate Sub Command1_Click()Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Image1_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer()Image1.Left = Int(Rnd * (Form1.ScaleWidth - Image1.Width)) Image1.Top = Int(Rnd * (Form1.ScaleHeight - Image1.Height)) End Sub第11页编程2-3Private Sub Command1_Click()Dim x%, y%x = Int(Rnd * 900 + 100)Print "产生的随机数:"; xy = (x Mod 10) * 100 + (x \ 10 Mod 10) * 10 + x \ 100Print "反序数:"; Format(y, "000")End SubPrivate Sub Command2_Click()Dim x%, y As Stringx = Int(Rnd * 900 + 100)Print "产生的随机数:"; xy = Trim(Str(x))Print "反序数:" & Right(y, 1) & Mid(y, 2, 1) & Left(y, 1)End SubPrivate Sub Form_Load()End Sub2-4Private Sub Command1_Click()Dim m%, n%Randomizem = Val(Text1): n = Val(Text2)x = Int(Rnd * (n - m + 1) + m)y = Int(Rnd * (n - m + 1) + m)z = Int(Rnd * (n - m + 1) + m)Label3 = m & "到" & n & "之间的3个随机数为: " & x & Space(3) & y & Space(3) & zEnd SubPrivate Sub Form_Load()End Sub2-5Private Sub Command1_Click()Label1.Caption = DateEnd SubPrivate Sub Command2_Click()Label2.Caption = TimeEnd SubPrivate Sub Command3_Click()Label3.Caption = WeekdayName(Weekday(Date)) End SubPrivate Sub Form_Load()End Sub第十五页2-1方法一Private Sub Command1_Click()Dim x!, a!, aa%, b!, bb%, c!, cc$x = Val(Text1)a = x * 180 / 3.14aa = Int(a)b = (a - aa) * 60bb = Int(b)c = (b - bb) * 60cc = Format(c, "#.000")Label2 = "弧度" & Text1 & "转换为" & aa & "度" & bb & "分" & cc & "秒"End Sub方法二Private Sub Command1_Click()x = InputBox("请输入弧度数值", "弧度转换", 0)xx = Val(x)a = x * 180 / 3.14aa = Int(a)b = (a - aa) * 60bb = Int(b)c = (b - bb) * 60cc = Format(c, "#.000")MsgBox "弧度" & x & "转换为" & aa & "度" & bb & "分" & cc & "秒"End Sub2-2Private Sub Command1_Click()Dim x%x = Val(Text1)If x / 400 = x \ 400 Or x Mod 4 = 0 And x Mod 100 <> 0 ThenLabel2 = Text1 & "年是闰年"ElseLabel2 = Text1 & "年不是闰年"End IfEnd Sub2-3方法二Private Sub Command1_Click()Dim x%, y%, z%x = InputBox("输入第一个数")y = InputBox("输入第二个数") z = InputBox("输入第三个数") 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 Print x, y, zEnd SubPrivate Sub Form_Load()End Sub方法一Private Sub Command1_Click() Dim x%, y%, z%x = Val(Text1)y = Val(Text2)z = Val(Text3)If x > y Then t = x: x = y: y = t If y > z Thent = y: y = z: z = tIf x > y Thent = x: x = y: y = tEnd IfLabel1 = x & Space(5) & y & Space(5) & z End Sub2-4方法一Private Sub Command1_Click()x = Val(InputBox("请输入上网时间:"))If x <> -1 ThenSelect Case xCase Is < 10fei = 25Case 10 To 50fei = x * 2Case 50 To 100fei = x * 1.5Case Is >= 100fei = x * 1End SelectMsgBox "上网费用为:" & fei & "元"End IfPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()End Sub方法二Private Sub Command1_Click()Dox = Val(InputBox("请输入上网时间:", , -1)) If x <> -1 ThenSelect Case xCase Is < 10fei = 25Case 10 To 50fei = x * 2Case 50 To 100fei = x * 1.5Case Is >= 100fei = x * 1End Selectzongfei = zongfei & Space(3) & fei MsgBox zongfei, , "上网费用为" ElseExit DoEnd IfLoopEnd SubPrivate Sub Command2_Click() EndEnd SubPrivate Sub Form_Load()End Sub2-5第18页2-3Private Sub Command1_Click()n = 0DoIf n Mod 2 = 1 And n Mod 3 = 2 And n Mod 5 = 4 And n Mod 6 = 5 And n Mod 7 = 0 Then Exit Don = n + 1LoopPrint nEnd Sub]2-5Private Sub Command1_Click()x = Val(Text1)y = x * 4n = 0Do While x <= yx = x * (1 + 0.1)n = n + 1Print xLoopPrint x, nEnd Sub2-6Private Sub Command1_Click()n = Val(InputBox("输入计算到第几项:", , 0)) For i = 1 To ns = s + (-1) ^ (i + 1) * iNextPrint n, sEnd SubPrivate Sub Form_Load()-8End Sub2-8Private Sub Command1_Click()Dim s As Double, pi As Doublen = 1: s = 0Do While 1 / (2 * n - 1) >= 0.0001s = s + (-1) ^ (n + 1) * 1 / (2 * n - 1)n = n + 1Looppi = 4 * sPrint piEnd Sub2-9Private Sub Command1_Click()For n = 100 To 999k = Trim(Str(n))If n = Left(k, 1) ^ 3 + Mid(k, 2, 1) ^ 3 + Right(k, 1) ^ 3 Then Print nNextEnd Sub2-11Private Sub Command1_Click()s = 0: Max = 0: Min = 1000For i = 1 To 20Randomizex = Int(Rnd * 50 + 51)Print x;If x > Max Then Max = xIf x < Min Then Min = xs = s + xNext iaver = s / 20PrintPrint "max="; Max, "min="; Min, "aver="; aver End SubPrivate Sub Form_Load()End Sub。
7-1Public Function sh (ByValsh = (Exp(x) - Exp(-x)) / 2 ‘在函数过程里一定要对函数名sh进行赋值,但sh后不能加(x)。
End FunctionPrivate Sub command1_Click()Dim x As Single, y As Single ‘注意实参x的数据类型一定要和形参的数据类型一致,在这里都是Single。
x = Val(Text1)y = x ^ 2 + sh(x) ‘函数的调用。
因为是函数,所以一定放在表达式中;因为是调用,所以要加(x),把实参x的值通过调用传递到函数过程里,使形参x有值。
这里实参名和形参名可以不一样,但数据类型一定要匹配;这里实参个数和形参个数一定要相同。
Print yEnd Sub7-2Private Function passed(ByVal x As Single) As String ‘注意函数名passed的数据类型是String,因为要返回“及格”等字符串。
If x >= 0 And x < 60 Thenpassed = "……" ‘在函数过程里一定要对函数名赋值。
ElseIf 条件Thenpassed = "……" ‘在函数过程里一定要对函数名赋值。
End IfEnd FunctionPrivate Sub Command1_Click()Dim x As Single, str1 As String, x1 As Stringx1 = Text1If IsNumeric(x1) Then ‘思考这里是否可以用Text1?如果用Text1,x1是否需要设置?x = Val(x1)str1 = passed(……) ‘调用Function函数passed得到返回值。
Text2 =……‘在Text2里输出结果。
ElseText2 = "数据错误"End IfEnd Sub7-3Private Sub Command1_Click()Dim a As Single, k As Integer, b As BooleanFor a = 1 To 1000b = ……‘调用Function函数过程,a是实参,b是函数名带回的返回值,是一个逻辑型的数据If b ThenPicture1.Print ……‘输出a和a*a的值k = ……‘统计个数,即k值+1End IfNext aPicture1.Print "共有" & k & "个守形数"End SubPrivate Function AutoMorpthic(a As Single) As Boolean ‘返回值是逻辑型If Val(Right(CStr(a * a), Len(CStr(a)))) = a ThenAutoMorpthic = ……‘给函数名赋值End IfEnd Function7-4Private Sub Form_Click() ‘本题采用一重循环编程,二重循环会产生死机现象。
实验报告课程名称_程序设计基础Visual Basic_ 班级______ ______姓名_____ ____实验一 VB环境和创建一个简单的VB程序一.实验目的:1.了解VB系统对计算机软件、硬件的要求。
2.掌握启动和退出VB的方法。
3.了解和使用VB集成开发环境各窗口、菜单的一般功能。
4.熟悉建立、编辑、运行、保存一个简单的VB应用程序的全过程。
5.了解文本框、标签框、命令按钮的构造及其属性、事件和方法。
二.实验内容:1.设计一个简单的应用程序,要求在窗体上画一个文本框、一个标签和两个命令按钮编一程序,并把命令按钮分别设置为”显示”和”清除”。
程序运行后,单击”显示”按钮,在文本框中输出一行信息;单击”清除”按钮,则清除文本框中的内容,运行界面如图1.1所示。
图1.1 实验1-1 运行界面三.实验结果:对象属性设置对象属性属性值说明caption 我的第一个vb程序窗体Form1caption 请输入姓名标签Label1text ““文本框Text1caption 显示命令按钮Command1caption 清除命令按钮Command2四.实验思考:1.标签label控件设置的属性代码有哪些?Label1.Caption=“请输入姓名”Label1.fontsize=24Label1.fontbold=True2.两个按钮所使用的是什么事件?代码分别是什么?Private Sub Command1_Click()Text1.text=“姓名”实验二简单程序设计数据类型及常用内部函数的简单应用一.实验目的:1.掌握Visual Basic数据类型的基本概念。
2.掌握用Visual Basic的各种运算符及表达式。
3.学习使用Visual Basic内部函数和数据输入、输出方法。
4.掌握命令按钮、文本框和标签。
5.设计顺序程序。
二.实验内容:1.编写一个华氏温度和摄氏温度之间的转换程序,如图2-2所示,要求用inputbox函数输入华氏温度,用msgbox输出转换后的摄氏温度。
学院专业(班级)姓名学号任课教师目录实验一 Visual Basic编程环境和控件 (1)实验二窗体及基本控件使用 (7)实验三顺序结构程序设计 (14)实验四选择结构程序设计 (20)实验五选择结构程序设计(续) (25)实验六循环结构程序设计 (33)实验七循环结构程序设计(续) (38)实验八常用控件 (42)实验九常用控件(续) (51)实验十数组 (56)实验十一数组(续) (65)实验十二顺序文件 (70)实验十三过程 (77)实验十四过程(续) (84)实验十五菜单及通用对话框 (90)实验十六随机文件(选作) (94)附录:VB统考编程题(精选) (98)期末自测题(A卷) (108)期末自测题(B卷) (113)实验报告的整理与编写上机实验结束后,编写实验报告是软件工程的要求,也是培养科学作风的重要途径,实验报告的主要内容包括:(1)实验目的实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题,从而进一步提高分析问题和解决问题的能力。
因此,当我们着手做一个实验的时候,必须明确实验的目的,以保证达到课程所指定的基本要求。
在写实验报告时,要进一步确认是否达到了预期的目的。
(2)实验内容实验的目的是要通过解决一些具体问题来达到的。
在书中,每一部分都安排了多个实验题目,根据教学安排、进度、实验条件、可提供的机时、学生的基础等因素,可以选择其中的几个或全部。
因此,在实验报告中,实验内容是指本次实验中实际完成的内容。
在每一个实验题目中,一般都提出一些具体要求,其中有些具体要求是为了达到实验目的而提出的,不仅有具体的实验题目,还应包括具体要求。
(3)程序设计说明包括算法设计思路,必要的流程图,界面设计说明、使用模块及变量的说明等。
(4)源程序代码Visual Basic的源程序包括界面设计和代码。
程序设计的产品是程序,它应与算法或流程图相一致,要与用户界面设计一致。
第1章VB集成环境与VB概述一、选择题第2章常用控件与界面设计一、选择题第3章数据、表达式与简单程序设计一、选择题第4章选择分支与循环一、选择题二、填空题1.5 7 13 12 14 112. 3 1 5 3 4 13. right(a$,i)4. 45. 6-i6. 6 11 10 21 13 347. 5 14 138. Is else end select9. a*(2*i-1)*(-1)*x/(2*i+2) i+110. 0 n-111. 1 t*(-1)*x^2/((2*k-1)*(2*k)) Abs(t)>eps12. count1=count+1 count1>013. sum=0 sum+j st & k & “+”14. 9 x三、编程题1.Option ExplicitPrivate Sub Command1_Click()Dim s As String, i As Integer, ch As String * 1Dim a As Integer, b As Integer, c As Integers = Text1.TextFor i = 1 To Len(s)ch = Mid(s, i, 1)If (ch >= "0" And ch <= "9") Thena = a + 1ElseIf (ch >= "A" And ch <= "Z") Or (ch >= "a" And ch <= "z") Thenb = b + 1Elsec = c + 1End IfNextPrint "数字个数"; aPrint "字符个数"; bPrint "其他字符"; cEnd Sub2.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, n As IntegerDim a As Integer, b As Integer, c As IntegerFor i = 1 To 50n = Int(Rnd * 90 + 10)Print n;If i Mod 10 = 0 Then PrintIf n <= 40 Thena = a + 1ElseIf n <= 70 Thenb = b + 1Elsec = c + 1End IfNext iPrint "小于等于40的个数:"; aPrint "大于40小于等于70的个数:"; bPrint "大于70的个数:"; cEnd Sub3.Option ExplicitPrivate Sub Command1_Click()Dim x As SingleDim t As Long, n As Integerx = 1t = 1n = 1Do While 1 / t >= 0.0001x = x + 1 / tn = n + 1t = t * nLoopPrint xEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim k As Integer, sum As Integer, i As Integerk = InputBox("请输入一个正整数k", "输入框")For i = 1 To Len(CStr(k))sum = sum + Mid(k, i, 1)Next iMsgBox k & "的各位数字之和" & sumEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, iSum As LongFor i = 1 To 20iSum = iSum + i ^ 4NextPrint iSumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As IntegerDim sum1 As Integer, sum2 As LongDim i As Integer, j As IntegerFor a = 2 To 3000sum1 = 0sum2 = 0For i = 1 To a \ 2If a Mod i = 0 Then sum1 = sum1 + i Next ib = sum1For j = 1 To b \ 2If b Mod j = 0 Then sum2 = sum2 + j Next jIf sum2 = a And a < b Then Print a, bNextEnd Sub7.Private Sub Command1_Click() '打印菱形Dim i As Integer, j As IntegerClsFor i = 1 To 6 '打印菱形上边6行Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iFor i = 5 To 1 Step -1 '打印下半部分Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iEnd Sub8.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, j As Integer, iSum As IntegerPrint "连续和为1250的正整数是:"For i = 1 To 500iSum = 0For j = i To 500iSum = iSum + jIf iSum >= 1250 Then Exit ForNextIf iSum = 1250 ThenPrint i; " ~"; jEnd IfNextEnd Sub9.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As Integer, c As IntegerFor a = 1 To 50For b = a To 50For c = b To 50If a ^ 2 + b ^ 2 = c ^ 2 ThenPrint a, b, cEnd IfNext cNext bNext aEnd Sub第5章数组一、选择题二、填空题1.Variant2.ReDim A(N)A(1)If M < A(I) Then M = A(I)3.Int(26 * Rnd) + 65Chr(t)i + 1 To 10A(i) > A(j)4.InStr(s, ",")Right(s, Len(s) - n)s5.T – 1I + 16.k = 6 - i – jmax = m7.j = 48j = j-38.i + 1i = i + 19. 23710. 3103511.numi + 1a(j)=temp三、编程题1.Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(10) As IntegerDim i As Integer, max As IntegerFor i = 1 To 10a(i) = Int(90 * Rnd) + 10Print a(i);Next iPrinti = 1max = 0Do While i <= 10If a(i) Mod 3 = 0 ThenIf a(i) > max Thenmax = a(i)End IfEnd Ifi = i + 1LoopIf max = 0 ThenPrint "无要找的数"ElsePrint max & "是最大的能被3整除的数"End IfEnd Sub2.Option ExplicitOption Base 1Private Sub Command1_Click()Dim A() As IntegerDim I As Integer, m As IntegerDim K As IntegerReDim A(10)Print "原数组:";For I = 1 To 10A(I) = IPrint A(I);Next IPrintm = InputBox("????m")K = 9 + mReDim Preserve A(K)For I = 11 To KA(I) = A(I - 10)Next IFor I = 1 To 10A(I) = A(I + m - 1)Next IPrint "平移后的数组:";For I = 1 To 10Print A(I);Next IPrintEnd Sub3.Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, J As Integer, K As IntegerDim a() As Integer, n As Integer, p As Integer Dim s As String, Flag As Booleanp = 1For K = 10 To 100I = 1Do While I <= 10 And Not FlagJ = 1Do While J <= 10 And Not Flagn = I ^ 2 + J ^ 2If n = K ThenFlag = TrueReDim Preserve a(p)a(p) = Kp = p + 1s = I & Str(J) & Str(K)List1.AddItem sEnd IfJ = J + 1LoopI = I + 1LoopFlag = FalseNext KEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim A(10) As IntegerDim B(10) As Integer, S As StringDim I As Integer, J As Integer, X As IntegerA(1) = Int(90 * Rnd) + 10S = A(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = A(J) Then Exit ForNext JIf J = I ThenA(I) = XS = S & " " & A(I)Exit DoEnd IfLoopNext IText1.Text = SB(1) = Int(90 * Rnd) + 10S = B(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = B(J) Then Exit ForNext JIf J = I ThenB(I) = XS = S & " " & B(I)Exit DoEnd IfLoopNext IText2.Text = SS = ""For I = 1 To 10For J = 1 To 10If A(I) = B(J) ThenS = S & " " & A(I)End IfNext JNext IIf S = "" ThenText3.Text = "没有重复"ElseText3.Text = SEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim I As Integer, J As IntegerDim a() As Integer, K As Integer, Sum As Integer K = Val(Text1.Text)I = 1DoJ = K Mod 10ReDim Preserve a(I)a(I) = JSum = Sum + JK = K \ 10I = I + 1Loop Until K = 0Text2.Text = SumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a(100, 2) As Integer, K As IntegerDim I As Integer, J As IntegerDim M As Integer, N As IntegerK = 1For I = 1 To 99For J = 1 To 99If I > J ThenM = I - JN = I + JIf Sqr(M) = Int(Sqr(M)) And Sqr(N) = Int(Sqr(N)) ThenList1.AddItem I & " " & Ja(K, 1) = Ia(K, 2) = JK = K + 1End IfEnd IfNext JNext IEnd Sub7.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsPicture3.ClsRandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, max As IntegerDim b(5) As Integer, c(5) As IntegerFor i = 1 To 5max = a(i, 1)For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)End Ifb(i) = maxIf max = a(i, j) Then c(i) = jNext jNext iFor i = 1 To 5Picture2.Print b(i)Picture3.Print c(i)NextEnd Sub8.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsLabel3.Caption = "最大值?"Label4.Caption = "最小值?"RandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click() '交换并显示Dim i As Integer, j As Integer, t As IntegerDim maxi As Integer, mini As Integer, max As Integer, min As Integer max = 10: min = 99For i = 1 To 5For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)maxi = iEnd IfIf min > a(i, j) Thenmin = a(i, j)mini = iEnd IfNextNextIf maxi <> mini ThenFor j = 1 To 5t = a(maxi, j)a(maxi, j) = a(mini, j)a(mini, j) = tNext jFor i = 1 To 5For j = 1 To 5Picture2.Print a(i, j);NextPicture2.PrintNextLabel3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"ElsePicture2.Print "最小值和最大值在一行"Label3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"End IfEnd SubPrivate Sub Form_click()Picture1.ClsPicture2.ClsLabel3.Caption = ""Label4.Caption = ""End Sub9.Option Base 1Private Sub Command1_Click()Dim i As Integer, j As Integer, n As Integer, a() As Integern = InputBox("请输入一个奇数N:")If n Mod 2 = 0 ThenMsgBox ("请重新输入奇数!")End IfReDim a(n, n)For i = 1 To nFor j = 1 To nIf i = (n + 1) / 2 And j = (n + 1) / 2 Thena(i, j) = -1ElseIf i = j Or i + j = n + 1 Thena(i, j) = 1Elsea(i, j) = 0End IfNext jFor i = 1 To nFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd Sub10.Option Base 1Dim a(10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerPrint "生成的数组:"RandomizeFor i = 1 To 10a(i) = Int(Rnd * 90) + 10Print a(i);NextPrintEnd SubPrivate Sub Command2_Click()Dim i As Integerx = InputBox("请输入要删除的数组元素下标:") Print "删除第" & x & "个数组元素后:"For i = x + 1 To 10a(i - 1) = a(i)NextFor i = 1 To 9Print a(i);NextEnd Sub11.Option ExplicitDim a(20) As Integer, i As IntegerPrivate Sub Command1_Click()RandomizeFor i = 1 To 20a(i) = Int(Rnd * 9) + 1Text1 = Text1 & a(i) & " "If i = 10 Then Text1 = Text1 & vbCrLf NextPrivate Sub Command2_Click()Dim j As Integer, k As Integer, b(20) As Boolean 'b(2)用来记录a(2)是否和前面的数相同,相同记为true,不再统计For i = 1 To 20k = 1If b(i) = False Then '如果b(i)=False,表示a(i)没有被统计过For j = i + 1 To 20If a(i) = a(j) Thenk = k + 1b(j) = TrueEnd IfNext jList1.AddItem a(i) & "出现次数:" & kEnd IfNextEnd SubPrivate Sub Command3_Click()Text1 = ""List1.ClearEnd Sub第6章过程一、选择题二、填空题1. 6 .2. 4 20 1013.第一行是 6 26 、第三行是-2 984.第一行10 6 、第二行 5 -55.第一行 6 5 、第三行8 76.第一行11 、第二行77.Fun(i)Fun=p8.第一行 4 、第二行2079.第一行29 、第二行28.710.J=kb( ) As Integerb( k-1) =b(k)i11.第一行gec 、第二行ge 、第四行 312.p1 = True And p2 = True 或p1 And p2= isp(i)Isp = Truem Mod i = 013.Convert(st)Len(s)"A" To "F"k = k + p * h14.isualVisualVisu15.s + an + 1x As Single, n As Integer 、p * (x + i) / ((2 * i - 1) * i * x)16.27617.Left(s, 1)Mid(s, i - 1, 1) = Mid(s, i, 1)n = 1c & CStr(n)18.chtempTrue19.val(mid(s,i,j))n as longprime=True20.A(2,2)的值是 6 ,A(3,1) 的值是8 ;A(4,2) 的值是 321.Option1(i)X22.1023.第一行7 6 ,第二行16 16 ,第三行,4524.第一行15 1 ,第二行35 3 ,第三行,50三、改错题1、Option Base 1Private Sub Command1_Click()Dim A() As Integer, I As Integer, J As Integer, Logic As Boolean Dim K As IntegerReDim A(1)A(1) = 50————————'K=1For I = 51 To 149K = 1 '位置错Logic = FalseCall Sub1(A, I, Logic)If Logic ThenK = K + 1ReDim A(K) 'ReDim Preserve A(K)A(K) = IEnd IfNext IFor I = 1 To UBound(A)Text1 = Text1 & Str$(A(I))If I Mod 5 = 0 Then Text1 = Text1 & vbCrLfNext IEnd SubPrivate Sub Sub1(A() As Integer, N As Integer, F As Boolean) Dim I As Integer, J As Integer, Ub As IntegerUb = UBound(A)For I = 1 To UbFor J = 2 To A(I)If A(I) Mod J = 0 And N Mod J = 0 ThenExit For 'Exit SubEnd IfNext JF = TrueNext IEnd Sub2、Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, Flg As Boolean, S1 As Integer, S2 As IntegerDim J As Integer, K As Integer, P() As IntegerReDim P(1)P(1) = 2For I = 3 To 150 Step 2For J = 2 To Sqr(I)If I Mod J = 0 Then Exit ForNext JIf J > Sqr(I) ThenReDim Preserve P(UBound(P) + 1)P(UBound(P) + 1) = I 'P(UBound(P)) = IEnd IfNext IFor I = 80 To 125If fun(I, P, S1, S2) Then 'If fun(I, P, S1, S2)Text1 = Text1 & Str$(I) & "=" & Str(S1) & "*" & Str$(S2) & vbCrLf End IfNext IEnd SubPrivate Function fun(N As Integer, P() As Integer, S1 As Integer, S2 As Integer) As Boolean Dim I As Integer, J As IntegerFor I = 1 To UBound(P)For J = 1 To UBound(P) - 1If N = P(I) * P(J) ThenS1 = P(I)S2 = P(J)'fun = TrueExit Functionfun = True '位置错End IfNext JNext IEnd Function3、Option ExplicitPrivate Sub Get_Chess(Chess() As Integer, idx As Integer, Over As Integer) 'ByVal idx As IntegerDim Ub As Integer, Counter As Integer, K As IntegerUb = UBound(Chess)Chess(idx) = 0Counter = 1K = 0 '位置错Do Until Counter = Ub - 1Do Until K = 2idx = idx + 1If idx > Ub Then idx = 1K = K + Chess(idx)LoopChess(idx) = 0Counter = Counter + 1LoopFor Over = 1 To UbIf Chess(Over) <> 0 Then Exit ForNext OverEnd SubPrivate Sub Command1_Click()Dim Chess(32) As Integer, I As Integer, J As IntegerDim K As Integer, idx As IntegerFor I = 1 To 32For J = 1 To 32Chess(J) = 1Next JCall Get_Chess(Chess, I, K)If K = 23 ThenText1 = "从第" & Str$(I) & "号棋子开始取"Exit ForEnd IfNext IEnd Sub4、Option ExplicitPrivate Sub Form_Click()Dim S As String, Flg As BooleanDoS = InputBox("输入一个自然数")If S = "" Or Not IsNumeric(S) ThenMsgBox "请重新输入", 48 + vbOKOnlyElseExit DoEnd IfLoopjudge(S, Flg) ' Call judge(S, Flg) 或judge S, Flg If Flg ThenPrint S; "是回文数"ElsePrint S; "不是回文数"End IfEnd SubPrivate Sub judge(Ch As String, F As Boolean)Dim L As Integer, I As IntegerL = Len(Ch)F = True ' F = FalseFor I = 1 To LIf Mid$(Ch, I, 1) <> Mid$(Ch, L + 1 - I, 1) Then Exit Sub Next IF = False ' F = TrueEnd Sub四、编程题1.Private Function Prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iPrime = TrueEnd Function'方法一Private Sub Command1_Click()Dim m As Integer, i As Integerm = InputBox("请输入一个大于2 的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub If Prime(2) And Prime(m - 2) ThenPrint m & "=2 +" & m - 2ElseDoi = i + 1If Prime(2 * i + 1) And Prime(m - (2 * i + 1)) ThenPrint m & "=" & 2 * i + 1 & "+" & m - (2 * i + 1)Exit DoEnd IfLoop While 2 * i + 1 < m - (2 * i + 1)End If'方法二Private Sub Command2_Click()Dim m As Integer, i As Integer, p() As Integer, n As IntegerDim flg As Booleanm = InputBox("请输入大于2的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub ReDim p(1)p(1) = 2n = 1For i = 3 To m - 2 Step 2If Prime(i) Thenn = n + 1ReDim Preserve p(n)p(n) = iEnd IfNext iFor i = 1 To nFor j = 1 To nIf p(i) + p(j) = m ThenPrint m & "=" & p(i) & "+" & p(j)flg = TrueExit ForEnd IfNext jIf flg = True Then Exit ForNext iEnd Sub2.Private Function Fact(a As Integer) As LongIf a = 0 Or a = 1 ThenFact = 1ElseFact = a * Fact(a - 1)End IfEnd FunctionPrivate Sub Command1_Click()Dim n As Integer, m As Integer, result As Singlen = Val(Text1.Text)m = Val(Text2.Text)If n >= m Thenresult = Fact(n) / Fact(m) / Fact(n - m)Text3.Text = resultMsgBox "要求n>=m,请重新输入"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub3.Private Function Istgs(n As Integer) As BooleanDim s As String, L As IntegerL = Len(CStr(n))s = CStr(n ^ 2)If Right(s, L) = n Then Istgs = TrueEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 10 To 300If Istgs(n) Then List1.AddItem n & "^2" & "=" & n ^ 2 Next nEnd SubPrivate Sub Command2_Click()EndEnd Sub4.Private Sub Command1_Click()Dim a(3, 4) As Integer, i As Integer, j As IntegerDim m As Integer, mj As IntegerRandomizeFor i = 1 To 3For j = 1 To 4a(i, j) = Int(900 * Rnd + 100)Print a(i, j);Next jPrintNext iFor i = 1 To 3m = 0Call max(a, i, m, mj)Print "第" & i & "行最大值为" & m & ",在第" & mj & "列"Next iEnd SubPrivate Sub max(a() As Integer, i As Integer, m As Integer, maxj As Integer) Dim j As Integerm = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > m Thenm = a(i, j)maxj = jEnd IfNext jEnd SubPrivate Sub Command2_Click()EndEnd Sub5.Private Function Judge(n As Integer) As BooleanDim sum As Integersum = yz(n)If yz(sum) = 2 * n Then Judge = TrueEnd FunctionPrivate Function yz(n As Integer) As IntegerDim i As IntegerFor i = 1 To nIf n Mod i = 0 Then yz = yz + iNext iEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 1 To 500If Judge(n) Then Print nNext nEnd SubPrivate Sub Command2_Click()EndEnd Sub6.Private Sub Command1_Click()Dim n As Integer, j As Integer, flg As BooleanFor n = 2 To 30flg = FalseFor j = 2 To nIf pfs(j) And n Mod j = 0 Thenflg = TrueExit ForEnd IfNext jIf flg = False Then Print n;Next nEnd SubPrivate Function pfs(n As Integer) As BooleanIf Sqr(n) = Int(Sqr(n)) Then pfs = TrueEnd Function7.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd Function'判断某数是否为回文数Private Function Hws(n As Long) As BooleanDim i As Integer, s As String, L As Integers = CStr(n): L = Len(s)For i = 1 To Len(s) / 2If Mid(s, i, 1) <> Mid(s, L + 1 - i, 1) Then Exit Function Next iHws = TrueEnd FunctionPrivate Sub Command1_Click()Dim x As Long, t As Longx = InputBox("请输入一个正整数:")t = xDo While Hws(t) = FalsePrint t; "+"; fxs(t); "="; t + fxs(t)t = t + fxs(t)LoopEnd Sub8.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Sub Command1_Click()Dim n As Long, t As LongFor n = 1 To 999t = fxs(n)If t ^ 2 = fxs(n ^ 2) And n Mod 10 <> 0 And n < t ThenList1.AddItem n & " " & tList2.AddItem n & "^2" & "=" & n ^ 2 & " " & t & "^2" & "=" & t ^ 2 End IfNext nEnd Sub9.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Function Judge(n As Integer) As BooleanDim i As Integer, L As Integer, a(9) As Integer, t As IntegerIf Sqr(n) = Int(Sqr(n)) ThenL = Len(CStr(n))For i = 1 To Lt = Mid(CStr(n), i, 1)a(t) = 1Next iFor i = 0 To 9Sum = Sum + a(i)Next iIf Sum = L - 1 Then Judge = TrueEnd IfEnd FunctionPrivate Sub Command1_Click()Dim a As IntegerFor a = 300 To 2000If Judge(a) Then List1.AddItem aNext aEnd Sub10.Private Function F(n As Integer) As BooleanDim i As IntegerFor i = 1 To Len(CStr(n))If i Mod 2 = 1 And Mid(CStr(n), i, 1) Mod 2 <> 1 Then Exit FunctionIf i Mod 2 = 0 And Mid(CStr(n), i, 1) Mod 2 <> 0 Then Exit Function Next iF = TrueEnd FunctionPrivate Sub Command1_Click()Dim a(8) As Integer, i As Integer, j As IntegerRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tList1.AddItem a(i)If F(a(i)) Then List2.AddItem a(i)End IfLoop Until i = 8End SubPrivate Sub Command2_Click()List1.ClearList2.ClearEnd SubPrivate Sub CmdEnd_Click()EndEnd Sub11.Private Function prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iprime = TrueEnd FunctionPrivate Function nx(n As Integer) As IntegerDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext inx = Val(s)End FunctionPrivate Sub Command1_Click()Dim n As Integer, t As IntegerFor n = 100 To 900t = nx(n)If prime(n) And prime(t) And n < t ThenList1.AddItem "(" & n & "," & t & ")"End IfNext nEnd SubPrivate Sub Command2_Click()List1.ClearEnd Sub12.Option Base 1Dim a(4, 5) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As IntegerRandomizeFor i = 1 To 4For j = 1 To 5a(i, j) = Int(Rnd * 90 + 10)Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Fp(a() As Integer, i As Integer, maxj As Integer, Flg As Boolean) Dim max As Integer, j As Integer, t As Integermax = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > max Thenmax = a(i, j)maxj = jEnd IfNext jFor t = 1 To UBound(a, 1)If a(t, maxj) > max ThenFlg = FalseExit SubEnd IfNextFlg = TrueEnd SubPrivate Sub Command2_Click()Dim i As Integer, m As Integer, mj As Integer, f As BooleanFor i = 1 To 4f = Falsem = 0: mj = 0Call Fp(a, i, mj, f)If f = True ThenText1.Text = Text1.Text & "(" & i & "," & mj & "):" & a(i, mj) & vbCrLf End IfNext iEnd SubPrivate Sub Command3_Click()Picture1.ClsText1 = ""End Sub13.Private Sub Command1_Click()Dim a(30) As Integer, i As Integer, j As IntegerDim Flag As BooleanRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tText1.Text = Text1.Text + Str(a(i))If i Mod 10 = 0 Then Text1.Text = Text1.Text + vbCrLfIf IsDown(a(i)) ThenList1.AddItem a(i)Flag = TrueEnd IfEnd IfLoop Until i = 30If Flag = False Then List1.AddItem "无降序数"End SubPrivate Function IsDown(n As Integer) As BooleanDim i As Integer, S As StringS = CStr(n)For i = 1 To Len(S) - 1If Mid(S, i, 1) < Mid(S, i + 1, 1) Then Exit FunctionNext iIsDown = TrueEnd FunctionPrivate Sub Command2_Click()List1.ClearText1 = ""End Sub14.Option ExplicitPrivate Sub CmdFind_Click()Dim i As Integer, p As String, st As String, st1 As StringFor i = 100 To 999st = ""If csum(i) = zyz(i, st) Thenp = CStr(i)st1 = Left(p, 1) & "+" & Mid(p, 2, 1) & "+" & Right(p, 1)List1.AddItem i & ": " & st1 & "=" & Left(st, Len(st) - 1)End IfNext iIf List1.ListCount = 0 ThenList1.AddItem "无满足要求的数!"End IfEnd SubPrivate Function csum(m As Integer) As Integer '求各位数字之和Dim i As Integer, p As Stringp = CStr(m)For i = 1 To Len(p)csum = csum + Val(Mid(p, i, 1))Next iEnd FunctionPrivate Function zyz(ByVal m As Integer, st As String) As Integer '求所有质因子之和Dim i As Integeri = 2DoIf m Mod i = 0 Thenzyz = zyz + ist = st & i & "+"m = m \ iElsei = i + 1End IfLoop Until m = 1End Function15.Private Sub Command1_Click()Dim k As Integer, i As Integerk = InputBox("请输入要求的数列项数:")List1.AddItem "共输出前" & k & "项数列"For i = 0 To kList1.AddItem p(i)NextEnd SubPrivate Function p(n As Integer) As IntegerIf n = 0 Or n = 1 Or n = 2 Thenp = 1Elsep = p(n - 2) + p(n - 3)End IfEnd Function第7章文件一、选择题二、填空题1.顺序文件和随机文件2. EOF3. Write和Print4.返回或设置当前的工作目录5.5116.文件的写语句7.Append8.LOF9.关闭10.Pattern11.【1】For Input 【2】#2 【3】Not EOF(2) 12.【1】”END”【2】Text1.Text 或者Text113.【1】Input 【2】ch 【3】Len(mystr) 14.【1】Number 【2】s15.【1】For Append As #1 【2】"end" 【3】ct,nt 16.【1】For Input 【2】For Output As #2 【3】Not EOF(1) 【4】Line Input #1,str1 【5】Close #1,#2 【6】Kill “C:\old.txt 17.【1】Open "C:StuData.txt" For OutPut As #1 【2】Write 18.【1】"C:\data.txt" 【2】#1, a(i) 【3】k>1 And a(k-1)>b 【4】k = k -1三、综合题1.Option Base 1Dim arr(100) As IntegerPrivate Sub Command1_Click()Dim i As IntegerOpen "c:\in18.txt" For Input As #6For i = 1 To 100Input #6, arr(i)Next iClose #6End SubPrivate Sub Command2_Click()Dim i As IntegerText1.Text = ""Open "c:\out18.txt" For Output As #8For i = 1 To 100If arr(i) Mod 2 <> 0 ThenText1.Text = Text1.Text & Str(arr(i))Write #8, arr(i)End IfNext iClose #8End Sub2.Dim str As StringDim n As LongPrivate Sub Command1_Click()CommonDialog1.Filter = "文本文件(*.txt)|*.txt|All Files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.Action = 1Open CommonDialog1.FileName For Input As #2n = LOF(2)str = Input(n, #2)Text1.Text = strClose #2End SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 1 To Len(str)If Asc(Mid(str, i, 1)) <= Asc("Z") And Asc(Mid(str, i, 1)) >= Asc("A") Then Mid(str, i, 1) = LCase(Mid(str, i, 1))ElseIf Asc(Mid(str, i, 1)) <= Asc("z") And Asc(Mid(str, i, 1)) >= Asc("a") Then Mid(str, i, 1) = UCase(Mid(str, i, 1))End IfNext iText1.Text = strEnd SubPrivate Sub Command3_Click()Open "D:\out.txt" For Output As #3Print #3, strClose #3End Sub第8章程序调试一.选择题二.改错题1.a(i)=int(Rnd*19)+1 →a(i)=int(rnd*20)+1For l=1 to a(i)+1 →for i=2 to a(i)+1If l=a(i) →if l <> a(i)K=k+1 →k=k-1。
竭诚为您提供优质文档/双击可除vb实验报告标准答案篇一:Vb郭贤海实验报告及答案实验1.1设计一个程序,程序运行的初始界面如图1-1所示。
当单击“显示”按钮时,在文本框中显示“欢迎使用Vb!”(图1-1);当单击“清除”按钮时,清除文本框内的文本;当单击“退出”按钮时,结束程序运行。
图1-1程序运行初始界面图1-2单击“显示”按钮后的程序界面实验1.2设计一个程序,程序运行的初始界面如图1-3所示,其中“显示”按钮为不可用。
同时要求:(1)当单击“改变文字”按钮时,在左边标签文字内容改为“你好,张三!”,同时“改变文字”按钮变为不可用(图1-4);(2)当单击“隐藏”按钮时,将左边标签设为不可见,同时“隐藏”按钮变为不可用,“显示”按钮变为可用(图1-5);(3)当单击“显示”按钮时,重新显示左边标签,同时“隐藏”按钮变为可用,“显示”按钮变为不可用(图1-4)。
图1-3第1题的程序运行初始界面图1-4单击“改变文字”按钮后的程序界面图1-5单击“隐藏”按钮后的程序界面四、实验原始记录实验1.1程序的界面设计。
(可以是多张主要的图。
下面的图要替换成你们自己设计的图。
如何取图?设计好界面,按“printscreensysRq”键,打开画图软件,单击“编辑|粘贴”命令,利用菜单栏下方的“选定”功能,选中窗体,按“ctrl+c”键,然后选中下面的实验样例图,按“ctrl+V”键,替换掉)程序代码。
privatesubcommand1_click()Text1.Text="欢迎使用Vb!"endsubprivatesubcommand2_click()Text1.Text=""endsubprivatesubcommand3_click()endendsub实验1.2程序的界面设计。
(可以是多张主要的图。
下面的图要替换成你们自己设计的图)程序代码。
privatesubcommand1_click()Label1.Visible=Truecommand2.enabled=Truecommand1.enabled=Falseendsubprivatesubcommand2_click()Label1.Visible=Falsecomma nd2.enabled=Falsecommand1.enabled=Trueendsub privatesubcommand3_click()Label1.caption="你好,张三!"command3.enabled=Falseendsub五、实验结果及分析实验1.1运行结果。
VB学习与实验指导测试题参考答案第一章一、选择题1 A2 B3 D4 D5 B6 B7 C8 A9 C 10 A 11 A 12 C 13 C 14 D 15 C16 A 17 B 18 D二、填空题1 事件2 对象按钮3 工程4 视图属性窗口5 窗体编辑器第二章一、选择题1 A2 C3 C4 D5 C6 D7 A二、填空题1 类2 事件 34 5 6 Name(名称)第三章一、选择题1 A2 A3 CD4 C5 A6 C7 C8 A9 D 10 D 11 C 12 C 13 A 14 D 15 D 16 A 17 C 18 B 19 B 20 D 21 B 22 D 23 A 24 B 25 C26 C 27 B 28 D 29 B二、填空题1 (a*sin(30*3.14/180)+c*log(b))/((abs(d)+1)*(e+f))+12 mod3 x*y>0 and x=fix(x) and y=fix(y)4 y mod 4=0 and y mod 100<>0 or y mod 400=05 int(rnd*90)+106 0 “”7 空格8 6,845.309 (1) 8 (2) 1(3) abcd (4) 出错(类型不匹配)(5) false (6) 29/06/2008 (7) I like VB (8) 4(9) 4 4 (10) 3 4(11) 10 -10 (12) -1(13) aa (14) 3(15) 0 (16) 1(17) C (18) 5(19) 4 (20) 34.54 (21) 中国(22) 上海(23) VISUAL BASIC (24) visual basic10 (1) x<-100 or x>100 (2) a=int(a) and b=int(b) anda*b>0(3) x<=y or x>=z (4) a>0 and fix(a)<>a (5) a = 0 Xor b = 0 (6) len(s)<10(7) UCase(s) = s(8) Left(s, 1) = "a" And Right(s, 1) = "a"(9) instr(s,"a")<>0(10) Trim(s) = s(11) Date() = #8/8/2008#(12) Weekday(date) = 2第四章一、简单填空1 Randomize2 N=int(rnd*90)+103 M=(int(rnd*91)+10)/104 Exit for5 Exit do二、读程序写结果1 150 122 22 23 -13 5 3 04 20 40 60三、程序填空1Mid(s,I,1)c>=”A” and c<=”Z”c>=”a” and c<=”z”c>=”0” and c<=”9”212n\2n mod i=0sum+in=sum31000Cstr(n)Cstr(m)Right(s2,len(s1))=s141002002n-1exit forcount+1cound mod 5=0print5Sum=1A*x*x/((2*n-1)*(2*n))Sum+aAbs(a)<=1e-7第五章一、选择题1 B2 C3 C4 A5 C6 A7 D8 B9 C 10 A11 B 12 D 13 A二、读程序写结果1 120 362 10 31 73 26 14 26三、程序填空1 A(I,j); Picture1.print A(I,1)1J“第” & I & “行最大数是” & maxdata & “,第” maxj & “列”2 Text1.text & a(i) KPreserve b(k)B(k)=a(i)3 Sqr(n-m)=int(sqr(n-m)) Redim preserve b(k)NA(m) & b(m)4 Int(rnd*51)+501B(i)+1第六章一、判断题1 √2 √3 ×4 ×5 √6 √7 √8 √9 √10 √11 ×12 √13 √14 ×15 √16 √17 √18 √19 √20 √二、选择题1 A2 C3 A4 A5 A6 D7 B8A四、读程序写结果1 x=2 y=2 m=22 94 5 9 273 50 264 5 64 55 7 14 11 22 15 306 29 29 37 1225第七章一、选择题1 B2 B3 D4 C5 B6 D7 A8 D9 B 10 B 11 C 12 A 13 B 14 C 15 D 16 C 17 A 18 A 19 B 20 C21 B 22 C 23 B 24 B 25 B二、简单填空1 LargeChange2 Timer.Enabled = False3 AddItem4 格式5 Picture6 Enabled7 Load8 SetFocus9 MultiLine10 ms三、程序填空1 InputboxTimer1_timer Text2.textLabel3.caption=””2 Form_load List1_dblclick List1.listindex List2_dblclick List2.listindex3 (3)TextList1.textRemoveitem 10-2*i-1第八章一、选择题1 D2 B3 C45 C二、简单填空1 popupmenu23 visible4 连接符-5第九章一、选择题1 C2 C3 B4 B5 B6 B7 C8 B二、简单填空1 Eof2 记录字节3 大小4 复制5 Drive三、程序填空1 For inputDo until eof(1) Line input #1,data2 Input as #1#1,strClose #1综合测试题一一、选择题1 A2 C3 D4 B5 D6 A7 A8 C9 A 10 C二、填空1 Int(x)=x and int(y)=y and x*y<02 YAW oureelcome3 5 15 1514 11 19 135 412 196 n nn onn7 until abs(t)< =eps (-1)^nt*x*x/n8 K=1c(k)=pP=””List1.additem c(i)9 (Byval a as integer) as boolean i>int(a/2)judge(p)10 FalseText1.text=text1.text & “(“ & m & “,” & n & ”)” & vbcrlf M=kN mod i=0综合测试题二一、选择题1 A2 B3 C4 A5 C6 C7 C8 B9 C 10 A二、填空1 (Int(51*rnd)+100)/1002 23456 67 8103 W WW 84 2 33 74 4 125 GCD(21,3)=3 GCD(45,24)=36 47 23 117 Instr(s,”,”) Mid(s,n+1) A(3)=val(s)8 m+val(mid(cstr(n),i,1))mand total(p2) mod 6=0 “(“ & p1 & “,” & p2 & “)”9 (a,t1,t2)m=a(i,1)a(I,j)>m then m=a(I,j) s=small(1):m=large(1)10 Call eu(n+2,f2)Whle i<nN mod j=0 and i mod j=0P=p+1下篇实验教程实验2 Visual Basic 变量、函数与表达式的使用实验2-1 算术运算符的使用13178332262-2-22007-10-153 2.857143 2.85714285714286实验2-2 字符运算符的使用20071020071020172007-10-10102007-10-20出错,类型不匹配实验2-3 关系运算符的使用FalseFalseFalseFalseFalseFalseFalseTrueFalseTrue实验2-4 逻辑运算符的使用TrueTrueFalseTrueFalseFalseTrueTrueFalse5-59实验2-5 常用函数的使用3.14 3.147.389056098930651 -1 .999999998205103 4-1 1 0.70554755825 251250 0A a65 9748 688 -98 -89 -9aaa 4.5 aaa4.516 5Visua 6.0sua Basic Basic 6.0abcde EFGBasic Basic BasicVisual Basic 6.0 Basic8 8aaa dd2011-3-152011-3-15 14:35:5215320113001.731.731.7317.32E-010173%实验3 算法基础及程序控制结构实验3-1 三个数的交换A=CC=BB=TBC实验3-2 求周长和面积Const PI=3.14159262*PI*RPI*R*RPicture1.ClsFormat(L, ".00")Format(M, ".00")实验3-3 求分段函数的值x=Val(Text1.Text)y=1+Sin(x)y=Log(x)Text1.Text = ""Text2.Text = ""实验3-4 求一元二次方程的根Val(Text2.Text)Val(Text3.Text)b ^ 2 - 4 * a * c"x1=" & (-b + Sqr(delt)) / (2 * a)"x2=" & (-b - Sqr(delt)) / (2 * a)Text2.Text = ""Text3.Text = ""End实验3-5 判断素数N Mod k = 0k=NN Mod i=0k=2实验3-6 求最大公约数和最小公倍数M<NL=ML=NM Mod k = 0 And N Mod k = 0Text3.Text = kExit ForM>NL=ML=Nk Mod M = 0 And k Mod N = 0Text4.Text = kExit For实验3-7 判断升序数、降序数CStr(N)Len(S) – 1Mid(S, k, 1) >= Mid(S, k + 1, 1)k = Len(S)N = Val(Text1.Text)S = CStr(N)For k = 1 To Len(S) - 1If Mid(S, k, 1) <= Mid(S, k + 1, 1) Then Exit For Next kk = Len(S)实验3-8 判断回文数Len(s)\2-1Mid(S, k, 1) <> Mid(S, Len(S) - k + 1, 1)k = Len(S) \ 2Mid(S, k, 1) + S1S = S1实验3-9 求级数的值Val(Text1.Text)1x ^ ns * nt / s <= 10 ^ -6Text2.Text = y实验3-10 查找数字串并求和Text1.Text = ""Text2.Text = ""List1.ClearText1.TextFalseWhile Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Flag = Truek = k * 10 + Mid(s, i, 1)i = i + 1Flag = Truesum + kText2.Text = sum实验3-11 随机产生20个奇数Int((99 - 10 + 1) * Rnd) + 10a Mod 2 = 1n Mod 5 = 0Picture1.Cls实验3-12 加密解密Chr(Asc("a") + (Asc(c) - Asc("a") + 3) Mod 26)c = Chr(Asc("A") + (Asc(c) - Asc("A") + 3) Mod 26) c & s2Text2.TextLen(s2)Mid(s2, i, 1)c = Chr(Asc("a") + (Asc(c) - Asc("a") + 23) Mod 26) c = Chr(Asc("A") + (Asc(c) - Asc("A") + 23) Mod 26) c & s1s1Text1.Text = ""Text2.Text = ""实验3-13 统计单词个数Text1.TextMid(s, i, 1) <> " " And i <= Len(s)i = i + 1Mid(s, start, i - start)nText1.Text = ""List1.Clear实验4 数组的使用实验4-1 一维数组的产生及输出i = 1 To 20Int((9 - 0 + 1) * Rnd + 0)i = 1 To 20Print a(i);Printi = 1 To 20Picture1.Print a(i);If i Mod 5 = 0 Then Picture1.Printi = 1 To 20Text1.Text & Space(2) & a(i)If i Mod 5 = 0 Then Text1.Text = Text1.Text & vbCrLf v In aIf i Mod 5 = 0 Then Picture2.Print实验4-2 选手得分Int((50 - 10 + 1) * Rnd + 10) / 10i = 1 To 6sum = sum + score(i)max = score(1)min = score(1)score(i) > max Then max = score(i)score(i) < min Then min = score(i)(sum - max - min) / 4实验4-3 产生10个互不相同的整数Int((999 - 10 + 1) * Rnd + 10)t Mod 10 = 5Then Exit Forn= n + 1a(i) = tFor i = 1 To 10Print a(i);If i Mod 5 = 0 Then PrintNext i实验4-4 统计数字出现的次数IsNumeric(S) = FalseExit SubLen(S)c >= "0" And c <= "9"A(c) = A(c) + 1A(k) <> 0m = m + 1实验4-5 排序1 To 10Int((99 - 10 + 1) * Rnd + 10)Text1.Text & A(n) & " "1 To 9i + 1 To 10A(i) > A(j)T = A(j)A(j) = A(i)A(i) = T1 To 910 - iA(j) > A(j + 1)T = A(j + 1)A(j + 1) = A(j)A(j) = T1 To 10Text3.Text = Text3.Text & A(i) & " "10T = A(i)ji - 1k + 11 To 10Text4.Text = Text4.Text & A(i) & " "实验4-6 二维数组的产生及输出1 To 41 To 5Int((9 - 0 + 1) * Rnd + 0)1 To 41 To 5Print A(i, j);Print1 To 41 To 5Picture1.Print A(i, j);Picture1.Print1 To 41 To 5Text1.Text = Text1.Text & A(i, j) & " "Text1.Text = Text1.Text & vbCrLf实验4-6 查找最大和最小元素及其位置1 To 31 To 4A(i, j) = Int((99 - 10 + 1) * Rnd + 10)Picture1.Print A(i, j);Picture1.PrintA(1, 1), 1, 1A(1, 1), 1, 1A(i, j)ijA(i, j) < minA(i, j)ij"最大元素" & "A(" & maxi & "," & maxj & ")=" & max "最小元素" & "A(" & mini & "," & minj & ")=" & min实验4-7 矩阵转置Dim A() As Integer"请输入N的值"ReDim A(N, N) As IntegerFor i = 1 To NFor j = 1 To NA(i, j) = Int((99 - 10 + 1) * Rnd + 10)Text1.Text = Text1.Text & A(i, j) & " "Next jText1.Text = Text1.Text & vbCrLfNext it = A(i, j)A(i, j) = A(j, i)A(j, i) = tFor i = 1 To NFor j = 1 To NText2.Text = Text2.Text & A(i, j) & " "Next jText2.Text = Text2.Text & vbCrLfNext i实验5 过程实验5-1 孪生素数和降序素数Dim i As IntegerFor i = 2 To N - 1If N Mod i = 0 Then Exit FunctionNext iPrime = TrueDim a As IntegerDim b As Integera = N \ 10b = N Mod 10If a > b ThenDecNumber = TrueElseDecNumber = FalseEnd If10 To 100Prime(i) = True And Prime(i + 2) = TrueList2.AddItem i & "和" & i + 2DecNumber(i) = True And Prime(i) = TrueList3.AddItem i实验5-2 求多项式和k = 1a = f(x, k)S + ak = k + 1Single As SingleDim i As Integer, a As Singlea = (x + 1) / xFor i = 2 To ka = a * (x + i) / ((2 * i - 1) * x)Next ia实验5-3 进制转换Asc(C) - Asc("A") + 10Left(S, k - 1)Mid(S, k + 1)Change(Mid(S2, i, 1)) * N ^ (0 - i)T1 + T2Tran(8, S)Tran(16, S)Not (C >= "0" And C <= "7" Or C >= "A" And C <= "F" Or C = ".")实验5-4 Armstrong数i As Long, a As Long, b As LongCombo1.Text实验5-5Option Base 1Dim a(5) As IntegerDim b(5) As Integerb(i) = i * i + 1Text2.Text = Text2.Text & b(i) & " "1 To 51 To 5Gcd(a(i), b(j)) = 1Gcd = KExit For实验5-6Create(a)Output(a)Sort(a)Output(a)GetMaxMin(a, MaxData, MinData)MaxDataMinDataAverage(a)Int((99 - 10 + 1) * Rnd + 10)1 To UBound(a)a(i);a(i) > a(j)t = a(j)a(j) = a(i)a(i) = t2 To UBound(a)a(i) > MM = a(i)a(i) < NN = a(i)s = s + a(i)Average = s / UBound(a)实验6 界面设计实验6-1 用户登陆MsgBox "请登录!"PassWordInput=TxtPassW.TextUserIdInput=UserId And PassWordInput=PassWordCmdReset_Click实验6-2 学籍登记OptXb(0).Value = TrueList1.AddItem Space(4) & xh & Space(6) & xm & Space(6) & xb & Space(12) & xy & Space(16) & zy & Space(4)List1.RemoveItem List1.ListIndex实验6-3 字体格式设置Select Case OpFontCheck2.Value = 1OpColor = IndexOpFont = Index实验6-4 兴趣调查List1.AddItem ItemEndSelect Case IndexItem = Text1.Text实验6-5 调色板。
第1章一、选择题1.D 2.C 3.C 4.C 5.B 6.B7.C 8.A 9.D 10.D 11.B 12.A13.D 14.C 15.B 16.D 17.D 18.D19.C 20.A 21.C 22.B 23.B 24.C 25.C 26.C 27.C 28.B 29.B 30.B 二、填空题1.工程2.(1)程序和数据(2)属性3.(1)对象(2)事件4.“按字母顺序”5.(1)窗体(2)控件(3)菜单6.(1)对象属性(2)事件过程7.多8.标准模块9.视图10.对象查看按钮11.窗体布局12.Alt+Q第2章一、选择题1.D 2.B 3.A 4.A 5.D 6.A 7.B 8.C 9.C 10.A 11.B 12.B 13.B 14.B 15.B 16.C 17.A 18.A 19.A 20.B 21.C 22.C 23.A 24.C 25.A 26.C 27.B 28.C 29.D 30.D二、填空题1.(1)Print (2)0,02.(1)左键(2)右键3.(1)窗体(2)Font4.(1)1 (2)MDI父窗体5.Moveable6.(1)在属性窗口中设置(2)在程序代码中设置7.BackColor8.(1)Name (2)Caption9.(1)Print (2)Cls10.工程11.Hide12.Unload13..frm14.工程15.MaxButton第3章一、选择题1.D 2.D 3.A 4.D 5.B 6.B 7.C 8.B9.B 10.C 11.C 12.A 13.D 14.D 15.D 16.A17.B 18.D 19.B 20.C 21.C 22.B 23.D 24.A25.B 26.D 27.D 28.C 29.B 30.C 31.B 32.D33.A 34.B 35.B 36.C 37.D 38.C 39.A 40.C41.A 42.D 43.C 44.B 45.B 46.A47.B 48.D49.B 50.C 51.C 52.B 53.C 54.A 55.A 56.B二、填空题1.(1)窗体(2)图片框(3)Clear2.周期性地自动引发事件3.(1)Enabled (2)Locked4.TabStop5.Name和Caption(或者Name和Text)6.Timer7.Scroll和Change8.(1)0(2)−19.(1)Hide(2)Show10.(1)List(2)Selected11.ASCII码12.(1)Shift (2)Ctrl (3)Alt13.(1)DragMode (2)1 (3)DragMode (4)014.(1)MousePointer (2)99 (3)MouseIcon15.Combo1.List(Combo1.ListIndex)16.Change17.(1)密码验证(2)请输入密码:(3)* (4)验证18.(1)Unload (2)Show19.(1)BorderStyle (2)Shape20.(1)Chk1.Value(2)Text3.Passwordchar = "" (3)Text2.Text 21.(1)选择(2)性别(3)False (4)True22.Pic1.Picture=loadpicture("D:\Pic\Fishing.bmp")23.(1)KeyAscii=13 (2)a<=100(3)Text2.SetFocus (4)Len(Trim(Text1.Text))第4章一、选择题1.B 2.A 3.C 4.C 5.A 6.C 7.A 8.B 9.D 10.B 11.D 12.B 13.A 14.A 15.A 16.A 17.B 18.D 19.B 20.B21.C 22.A 23.C 24.B 25.D 26.C 27.C 28.B 29.A 30.D31.D 32.B 33.A 34.A 35.A 36.D 37.B 38.D 39.A 40.D41.B 42.B 43.D 44.C 45.A 46.D 47.D 48.D 49.A二、填空题1.(1)123 (2)567(3)889 (4)12300(5)02.(1)255 (2)冒号“:”(3)续行符“_”(空格和下划线)3.x>=-5 And x <=54.(1)(X+Y)<10 And (X−Y)>0(2)X*Y>0 And X=Int(X)And Int(Y)=Y(3)X*Y=0 And X+Y<>05.A<>0 And B*B –4*A*C>=06.(1)8888.30(2)628(3)0.67(4)0.57(5)hello(6)THIS IS A GOOD IDEA7.x+y<=8And x−y>88.x <100 And x >=09.x<=−5 or x >=510.6~1011.(1)(x^3-y^3)/(y*(sin(x))^3+7*log(y))(2)Log(y+cos(x)^2)(3)(a^(b*c)+c^(a*b))^(1/3)(4)abs((exp(x)+sin(x)^3)/(x*(x−y)))(5)log((exp(x*y)+abs(tan(z)^(−1)+cos(x)^3))/(x+y+z))12.(1)False(2)False(3)False13.(1)"10"(2)"输入整数"(3)"输入数据:10" (4)"输入的数据是:"第5章一、选择题1.A 2.B 3.D 4.C 5.C 6.C/D 7.C 8.D9.D 10.C 11.B 12.B 13.C 14.C 15.C 16.B 17.B 18.D 19.B 20.D 21.B 22.B 23.D 24.C 25.D 26.B 27.B 28.C 29.C 30.B 31.C 32.D 33.A 34.D 35.D 36.B 37.D 38.D 39.A 40.B 41.C 42.B 43.A 44.A 45.B 46.D 47.B 48.A 49.B 50.C 51.B 52.C 53.C 54.A 55.B 56.C 57.C 58.D 59.C 60.C 61.C 62.B 63.C 64.C 65.D 66.D 67.A 68.B 69.B二、填空题1. −12. −10Trur−613. 6 12312804. BASIC5. (1)6 (2)14 (3)7 (4)13(5)8 (6)3 (7)9 (8)16. (1)Spc(4)(2)Format(Sqr(a),"0.000")7. 3 −38. false9. * *0* *10. (1)a>0 And b>0 And c >0 (2)a<0 And b <0 And c<011. (1)c = Val(InputBox("请输入第三个数"))(2)b > a (3)b < a12. (1)Select Case x (2)Case Else13. (1)Text1 (2)Text1 (3)Form214. (1)Is (2)Else (3)End Select15. (1)Timer1.Enabled (2)Shape2.Top (3)Top (4)Shape2.Left16. 2117. (1)3 (2)−1818. (1)5.6 (2)519. (1)Aa (2)AaBbCc20. 2821.(1)Happy new year! (2)222.(1)For i = 1 To 5000 (2)i Mod 10 = 023.(1)d = d1 * 1000 + d2 * 100 + d3*10 + d4 (2)d = i * 924.(1)s = s + fz / fm (2)fm = fm + t25.(1)Exit Do (2)Right(Str(i),1)26.(1)Int(Rnd * 9 + 1)(2)Int(Rnd * 6 + 5)(3)j = j * 10 + a (4)If i < n Then Print j;"+";Else Print j;27.(1)n = n \ m (2)m = m + 128. If s > Max Then Max = s29.(1)c To 50 (2)b To 100 (3)1 /(a ^ 2)+ 1 /(b ^ 2)= 1 /(c ^ 2)第6章一、选择题1.A 2.C 3.D 4.C 5.A 6.B 7.C 8.C 9.B 10.C二、填空题1.(1)顺序结构(2)选择结构(3)循环结构2.(1)有穷性(2)确定性(3)有零个或多个输入(4)有一个或多个输出(5)有效性3.(1)自顶向下(2)逐步细化(3)模块化设计(4)结构化编码4.(1)伪代码(2)流程图5.模块化第7章一、选择题1.D 2.C 3.D 4.C 5.D 6.C 7.C 8.A9.D 10.C 11.B 12.D 13.B 14.B 15.B 16.B17.C 18.C 19.C 20.D 21.D 22.A 23.A 24.C25.C 26.D 27.D 28.A 29.C 30.A 31.D 32.D二、填空题1.(1)2 (2)6 (3)1 (4)2 (5)−1 (6)1 2.Variant(或变体型)3.454.(1)2 5 (2)3 65.1 2 1 4 46.0 20 25 30 35 407.−1 –2 –3 –4 –50 –1 –2 –3 –41 0 –1 –2 –32 1 0 –1 –23 2 1 0 –14 3 2 1 0s=−158.0 0 0 0 0 12 14 16 18 209.1 2 3 4 5 12 14 16 18 2010.(1)100 (2)10 (3)10 (4)a((I−1)*10+j)11.(1)Int(Rnd * 1000)(2)arr(i)> Max (3)arr(i)< Min 12.(1)preserve a(n)(2)a(I+1)=a(I)(3)a(I)=m (4)a(I+1)=m13.(1)I,J (2)I,I (3)I,5−I14.(1)a(i)= a(i − 1)(2)a(LBound(a))= j1 (3)k = j15.(1)c(2)<"A" or c(2)> "Z" (2)"Z" (3)"A"(4)keyAscii−1(5)keyAscii+116.(1)t = n (2)i To t – 1 (3)i = i + 1(4)b(i)(5)t = t − 117.(1)Redim A(n)(2)P>n or P <1 (3)P+1 (4)D 18.(1)int(Rnd*99+1)(2)In arr (3)x>50 and x <90(4)sum+x (5)x19.(1)Redim a(n,n)(2)1 to n (3)a(j,k)=i (4)Print 20.(1)7 (2)1 (3)16 (4)10 (5)5第8章一、选择题1.D 2.A 3.A 4.B 5.B 6.D 7.D 8.C 9.D 10.A11.A 12.A 13.C 14.D 15.D 16.C 17.D 18.D 19.C 20.A21.A 22.B 23.B 24.A 25.B 26.C 27.D 28.B 29.D 30.C二、填空题1.(1)4 (2)8 (3)162.1 3 14 3 109 27 93.(1)12 (2)18 (3)36 12 18 (4)36 36 124.(1)8 −2 (2)6 −25.(1)15 (2)36 (3)266.(1)34 (2)26 (3)87.3 5 7 9 58.(1)01 05 02 (2)08 (3)039.(1)10 6 (2)5 4 (3)10 −6 10.(1)17 (2)178 (3)17811.3 3 41 3 10 0 11 0 012.1 62 113 1613.(1)11 (2)61 (3)13614.(1)asicB (2)icBas15.(1)1 1 2 (2)1 3 2 (3)1 2 216.(1)Flag或Flag=True (2)Cstr(n)或Trim(Str(n))(3)Mid(x,i,1)< Mid(x,i + 1,1)17.(1)n = i * i(2)List1.AddItem(CStr(n)+ "=" + CStr(i)+ "*" + CStr(i))(3)ByVal n As Long(4)a(n Mod 10)= 1(5)If js = 2 Then Verify = True18.(1)L = 3 − Len(a)Mod 3 (2)n = Len(a)(3)c = c & Zh(b)(4)n = n + Val(Mid(s,p,1))* 2 ^ i 19.(1)Str(n)& "=" (2)P(i)+ P(j)+ P(k)= n (3)Exit Sub (4)idx = idx + 120.(1)n Mod 2 = 1 And n > 1 (2)s = n & "*3+1"(3)Exit Sub (4)Call Yz(n)第9章一、选择题1.D 2.B 3.B 4.C 5.D 6.C 7.C 8.C 9.C 10.B 11.D 12.B 13.D 14.B 15.B 16.B 17.A 18.B 19.C 20.A 21.A 22.A 23.C 24.B 25.B 26.B 27.C 28.C 29.C 30.B 31.C 32.A 33.A 34.D 35.B 36.C 37.A二、填空题1.Put2.Len3.Append4.Lof5.返回一个可供Open语句使用的文件号6.(1)Open "d:\data1.txt" For Random As #1 Len = Len(s)(2)Put #1,,s7.(1)Input (2)Output(3)0 (4)Close #1,#28.(1)For Append As #1 (2)For Input As #2(3)#1,s第10章一、选择题1.A 2.A 3.C 4.A 5.B 6.B 7.D 8.C9.C 10.C 11.A 12.C 13.D 14.D 15.B 16.A17.D 18.B 19.B 20.D 21.A 22.B 23.B 24.B25.D 26.B 27.C 28.C 29.B 30.C二、填空题1.(1)&(2)Alt (3)−2.菜单项显示区3.“→”按钮4.弹出式菜单5.调整菜单项顺序6.(1)Caption (2)Name (3)Index (4)Checked(5)Enabled (6)Visible7.(1)PopupMenu (2)MouseDown8.Ctrl+E9.(1)Height(2)Width10.(1)Microsoft Rich TextBox Control 6.0 (2)64K11.不可见的12.“部件”13.(1)DialogTitle (2)Filter (3)InitDir(4)ShowOpen或Action=1 14.StatusBar15.(1)不能(2)ToolBar。
习题一答案在教材上找。
习题二1.对象指现实世界中的实体。
每个对象有自己的特征(属性)、行为(方法)和发生在该对象上的活动(事件)。
类是对同一种对象的集合与抽象。
类包含所创建对象的属性数据,以及对这些数据进行操作的方法。
封装和隐藏是类的重要特性,将数据结构和对数据的操作封装在一起,类的内部实现细节对用户来说是透明的。
VB工具箱中的可视图标是VB系统设计好的标准控件类。
通过将控件类实例化,得到真正的控件对象。
在窗体上画一个控件,就将类转换为对象,创建了一个控件对象。
VB中常用的对象是控件。
此外,VB还提供了系统对象。
窗体是个特例,它既是类也是对象。
当向一个工程添加一个新窗体时,实质就由窗体类创建了一个窗体对象。
对象的三要素:属性、事件和方法。
属性:存放对象的数据(决定对象外观及功能)对象属性的设置方法:在设计阶段,利用属性窗口直接设置属性值;程序运行时,通过语句[对象名.]属性名=属性值。
若属性只能在设计阶段设置,在程序运行阶段不可改变,称为只读属性。
事件:发生在对象上的事情。
同一事件,对不同的对象,会引发不同的反应。
事件过程:应用程序处理事件的步骤。
应用程序设计的主要工作就是为对象编写事件过程的代码。
方法:面向对象的程序设计语言,为程序设计人员提供了一种特殊的过程和函数。
方法是面向对象的,调用时一定要指明对象。
2.窗体和控件具有的基本属性“(1) Name属性:名称所创建的对象名称,在程序中引用。
(2) Caption属性:标题该属性决定了对象上显示的内容。
(3) Height、Width、Top和Left属性决定对象的大小和位置。
(4) Enabled 属性:对象是否允许操作(5) Visible 属性:对象是否可见(6) Font 属性组:文本的外观FontName字体、FontSize大小FontBold粗体、FontItalic斜体FontStrikethru 删除线FontUnderline 下划线(7) ForeColor属性:前景颜色(8) BackColor属性:背景颜色(9) MousePointer属性:鼠标指针类型, 设置值范围0~15,由系统指定。
实验任务7参考答案
课程名称:程序设计基础VB
实验名称——实验七 选择结构程序设计
一、实验目的:
1.进一步掌握输入输出函数的函数使用
2.掌握if 语句的三种基本结构
3.掌握多分支语句select 语句的使用
实验1编写程序,求解鸡兔同笼问题。
一个笼子中有鸡X 只,兔Y 只,每只鸡有2只脚,每只兔有4只脚。
今知鸡和兔的总头数为H ,总脚数为F 。
问笼中鸡和兔各若干?
Private Sub Form_Click()
Dim h As Integer, f As Integer, x As Integer, y As Integer
h = InputBox("鸡和兔的总头数H=:", "鸡兔同笼", 71)
f = InputBox("鸡和兔的总脚数F=:", "鸡兔同笼", 158)
x = (4 * h - f) / 2
y = (f - 2 * h) / 2
MsgBox "笼中鸡数为" & x & vbCrLf & "笼中兔数为" & y
End Sub
实验2实验书100页实验5-5-2 改错题
窗体的界面设计如图所示。
在单击命令按钮后,如果选中一个单选按钮和一个或两个复选框,则对文本框中的文字做相应设置。
发现一下程序代码出错,请修改。
实验3实验书101页实验5-7(注意If 语句的使用格式)
建立一个文本框,在文本框中每输入一个字符,则立即判断:若是小写字母,则把它的大写形式显示在标签Label1中,若是大写字母,则把它的小写形式显示在Label1中,若是数字字符,则
把该字符直接显示在Label1,其他字符不予显示。
输入的字母总数显示在标
签Label2中,如图7-4所示。
解法1的程序代码如下。
Dim n As Integer '模块级变量
Private Sub Command1_Click()
If Option1.Value = True Then
Text1.FontName = "宋体"
Else
Text1.FontName = "黑体"
End If
If Check1.Value = 1 Then
Text1.FontUnderline = True
Else
Text1.FontUnderline = False
End If
If Check2.Value = 1 Then
Text1.FontItalic = True
Else
Text1.FontItalic = False
End If
End Sub
Private Sub Text1_Change()
Dim ch As String*1
ch = Right$(Text1.Text, 1)
If ch >= "A" And ch <= "Z" Then
Label1.Caption = LCase(ch)
n = n + 1
ElseIf ch >= "a" And ch <= "z" Then
Label1.Caption =
n = n + 1
ElseIf ch >= "0" And ch <= "9" Then
Label1.Caption = ch
Else
Label1.Caption = ""
End If
Label2.Caption = n
End Sub
解法2:在输入时即对每一个输入的字符进行判断,还可放在文本框的KeyPress事件中,符合条件的字符进行处理,不符合条件的字符不予显示。
自行完成编程。
实验4 教材120页第5题
编写一个程序,用户输入考试成绩,输出该学生的总评成绩。
总评标准如下:60分以下为不及格,60~69为及格,70~79为中等,80~89为良好,90~100为优秀。
自行设计界面。
Private Sub Command1_Click()
a = Val(Text1.Text)
If a < 60 Then
b = "不及格"
ElseIf a >= 60 And a < 70 Then
b = "及格"
ElseIf a >= 70 And a < 80 Then
b = "中等"
ElseIf a >= 80 And a < 90 Then
b = "良好"
ElseIf a >= 90 And a <= 100 Then
b = "优秀"
Else
b = "无此成绩"
End If
Label1.Caption = b
End Sub
实验5
(1)窗体Form1中的用户名边的文本框要保证只能输入26个英文字母,若不是字母则弹出消息框提示“用户名只能输入字符”(参考书上104页例5-6),密码为“12345”,若输入的密码不是“12345”,则弹出消息框“密码错误!”,并将密码框清空,获得焦点。
(2)单击窗体Form1中的“确定”按钮,如果密码正确,隐藏窗体Form1,显示窗体Form2,单击“返回”按钮退出。
(3)窗体Form2中,单击“确定”按钮,在文本框中输出所选的课程名,单击“取消“按钮则取消所选内容,单击“返回”按钮,隐藏窗体Form2,显示窗体Form1。
单击第一个滚动条改变文本框的文本字号大小(5-30),单击第二个滚动条改变文本框的文本颜色。