VisualBasic程序设计教学教材(第4版~)实验答案~范文.doc

上传人:小** 文档编号:630493 上传时间:2019-04-22 格式:DOC 页数:129 大小:1.18MB
返回 下载 相关 举报
VisualBasic程序设计教学教材(第4版~)实验答案~范文.doc_第1页
第1页 / 共129页
VisualBasic程序设计教学教材(第4版~)实验答案~范文.doc_第2页
第2页 / 共129页
点击查看更多>>
资源描述

《VisualBasic程序设计教学教材(第4版~)实验答案~范文.doc》由会员分享,可在线阅读,更多相关《VisualBasic程序设计教学教材(第4版~)实验答案~范文.doc(129页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、#*声明声明:1. 实验所属课本原件为Visual Basic 程序设计教程(第 4版) (主编 龚沛曾 编者 杨志强 陆慰民 谢步瀛) ;2. 实验答案代码采用红色字体突出 ;3. 仅提供课本前七个实验的代码,之后的实验上课考试均不涉及故不作 ;4. 教学平台上机实验、课本篇后实验,两者题目操作略有差异,作业以前者要求为准,故以下答案代码为前者代码,如对后者代码有所需求请私信 ;5. 本文为作者原创,复制转载请注明出处 ;6. 如果对代码有所疑问,或者略感繁琐想直接要已完成实验,请私信 ;7. 浏览、复制、下载后请给作者一个合理的评价,感激不尽 。实验实验 1-11-1编制简单的欢迎界面程序

2、。 要求:在屏幕上显示“欢迎学习 Visual Basic” ;在文本框Text1 中输入姓名;单击命令按钮“你输入的姓名是” ,在Label3 标签显示在文本框中输入的姓名。 程序运行效果如图 2.1.1 所示。程序以“学号-1-1.frm”和“学号-1-1.vbp”文件名保存。以后每个实验项目的命名规则都是如此,即“学号-实验号-实验题目” 。 (如某同学的学号为 A,所完成的是实验 2 的第 3 题,那么程序文件名为“A-2-3.frm”和“A-2-3.vbp” ) 图图 2.1.12.1.1 实验 1.1 运行界面提示: (1) 实验所用到的控件及属性设置见表 2.1.1。表表 2.1

3、.12.1.1 属 性 设 置控件名属 性Label1Caption=“欢迎学习 Visual Basic“;Font 属性:字号为二号,字体为隶书,Aligment=2(居中)Label2Caption=“请输入你的姓名“;Font 属性:字体为楷体,有下划线Label3Caption=“,BorderStyle=1Text1Text=“Command1Caption=“你输入的姓名是“(2) “欢迎学习 Visual Basic”要在两行显示,只要将Label1 控件的宽度缩小一些。Private Sub Command1_Click()Label3.Caption = Text1.Tex

4、tEnd Sub实验实验 1-21-2模仿教学篇例 1.1,将事件过程中的自上而下移动改为自右向左移动,同时考虑文字超出窗体边界的情况。各个控件及属性窗口的设置见表 2.1.2,背景图形文件可以选择自己喜欢的,按钮上的图标可通过 Windows 搜索功能查找。以“学号-1-2”为项目名保存。表表 2.1.22.1.2 属 性 设 置控件名属 性Form1Caption=“实验 1.2“;Picture:选择自己喜欢的图片Label1Caption=“我开始学习程序设计“;FontSize=36;BackStyle=0Command1Caption=“;Style=1;Picture=“cloc

5、k02.ico“;ToolTipText“自动“Command2Caption=“;Style=1;Picture=“key04.ico“;ToolTipText“手动“Timer1Interval=0注:因为印刷错误,例题 1.1 中两个命令按钮的图形与事件过程代码不一致,需要调整。提示: 自定义事件过程 MyMove 代码应调整为,可实现文字移动方向的改变Sub MyMove()Label1.Move Label1.Left - 50, Label1.TopIf Label1.Left “要求:(1) Command1:使得 Text1 的字体和字号根据命令按钮显示的要求改变(2) Com

6、mand2:要求将 Text1 选中的内容及其格式复制到Text2。选中的内容通过 Text1 的 SelText 属性获得提示:为使 Text2 文本框保持 Text1 中的字符格式,通过Text2.FontSize=Text1.FontSize 和Text2.FontName=Text1.FontName 实现Private Sub Command1_Click()Text1.FontName = “隶书“Text1.FontSize = 25End SubPrivate Sub Command2_Click()Text2 = Text1.SelTextText2.FontName = T

7、ext1.FontNameText2.FontSize = Text1.FontSizeEnd Sub实验实验 1-61-6图片缩小、还原的设置。窗体上放置一个 Image 图像控件和两个命令按钮。Image 图像控件装入自己喜欢的图片,设置 Stretch 属性为 True,使得图片随着图像控件的大小而变,如图 2.1.4 所示。以“学号-1-6”为项目名保存。图图 2.1.42.1.4 实验 1.6 运行界面要求:(1)单击“缩小一半”按钮,图片纵、横均缩小一半。(2)单击“还原”按钮,图片与初始装入时同大。提示:为了实现还原效果,要做以下 3 件事。(1)必须在事件过程外,即程序代码最上

8、方声明窗体级变量:Dim h%,w% 用户输入的变量声明语句(2)在 Form1_Load 事件中保存图像控件的初始值:w=Image1.Widthh=Image1.Height(3)在 Command2_Click 事件中还原为初始值:Image1.Width=wImage1.Height=h缩小一半 Command1_Click 事件请读者自行完成。思考:若要设置图片放大效果,如何修改代码?Dim h%, w%Private Sub Command1_Click()Image1.Width = Image1.Width * 0.5Image1.Height = Image1.Height

9、* 0.5End SubPrivate Sub Command2_Click()Image1.Width = wImage1.Height = hEnd SubPrivate Sub Form_Load()w = Image1.Widthh = Image1.HeightEnd Sub实验实验 2-12-1随机生成 3 个正整数,其中一个 1 位数,1 个 2 位数,1 个3 位数,计算它们的平均值,保留两位小数,运行界面如图2.2.1 所示。图图 2.2.12.2.1 实验 2.1 运行界面提示:(1)随机数生成某范围内的正整数公式为Int(Rnd*范围+基数)其中范围=数的上限-下限+1,

10、基数=数的下限。例如,要生成 2 位数,语句为Int(Rnd*(99-10+1)+10)=Int(Rnd*90+10)(2)保留两位小数,利用 Format 函数,形式为 Format(要显示的数值, “0.00 “)。Private Sub Command1_Click()Text1.Text = Int(Rnd * 9 + 1)Text2.Text = Int(Rnd * 90 + 10)Text3.Text = Int(Rnd * 900 + 100)End SubPrivate Sub Command2_Click()Text4.Text = Format(Val(Text1.Text

11、) + Val(Text2.Text) + Val(Text3.Text) / 3, “0.00“)End SubPrivate Sub Command3_Click()Text1.Text = “Text2.Text = “Text3.Text = “Text4.Text = “End Sub实验实验 2-22-2我国有 13 亿人口,假定按人口年增长 0.8%计算,多少年后我国人口超过 26 亿。提示:(1)已知年增长率 r=0.8%,求人数超过 26 亿的年数n 公式为:其中:Log(x)为对数函数,Log(2)缘由 Log(13/26),0.8%需写成 0.008(2)该题目的界面设计

12、 由读者自行设计。Private Sub Command1_Click()n = Int(Log(2) / Log(1 + 0.008) + 1)Text1 = n String(2 * i - 1, “); String(10 - (2 * i - 1), “); String(2 * i - 1, “)Next iEnd SubPrivate Sub Command2_Click()ClsEnd Sub实验实验 2-72-7用 InputBox 输入一个正实数,用 Print 方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留三位小数,其间有间隔。Private Sub comm

13、and1_Click()x = Val(InputBox(“输入一个正实数“, “计算“, 0)pf = Format(x * x, “0.000“)pfg = Format(Sqr(x), “0.000“)lf = Format(x * x * x, “0.000“)lfg = Format(x (1 / 3), “0.000“)Print “平方为:“; pf; Space(3); “平方根为:“; pfg; Space(3); “立方为:“; lf; Space(3); “立方根为:“; lfgEnd Sub实验实验 3-13-1在购买某物品时,若所标明的价钱 x 在下述范围内,所付钱

14、y 按对应折扣支付:提示:此例用多分支结构实现,注意计算公式和条件表达式的正确书写。Private Sub Form_Click()Dim x!, y!x = Val(InputBox(“输入 x 的值“)If x 150 Theny = 150End IfPrint yEnd Sub实验实验 3-33-3输入 x,y,z 三个数,按从大到小的次序显示,如图 2.3.1所示。图 2.3.1 实验 3.3 运行界面提示:利用 InputBox 函数输入 3 个数,存放到数值型变量中,然后对其进行比较;若放在字符串变量中,有时会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现“34”“

15、2345”“”的情况) 。对三个数进行排序,只能通过两两比较,一般可用三条单分支 if 语句来实现。方法如下:先将 x 与 y 比较,使得 xy;然后将 x 与 z 比较,使得xz,此时 x 最大;最后将 y 与 z 比较,使得 yz。要显示多个数据,可以用“;”逐一显示,也可利用“x;” ”;y;” ”;z 用分号将多个变量显示也可Print ”排序后” x; “ “; y; “ “; zIf x 0)图 2.3.3 实验 3.5 运行界面 若求出的只数为负数,提示数据错误的原因,如图 2.3.3所示,重新输入数据。(使用总只数和总脚数的关系,即N4*M Or N 0 ThenMsgBox

16、(“脚数必须是偶数“)Text2 = “Text2.SetFocusElsey = N / 2 - MIf N 4 * M Or N =0。Private Sub Command1_Click()Dim a!, b!, c!, x1!, x2!, de!a = Text1b = Text2c = Text3de = b * b - 4 * a * ct = 2 * aIf de = 0 ThenText4 = Format(-b / t, “0.00“)Text5 = Format(-b / t, “0.00“)ElseIf de 0 ThenText4 = Format(-b + Sqr(d

17、e) / t, “0.00“)Text5 = Format(-b - Sqr(de) / t, “0.00“)ElseText4 = Format(-b / t, “0.00“) 若是右括号”)”则 n=n-1;Else结束表达式输入,对 n 的 3 种情况:=n、0、 “=“ ThenIf Chr(KeyAscii) = “(“ Thenn = n + 1End IfIf Chr(KeyAscii) = “)“ Thenn = n - 1End IfElseIf n = 0 ThenPrint “括号配对成功“;ElseIf n 0 ThenPrint “左括号多于右括号“ String(2

18、 * i - 1, “)Next iEnd Sub实验实验 4-24-2用单循环实现如图 2.4.2 所示的界面。 图图 2.4.22.4.2 实验实验 4.24.2运行界面运行界面提示:利用 Chr 函数将字母编码值转换成字母。Private Sub Form_Click()For i = 1 To 10 Step 1Print Tab(i); String(20 - 2 * i), Chr(64 + i)Next iEnd Sub实验实验 4-34-3求 s=1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+n)。要求:用 For 单循环求前 30 项和。用 Until

