VB实验任务9答案
- 格式:doc
- 大小:927.50 KB
- 文档页数:5
实验教材实验-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.B2. C3. D4.D5.D6.D7.D8.C9.B 10.B 11.A 12.D 13.B14.C二、判断题1.T2.T3.F4.F5.F6.T7.T8.T9.T 10.T 11.T第二章一、单项选择题1. B2. D3. A4. D5. B6.A7. D8. D9. D 10. A11. A 12. A 13. C 14. C 15. A 16. C 17. A 18. D 19. A 20. D21. B 22. C 23. B 24. A 25. B 26. A 27. C 28. D 29. D 30. B31. C 32. D 33. B 34. C 35. C 36. C 37. C 38. D 39. C 40. A41. D二、判断题1. True2. True3. False4. False5. False6. False7. False第三章一、单项选择题1.A2.D3.D4.B5.B6.D7.C8.D9.B 10.B 11.D 12.D 13.C 14.D 15.A16.C 17.B二、判断题1.T2.F3.T4.T5.F6.F7.F8.F9.F 10.F11.T 12.F 13.F 14.T 15.F 16.T 17.T 18.F .第四章一、单项选择题1.D2.A3.C4.C5.B6.C7.B8.B9.C 10.B 11.A 12.A 13.B 14.C 15.C 16.D 17.A18.D 19.B 20.A21.D 22.B 23.A 24.D 25.D 26.B 27.D 28.A 29.D 30.A 31.D二、判断题1.F2.T3.F4.F5.T6.F7.T三、操作题1.参考代码:Private Sub Command1_Click()Dim i As Integer, j As Integer, k As IntegerDim sum As IntegerFor i = 2 To 10000sum = 0For j = 1 To i / 2k = i Mod jIf 0 = k Thensum = sum + jEnd IfNext jIf i = sum ThenPrint iEnd IfNext iEnd Sub2.参考代码:Private Sub Command1_Click()Dim n%, i%n = InputBox("请输入天数:")x = 1For i = n - 1 To 1 Step -1x = (x + 1) * 2NextPrint xEnd Sub第五章一、单项选择题:1. B2.C3. C4. C5. D6. B7. A8. D9. D 10.D11. D 12.A 13.D 14.A 15.A16.C 17.B 18.D 19.C 20.B21.A 22.B 23.B 24.C 25.B26.B 27.A 28.A 29.D 30.A二、多项选择题1.BCD2. ABD3. ABC4.A BC5. BCD三、判断题1. (F)2. (T)3. (T)4. (T)5. (T)6.(F)7.(F)8.(F)9.(F) 10.(T)11.(F) 12.(F) 13.(T) 14.(F) 15.(F)四、填空题1.数学日期时间字符串2. Str(x) Val(x) Asc(x)3. Sin(30*3.14/180)4. 05. 26. 167. Right(x,5)8. 123? 123? 12? 09. Mid(S, 6, 4)10. Int(Rnd Text1.Text * 900) + 100Mid(Text1.Text, 3, 1) & Mid(Text1.Text, 2, 1) & Mid(Text1.Text, 1, 1) 或Reverse(Text1.Text)五、操作题1、求Sn=n+nn+nnn+nnnn+……nnnnnn…n(a个n)的和,其中a和n分别由随机函数产生的1~9之间的正整数,现假设n=5,a=3,则Sn=5+55+555,求Sn。
课程名称:程序设计基础VB 实验名称——实验九循环结构程序设计实验1阅读程序,人工列表写出下列循环的运行次数和执行结果(注意输出格式),并上机验证结果,并充分使用单步调试工具(单步执行、立即窗口、本地窗口和监视窗口),弄清楚循环执行流程,以及相应变量值的变化情况。
(1)(2) Tab(8-I)将输出位置定位到第8-i列;String(I,Trim(Str(i)))输出i个相同的字符I(3)(4)实验2我国现有13亿人口,设年增长率为1%,编写程序,计算多少年后增加到或超过20亿?Private Sub Form_Click()Dim n As Integer, peoplenum As Doublepeoplenum = 13Don = n + 1peoplenum = peoplenum * (1 + 0.01) ‘或者peoplenum = 13 * (1 + 0.01)^nLoop Until peoplenum >= 20 ‘或者While peoplenum < 20Print n; "年后我国人口将达到"; peoplenum; "亿"End Sub实验3将10进制数转化成2进制数。
Private Sub CmdTrans_Click()Dim B As String, x As Double, r As Integerx = Val(TxtD)If Int(x) = x And x > 0 Then ‘对输入的一个10进制正整数x进行数据有效性的判断 Dor = x Mod 2 ‘将x除以2,记录余数rx = x \ 2 ‘x整除2的商作为下一次的被除数xB = CStr(r) & B‘逆序连接每一次的余数rLoop Until x = 0 ‘x整除2的商为0结束TxtB = B ‘通过文本框TxtB输出显示结果Else ‘若输入数据x不符合题目要求,则给出出错提示信息MsgBox "必须输入一个正整数!", vbExclamation, "输入错误"TxtD = ""TxtD.SetFocusEnd IfEnd Sub实验4实验8-1Private Sub Form_Click()Dim m As IntegerDoIf m Mod 2 = 1 And m Mod 3 = 2 And m Mod 4 = 3 And m Mod 5 = 4 And m Mod 6 = 5 And m Mod 7 = 0 Then Print mExit DoEnd Ifm = m + 1LoopEnd Sub实验5书后习题1随机产生20个两位正整数,分别统计其中偶数和奇数的个数,以及各类的数据之和。
第九章课后习题答案一、选择题二、填空题1、2—下拉式列表框Style 22、文本框列表框3、Inteval 5004、Scroll5、List 0 Clear6、没有方法,也没有外观四、设计题1、Private Sub Option1_Click()Text1.FontSize = 10End SubPrivate Sub Option2_Click()Text1.FontSize = 12End SubPrivate Sub Option3_Click()Text1.FontSize = 14End SubPrivate Sub Option4_Click()Text1.ForeColor = RGB(255, 0, 0)End SubPrivate Sub Option5_Click()Text1.ForeColor = RGB(0, 255, 0)End SubPrivate Sub Option6_Click()Text1.ForeColor = RGB(0, 0, 255)End Sub2、Private Sub Combo1_Click()Select Case Combo1.ListIndexCase 0Text1.FontSize = 10Case 1Text1.FontSize = 14Case 2Text1.FontSize = 18Case 3Text1.FontSize = Val(Combo1.Text) End SelectEnd SubPrivate Sub Combo2_Click()Select Case Combo2.ListIndexCase 0Text1.ForeColor = RGB(255, 0, 0) Case 1Text1.ForeColor = RGB(0, 255, 0) Case 2Text1.ForeColor = RGB(0, 0, 255) End SelectEnd SubPrivate Sub Form_Load()ShowCombo1.Text = "字体"Combo1.AddItem "10"Combo1.AddItem "14"Combo1.AddItem "18"Combo1.AddItem "22"Combo2.Text = "颜色"Combo2.AddItem "红色"Combo2.AddItem "绿色"Combo2.AddItem "蓝色"End Sub3、Private Sub Option1_Click(Index As Integer)Select Case Option1(Index).IndexCase 0label1.Left = 0Case 1label1.Left = (Me.ScaleWidth - label1.Width) / 2Case 2label1.Left = Me.ScaleWidth - label1.WidthEnd SelectEnd Sub4、Private Sub Command1_Click()If Option1.Value = True ThenText2 = Text1 - 100ElseText2 = Text1 - 105End IfEnd Sub5、Private Sub Command1_Click()s = 0If Option1.Value = True Thens = Val(Text1)ElseIf Option2.Value = True Thens = Val(Text1) * 1.2Elses = Val(Text1) * 1.4End IfIf Check1.Value = 0 And Check2.Value = 1 Thens = s / 4ElseIf Check1.Value = 1 Thens = s * 1.3End IfLabel2.Caption = "总学时:" & sEnd Sub6、Private Sub command1_Click()Form2.ShowForm2.ClsForm2.Print "您点中了以下"; Form1.List2.ListCount; "个菜:" For i = 0 To Form1.List2.ListCount - 1Form2.Print Form1.List2.List(i)NextEnd SubPrivate Sub Command2_Click()List2.RemoveItem List2.ListIndexEnd SubPrivate Sub Command3_Click()List2.ClearEnd SubPrivate Sub Command4_Click()EndEnd SubPrivate Sub Form_Load()List1.AddItem "鱼香肉丝"List1.AddItem "麻婆豆腐"List1.AddItem "京酱肉丝"List1.AddItem "水煮肉片"List1.AddItem "宫保鸡丁"List1.AddItem "酸菜鱼"End SubPrivate Sub List1_DblClick()For i = 0 To List2.ListCount - 1If List2.List(i) = List1.Text Then Exit ForNext iIf i = List2.ListCount ThenList2.AddItem List1.TextEnd IfEnd Sub7、Private Sub Combo2_Click()Select Case Val(Combo2.Text)Case 1, 3, 5, 7, 8, 10, 12t = 31Case 4, 6, 9, 11t = 30Case 2If Combo1.Text Mod 4 = 0 And Combo1.Text Mod 100 <> 0 Or Combo1.Text Mod 400 = 0 Thent = 29Elset = 28End IfEnd SelectCombo3.ClearCombo3.Text = "日数"For i = 1 To tCombo3.AddItem Str(i)NextEnd SubPrivate Sub Form_Load()Combo1.Text = "年份"For i = 1995 To 2050Combo1.AddItem Str(i)NextCombo2.Text = "月份"For i = 1 To 12Combo2.AddItem Str(i)NextCombo3.Text = "日数"For i = 1 To 31Combo3.AddItem Str(i)NextEnd Sub8、Private Sub HScroll1_Change()Label4.Caption = HScroll1.ValueMe.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End SubPrivate Sub HScroll2_Change()Label5.Caption = HScroll2.ValueMe.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End SubPrivate Sub HScroll3_Change()Label6.Caption = HScroll3.ValueMe.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub9、Private Sub Form_Load()Image1.Picture = LoadPicture("E:\ghy\万里图片\4.jpg")End SubPrivate Sub Form_Resize()Image1.Width = Me.WidthImage1.Height = Me.HeightEnd Subv10、Dim sPrivate Sub Form_Load()Label1.Caption = "程序已经运行了:0秒"Timer1.Interval = 1000Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()s = s + 1Label1.Caption = "程序已经运行了:" & Str(s) & "秒" End Sub11、Private Sub Command1_Click()List2.AddItem List1.TextList1.RemoveItem List1.ListIndexEnd SubPrivate Sub Command2_Click()List1.AddItem List2.TextList2.RemoveItem List2.ListIndexEnd SubPrivate Sub Form_Load()List1.AddItem "清华大学"List1.AddItem "北京大学"List1.AddItem "中国人民大学"List1.AddItem "北京师范大学"List1.AddItem "北京理工大学"End Sub12、Private Sub Command1_Click()If Trim(Text1) <> "" ThenList1.AddItem Trim(Text1)Text1 = ""Text1.SetFocusLabel2.Caption = "院校数:" & List1.ListCount ElseMsgBox "请先输入院校名!"End IfEnd SubPrivate Sub Command2_Click()If Trim(Text1) <> "" ThenFor i = 0 To List1.ListCount - 1If List1.List(i) = Trim(Text1) ThenList1.RemoveItem iText1 = ""Exit ForEnd IfNextIf i > List1.ListCount Then MsgBox "您输入的院校不存在!"ElseMsgBox "请先输入院校名!"End IfLabel2.Caption = "院校数:" & List1.ListCountEnd SubPrivate Sub Command3_Click()List1.ClearText1 = ""End SubPrivate Sub Command4_Click()EndEnd Sub13、Private Sub Check1_Click(Index As Integer)Select Case IndexCase 0If Check1(0).Value = 1 Then Text1.FontBold = True Else Text1.FontBold = FalseCase 1If Check1(1).Value = 1 Then Text1.FontItalic = True Else Text1.FontItalic = FalseCase 2If Check1(2).Value = 1 Then Text1.FontUnderline = True Else Text1.FontUnderline = False Case 3If Check1(3).Value = 1 Then Text1.FontStrikethru = True Else Text1.FontStrikethru = False End SelectEnd SubPrivate Sub Command1_Click()HScroll1.Value = 8For i = 0 To 3Check1(i).Value = 0Option1(i).Value = FalseOption2(i).Value = FalseNextText1.FontSize = 12Text1.FontName = "宋体"Text1.ForeColor = vbBlackEnd SubPrivate Sub Command2_Click()EndEnd Sub'将text1的属性MultiLine设置为“True”Private Sub Form_Load()Text1 = "好雨知时节," & vbCrLf & "当春乃发生。
实验报告参考答案(本部)实验一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。
第9章习题参考答案第9章习题解答1.思考问题(1)vb对象的3要素是指什么?它们的作用是什么?答:对象的属性、方法、事件就称为对象的三要素。
1)属性属性描述对象的性质或特征,即对象的样子。
2)方法方法反映对象的行为,即该对象会干什么。
3)事件事件指示对象在什么条件下发生了什么,也就是说,在什么条件下,执行哪段代码。
(2)变量的范围是什么?什么类型的示波器?变量的生存期是多少?生存的类型是什么?答复:1)变量的作用域是指变量的有效范围。
2)根据范围,变量可分为局部变量、形式级变量、模块级变量和全局变量。
局部变量:在流程体中定义。
它的范围是从定义到语句块或进程结尾的局部范围。
它不能在其他地方使用。
窗体级变量:是在窗体代码的通用声明区用dim或private关键字定义的变量,它不属于该窗体的任何过程,可以被本窗体内的所有过程访问,而不能为其他窗体或模块使用。
窗体级变量与窗体的生存期一样,只要窗体不消失,它就不消失。
在“专用”或“模块”级别定义的变量是在“专用”或“模块”级别定义的变量。
它不属于本模块的任何进程,可以被本模块中的所有进程访问,但不能用于其他模块或表单。
全局变量:是在窗体或模块的通用声明区用public关键字进行定义的变量,它在整个工程的所有过程中均可使用,且在应用程序运行过程中一直存在。
3)变量的生存期表示它可以存储值的时间段。
变量的值可以在其生命周期内更改,但变量始终存储一些值。
也就是说,在程序执行的动态过程中,在哪个阶段变量存在。
4)局部变量根据生存期分为动态局部变量和静态局部变量,两者的区别是:(a)动态局部变量的生存期是:当程序执行定义该变量的dim语句时,该变量在内存中建立,然后该变量“出生”;当程序继续执行,直到变量所在的程序块(或进程)结束时,变量“死亡”,它所代表的值不再存在。
如果再次执行变量的过程,并且再次执行定义变量的dim语句,则新变量将“出生”,并且与上次“死亡”的同名变量无关。
实验任务九参考答案课程名称:程序设计基础VB实验名称——八、循环结构程序设计(2)一、实验目的:1.进一步掌握循环语句的基本结构2.清楚循环流程,掌握循环语句的描述4.掌握多重循环结构程序的设计方法二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):程序完善题的做题技巧和方法建议,先根据程序运行的参考界面和题目要求,分析代码中变量和对象各自的作用(一般从输入或输出方面着手推导和分析),然后填充程序[希望同学们通过实践掌握]实验1 阅读程序,人工列表写出下列循环的运行次数和执行结果(注意输出格式),并上机验证结果,并充分使用单步实验2实验书103页实验5-11 改错题。
窗体如图所示。
要求程序运行时,在文本框text1中输入一个姓氏,单击“删除”按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。
编程以下程序实现此功能。
在调试时发现,如输入“陈”,可以正确删除所有“陈”的项目,但输入“刘”,但输入“刘”,则只删除了“刘邦”,如图b 所示,这说明程序不能适应所有情况,需要修改。
Private Sub Command1_Click() Dim n%, k%n = Len(Text1.Text)For k = List1.ListCount - 1 To 0 Step -1If Left(List1.List(k), n) = Text1.Text Then List1.RemoveItem k End If Next k End Sub实验3 实验书实验6-5 编程实现求Armstrong 数,Armstrong 数具有如下特征:一个n 位数等于其各位数的n 次方之和。
例如,153=13+53+331634=14+64+34+44提示:把数值转换成字符串后,利用Mid 函数取每一位上的数。
法一:Private Sub Command1_Click()Dim i As Integer, a As Integer, j%, b As Integer, k%, c%, h As Long, d As Long For i = 10 To 99a = Val(Left(a, 1)) ^ 2 + Val(Right(a, 1)) ^ 2 If a = i Then Print i Next iFor j = 100 To 999b = Val(Left(j, 1)) ^ 3 + Val(Mid(j, 2, 1)) ^ 3 + Val(Right(j, 1)) ^ 3 If b = j Then Print b Next jFor k = 1000 To 9999c = Val(Left(k, 1)) ^ 4 + Val(Mid(k, 2, 1)) ^ 4 + Val(Mid(k, 3, 1)) ^ 4 + Val(Right(k, 1)) ^ 4If k = c Then Print c法二:Dim n%, k%n = Len(Text1.Text)For k = 0 To List1.ListCount - 1If Left(List1.List(k), n) = Text1.Text Then List1.RemoveItem k k = k - 1 End If Next kFor h = 10000 To 99999d = Val(Left(h, 1)) ^ 5 + Val(Mid(h, 2, 1)) ^ 5 + Val(Mid(h, 3, 1)) ^ 5 + Val(Mid(h, 4, 1))^ 5 + Val(Right(h, 1)) ^ 5If d = h Then Print dNext hEnd Sub法二:Private Sub Command2_Click()Dim i&, n%, s&, m%For i = 1 To 99999n = Len(CStr(i))s = 0For j = 1 To ns = s + Mid(CStr(i), j, 1) ^ nNext jIf s = i Then Print iNext iEnd Sub法三:Private Sub Command3_Click()Dim i As Long, a As Long, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer For i = 1 To 99999a = i \ 10000b = (i - 10000 * a) \ 1000c = (i - 10000 * a - 1000 * b) \ 100d = (i - 10000 * a - 1000 * b - 100 * c) \ 10e = i - 10000 * a - 1000 * b - 100 * c - 10 * dn = Len(CStr(i))If i = a ^ n + b ^ n + c ^ n + d ^ n + e ^ n ThenPrint iEnd IfNext iEnd Sub实验4 实验书105页实验5-15在界面上放三个按钮,分别打出下面三幅图。
实验任务九参考答案
课程名称:程序设计基础VB
实验名称——八、循环结构程序设计(2)
一、实验目的:
1.进一步掌握循环语句的基本结构
2.清楚循环流程,掌握循环语句的描述
4.掌握多重循环结构程序的设计方法
二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):
程序完善题的做题技巧和方法
建议,先根据程序运行的参考界面和题目要求,分析代码中变量和对象各自的作用(一般从输入或输出方面着手推导和分析),然后填充程序[希望同学们通过实践掌握]
实验1 阅读程序,人工列表写出下列循环的运行次数和执行结果(注意输出格式),并上机验证结果,并充分使用单步
实验2实验书103页实验5-11 改错题。
窗体如图所示。
要求程序运行时,在文本框text1中输入一个姓氏,单击“删除”按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。
编程以下程序实现此功能。
在调试时发现,如输入“陈”,可以正确删除所有“陈”的项目,但输入“刘”,但输入“刘”,则只删除了“刘邦”,如图b 所示,这说明程序不能适应所有情况,需要修改。
Private Sub Command1_Click() Dim n%, k%
n = Len(Text1.Text)
For k = List1.ListCount - 1 To 0 Step -1
If Left(List1.List(k), n) = Text1.Text Then List1.RemoveItem k End If Next k End Sub
实验3 实验书实验6-5 编程实现求Armstrong 数,Armstrong 数具有如下特征:一个n 位数等于其各位数的n 次方之和。
例如,153=13+53+33
1634=14+64+34+44
提示:把数值转换成字符串后,利用Mid 函数取每一位上的数。
法一:
Private Sub Command1_Click()
Dim i As Integer, a As Integer, j%, b As Integer, k%, c%, h As Long, d As Long For i = 10 To 99
a = Val(Left(a, 1)) ^ 2 + Val(Right(a, 1)) ^ 2 If a = i Then Print i Next i
For j = 100 To 999
b = Val(Left(j, 1)) ^ 3 + Val(Mid(j, 2, 1)) ^ 3 + Val(Right(j, 1)) ^ 3 If b = j Then Print b Next j
For k = 1000 To 9999
c = Val(Left(k, 1)) ^ 4 + Val(Mid(k, 2, 1)) ^ 4 + Val(Mid(k, 3, 1)) ^ 4 + Val(Right(k, 1)) ^ 4
If k = c Then Print c
法二:
Dim n%, k%
n = Len(Text1.Text)
For k = 0 To List1.ListCount - 1
If Left(List1.List(k), n) = Text1.Text Then List1.RemoveItem k k = k - 1 End If Next k
For h = 10000 To 99999
d = Val(Left(h, 1)) ^ 5 + Val(Mid(h, 2, 1)) ^ 5 + Val(Mid(h, 3, 1)) ^ 5 + Val(Mid(h, 4, 1))
^ 5 + Val(Right(h, 1)) ^ 5
If d = h Then Print d
Next h
End Sub
法二:
Private Sub Command2_Click()
Dim i&, n%, s&, m%
For i = 1 To 99999
n = Len(CStr(i))
s = 0
For j = 1 To n
s = s + Mid(CStr(i), j, 1) ^ n
Next j
If s = i Then Print i
Next i
End Sub
法三:
Private Sub Command3_Click()
Dim i As Long, a As Long, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer For i = 1 To 99999
a = i \ 10000
b = (i - 10000 * a) \ 1000
c = (i - 10000 * a - 1000 * b) \ 100
d = (i - 10000 * a - 1000 * b - 100 * c) \ 10
e = i - 10000 * a - 1000 * b - 100 * c - 10 * d
n = Len(CStr(i))
If i = a ^ n + b ^ n + c ^ n + d ^ n + e ^ n Then
Print i
End If
Next i
End Sub
实验4 实验书105页实验5-15在界面上放三个按钮,分别打出下面三幅图。
数字三角形字母倒三角图形数字菱形图形
Private Sub Command1_Click()
Cls
For i = 1 To 9
Print Spc(9 - i);
For j = 1 To 2 * i - 1
Print CStr(i);
Next j
Print
Next i
Private Sub Command2_Click()
Cls
For i = 1 To 9
Print Spc(i - 1);
For j = 1 To 19 - 2 * i
Print Chr(i + 64);
Next j
Print
Next i
End Sub
Private Sub Command3_Click()
Cls
For i = 1 To 9
Print Spc(9 - i);
For j = 1 To 2 * i - 1
Print CStr(i);
Next j
Print
Next i
For i = 1 To 8
Print Spc(i);
For j = 1 To 17 - 2 * i
Print CStr(9 - i);
Next j
Print
Next i
End Sub
Private Sub Command4_Click()
Cls
For i = 1 To 9
Print Space(9 - i); String(2 * i - 1, CStr(i))
Next i
End Sub
实验5 使用随机函数生成30个学生的成绩,并求其中的最高分和第二高分。
Private Sub Form_Click()
Randomize
Dim a%, b%, i%, max1%, max2%, k%
Print "30个学生的成绩是:"
a = Int(Rnd * 100 + 1) '先生成2个成绩最为最大的两个,存储在max1和max2中
Print a;
max1 = a
a = Int(Rnd * 100 + 1)
Print a;
max2 = a
If max2 > max1 Then '如果max2比max1大,则交换两数
temp = max1
max1 = max2
max2 = temp
End If
For i = 3 To 30
a = Int(Rnd * 100 + 1)
Print a;
If i Mod 10 = 0 Then Print
If a > max1 Then
max1 = a
ElseIf a > max2 Then
max2 = a
End If
Next i
Print "最高分是:" & max1
Print "第二高分是:" & max2
End Sub
三、实验体会(包括对于本次实验的小结,实验过程中碰到的问题等)。