19、 求多项式和,直到和大于 5000 为止。运行效果如图 2.4.3 所示。图图 2.4.32.4.3 实实验验 4.34.3 运行运行界面界面Private Sub Command1_Click()Dim s As Double, x As Double, i As Integer, j As Integers = 0For i = 1 To 30x = 0For j = 1 To ix = x + 1s = s + xNext jNext iLabel1.Caption = “前 30 项的和=“ s, i; “项“End Sub实验实验 4-64-6编一程序,显示出所有的水仙花数。所谓水仙

20、花数,是指一个 3 位数,其各位数字立方和等于该数字本身。例如,153 是水仙花数,因为提示:解该题的方法有两种: 利用三重循环,将三个数连接成一个 3 位数进行判断。例如,将 i,j,k,3 个一位数连成一个 3 位数的表达式为:i*100+j*10+k;i,j,k 分别为三重循环的循环控制变量通常,对于若干个一位数要连接成一个多位数(例如,将19 连接成一个 9 位数) ,程序段如下:s=0For i=1 To 9s=s*10+inext i 利用单循环将一个 3 位数逐位分离后进行判断。例如 x 是一个 3 位数,分离为 3 个一位数 i,j,k,方法如下:x=357i=x100 获得百

21、位数结果 3j=(x Mod 100)10 获得十位数结果 5k=x Mod 10 获得个位数结果 7通常,对于若干位数值(例如,s 是一个 9 位数) ,利用循环从右边开始逐位分离,程序段如下:s = Do While s 0s1 = s Mod 10s = s10Print s1; 从右边开始显示分离出每一位LoopPrivate Sub Command1_Click()Dim s As Integers = 0For i = 1 To 9For j = 0 To 9For k = 0 To 9s = i * 100 + j * 10 + kIf s = i 3 + j 3 + k 3 T

22、henPrint s i; “3“; “+“; j; “3“; “+“; k; “3“End IfNext kNext jNext iEnd SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 100 To 999If (i 100) 3 + (i 10 Mod 10) 3 + (i Mod 10) 3 = i ThenPrint i i 100; “3“; “+“; i 10 Mod 10; “3“; “+“; i Mod 10; “3“End IfNext iEnd Sub实验实验 4-74-7计算 的近似值, 的计算公式为:注意:

23、 分别显示当 n=50、1000 时的结果 同时要防止大数相乘时结果溢出的问题,将变量类型和常数 2 改为双精度型(即 2#)Private Sub Form_Click()Dim n xEnd Sub实验实验 4-84-8求 Sn=a+aa+aaa+aaa+aaaaa(n 个 a),其中 a 是一个由随机数产生的 19(包括 1,9)中的一个正整数,n 是一个由滚动条产生的 510(包括 5,10)中的一个数。例如:当 a=2,n=5 时,Sn=2+22+222+2222+22222。提示:为了得到不断重复 a 的 n 位数 Temp,可用如下程序段实现:Temp=0For i=1 To n

24、Temp=Temp*10+aNext i产生的表达式以横向和纵向两种形式显示,如图 2.4.6和图 2.4.7 所示。图图2.4.62.4.6 实验实验4.84.8运行运行界面界面图图2.4.72.4.7 实验实验4.84.8运行运行界面界面Dim a%, n%, i!Private Sub HScroll1_Change()a = HScroll1.ValueLabel1.Caption = “a=“ i; “)的人数有 “; Format(s(i), “0“); “个“End IfNext iEnd Sub实验实验 5-45-4随机产生 10 个 2 位数,按从大到小递减的顺序排列,并显示

25、排序结果。Private Sub Form_Click()Dim a(1 To 10) As IntegerFor i = 1 To 10a(i) = Int(Rnd * 90 + 10)Next iFor i = 1 To 9For j = 9 To i Step -1If a(j) Max ThenMax = Val(Combo1.List(i)iMax = iElseIf Val(Combo1.List(i) = 5 ThenMsgBox (“输入人数超过数组声明的个数“)ElseWith a(n).number = Text1.name = Text2.salary = Text3Pi

26、cture1.Print a(n).number, a(n).name, a(n).salaryPrintEnd Withn = n + 1Text1 = “Text2 = “Text3 = “End IfEnd SubPrivate Sub Command2_Click()Dim t As clerk, i%, j%For i = 0 To n - 1For j = i To n - 1If a(i).salary 0)m = n: n = r: r = m Mod nLoopgcd = nEnd Function实验实验 6-36-3编一个函数过程 Mysin(x),求Mysin(x)=。

27、当第 n 项的精度小于 10-5 时结束,x 为弧度;主调程序同时调用 Mysin 和内部函数 sin,进行验证。提示:关键是找部分级数和的通项,如下表示:i=1,3,5,7Dim x!Function MySin(x!) As DoubleDim i%, t!, s!t = xs = ti = 1Do While Abs(t) 0.00001t = -1 * t * x * x / (i + 1) * (i + 2)s = s + ti = i + 2LoopMySin = sEnd FunctionPrivate Sub Command1_Click()x = Val(Text1.Text

28、)Label4.Caption = Format(Sin(x), “0.“)Label5.Caption = Format(MySin(x), “0.“)End Sub实验实验 6-46-4编一函数过程 IsH(n),对于已知正整数 n,判断该数是否是回文数,函数的返回值类型为布尔型。主调程序每输入一个数,调用 IsH 函数过程,然后在图形框显示输入的数,对于是回文数显示一个“,见图 F.2。 图图 F.2:F.2: 回文数程序运行界面提示:(1) 所谓回文数是指顺读与倒读数字相同,即指最高位与最低位相同,次高位与次低位相同,依次类推。当只有一位数时,也认为是回文数。(2) 回文数的求法,只要

29、对输入的数(按字符串类型处理),利用 MID 函数从两边往中间逐位比较,若不相同,就不是回文数。Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenIf Not IsNumeric(Text1) ThenMsgBox “输入非数字串,重新输入“Text1.Text = “Text1.SetFocusElseIf IsH(Text1) ThenPicture1.Print Text1; “ “ElsePicture1.Print Text1End IfText1 = “End IfEnd IfEnd SubFun

30、ction IsH(ss As String) As BooleanDim i%, Ls%IsH = Truess = Trim(ss)Ls = Len(ss)For i = 1 To Ls 2If Mid(ss, i, 1) 0s1 = Left(s1, i - 1) + Mid(s1, i + ls2)i = InStr(s1, s2)LoopEnd SubPrivate Sub Command1_Click()Dim ss1 As Stringss1 = Text1Call DeleStr(ss1, Text2)Text3 = ss1End Sub实验实验 6-86-8编一子过程 Max

31、Length(s,MaxWord),在已知的字符串 s 中,找出最长的单词 MaxWord。假定字符串 s 内只含有字母和空格,空格分隔不同的单词。程序运行界面如图 F.5 所示。图图 F.5:F.5: 求最长的单词运行界面提示:(1) 首先利用 Instr 函数从 s 中从左边开始查找第一个出现的空格,利用 Left 函数分离出空格左边的单词,与MaxWord 最长单词进行比较(MaxWord 初态为空):i=InStr(s,“ “) 找第一个出现的空格 Word=Left(s,i-1) 分离出空格左边的单词word 与 MaxWord 比较决定是否替换为 MaxWord(2) 取 S 中剩

32、余字符串,重复(1),直到 S 为空。 s=Mid(s,i+1) 取 S 中剩余字符串Private Sub Command1_Click()Dim MaxWord$Maxlength Text1 2)执行了某个实验后,仍要回到如图 10 所示的界面。图图 10:10: 菜单运行界面Private Sub Sy11_Click()Form2.ShowForm3.HideForm4.HideForm5.HideEnd SubPrivate Sub Sy12_Click()Form3.ShowForm2.HideForm4.HideForm5.HideEnd SubPrivate Sub Sy21_Click()Form4.ShowForm2.HideForm3.HideForm5.HideEnd SubPrivate Sub Sy22_Click()Form5.ShowForm2.HideForm3.HideForm4.HideEnd Sub安徽大学管理学院14 级 绅士为诸君所作老司机为你带路

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com