收藏 分销(赏)

[笔记]Visual-Basic程序设计教程实验答案(完整版).doc

上传人:二*** 文档编号:4485598 上传时间:2024-09-24 格式:DOC 页数:131 大小:1.91MB
下载 相关 举报
[笔记]Visual-Basic程序设计教程实验答案(完整版).doc_第1页
第1页 / 共131页
亲,该文档总共131页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、笔记Visual Basic程序设计教程实验答案(完整版)(文档可以直接使用,也可根据实际需要修改使用,可编辑 欢迎下载)声明:1. 实验所属课本原件为Visual Basic程序设计教程(第4版) (主编 龚沛曾 编者 杨志强 陆慰民 谢步瀛) ;2. 实验答案代码采用红色字体突出 ;3. 仅提供课本前七个实验的代码,之后的实验上课考试均不涉及故不作 ;4. 教学平台上机实验、课本篇后实验,两者题目操作略有差异,作业以前者要求为准,故以下答案代码为前者代码,如对后者代码有所需求请私信 ;5. 本文为作者原创,复制转载请注明出处 ;6. 如果对代码有所疑问,或者略感繁琐想直接要已完成实验,请私

2、信 ;7. 浏览、复制、下载后请给作者一个合理的评价,感激不尽 。实验1-1编制简单的欢迎界面程序。 要求:在屏幕上显示“欢迎学习Visual Basic”;在文本框Text1中输入姓名;单击命令按钮“你输入的姓名是”,在Label3标签显示在文本框中输入的姓名。 程序运行效果如图2.1.1所示。程序以“学号-1-1.frm”和“学号-1-1.vbp”文件名保存。以后每个实验项目的命名规则都是如此,即“学号-实验号-实验题目”。(如某同学的学号为A10414001,所完成的是实验2的第3题,那么程序文件名为“A10414001-2-3.frm”和“A10414001-2-3.vbp”) 图2.

3、1.1 实验1.1运行界面提示: (1) 实验所用到的控件及属性设置见表2.1.1。 属 性 设 置控件名属 性Label1Caption=欢迎学习Visual Basic;Font属性:字号为二号,字体为隶书,Aligment=2(居中)Label2Caption=请输入你的姓名;Font属性:字体为楷体,有下划线Label3Caption=,BorderStyle=1Text1Text=Command1Caption=你输入的姓名是(2) “欢迎学习Visual Basic”要在两行显示,只要将Label1控件的宽度缩小一些。Private Sub Command1_Click()Labe

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

5、ToolTipText自动Command2Caption=;Style=1;Picture=key04.ico;ToolTipText手动Timer1Interval=0注:因为印刷错误,例题1.1中两个命令按钮的图形与事件过程代码不一致,需要调整。提示: 自定义事件过程MyMove代码应调整为,可实现文字移动方向的改变Sub MyMove()Label1.Move Label1.Left - 50, Label1.TopIf Label1.Left 0 Then Label1.Left = Form1.WidthEnd SubSub MyMove()Label1.Move Label1.Le

6、ft - 50, Label1.TopIf Label1.Left 要求:(1) Command1:使得Text1的字体和字号根据命令按钮显示的要求改变(2) Command2:要求将Text1选中的内容及其格式复制到Text2。选中的内容通过Text1的SelText属性获得提示:为使Text2文本框保持Text1中的字符格式,通过Text2.FontSize=Text1.FontSize和Text2.FontName=Text1.FontName实现Private Sub Command1_Click()Text1.FontName = 隶书Text1.FontSize = 25End S

7、ubPrivate Sub Command2_Click()Text2 = Text1.SelTextText2.FontName = Text1.FontNameText2.FontSize = Text1.FontSizeEnd Sub实验1-6图片缩小、还原的设置。窗体上放置一个Image图像控件和两个命令按钮。Image图像控件装入自己喜欢的图片,设置Stretch属性为True,使得图片随着图像控件的大小而变,如图2.1.4所示。以“学号-1-6”为项目名保存。图2.1.4 实验1.6运行界面要求:(1)单击“缩小一半”按钮,图片纵、横均缩小一半。(2)单击“还原”按钮,图片与初始装

8、入时同大。提示:为了实现还原效果,要做以下3件事。(1)必须在事件过程外,即程序代码最上方声明窗体级变量: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.Wid

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

10、范围=数的上限-下限+1,基数=数的下限。例如,要生成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(Text

11、1.Text) + 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-2我国有13亿人口,假定按人口年增长0.8%计算,多少年后我国人口超过26亿。提示:(1)已知年增长率r=0.8%,求人数超过26亿的年数n公式为:其中:Log(x)为对数函数,Log(2)缘由Log(13/26),0.8%需写成0.008(2)该题目的界面设计 由读者自行设计。Private

12、Sub Command1_Click()n = Int(Log(2) / Log(1 + 0.008) + 1)Text1 = n & 年后人口超过26亿End Sub实验2-3输入一个合法的3位正整数,测试其数值合法性后,逆序输出并显示。例如,输入“734”,输出是“437”,如图2.2.2所示。提示:(1)利用Text1_LostFocus事件,输入数据合法性检查调用IsNumeric函数,参阅教学篇例2.5;若有错利用MsgBox显示出错信息,如图2.2.3所示;清除文本框内输入的非法数据,通过SetFocus定位于文本框处,重新输入。(2)利用“MOD”和“”运算符将一个3位数分离出3

13、个1位数,然后利用乘法和加法运算将3个1位数连接成一个逆序的3位数。图2.2.2 实验2.3运行界面 图2.2.3 出错信息Private Sub Command1_Click()Dim x%, x1%, x2%, x3%x = Val(Text1)x1 = x Mod 10x2 = (x Mod 100) 10x3 = x 100Label2 = x1 * 100 + x2 * 10 + x3End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenIf Not IsNumeric(Text1.Tex

14、t) ThenText1.Text = End IfEnd IfEnd SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1.Text) ThenMsgBox 输入非数值数据,请重新输入, , 数据检验Text1.Text = Text1.SetFocusEnd IfEnd Sub实验2-4输入一个字符串,分别调用UCase、Len、Mid、Left、Right函数,显示如图2.2.4所示的效果。图2.2.4 实验2.4运行界面提示:事件过程可以在Form_Click中编码,输出控件可以使用标签控件。Private Sub Form_cl

15、ick()Label1 = UCase(Text1.Text)Label2 = Len(Text1.Text)Label3 = Left(Text1, 11)Label4 = Mid(Text1, 12, 6)Label5 = Right(Text1, 5)End Sub实验2-5效仿实验2.4,验证转换函数的使用,Text1文本框输入字符串,Text2文本框显示调用所选函数的结果,4个命令按钮为转换函数,Label2显示对应的函数名,运行效果如图2.2.5所示。图2.2.5 实验2.5运行界面Private Sub Command1_Click()Label2 = Val函数的结果Text2

16、 = Val(Text1.Text)End SubPrivate Sub Command2_Click()Label2 = Str函数的结果Text2 = Str(Text1.Text)End SubPrivate Sub Command3_Click()Label2 = Chr函数的结果Text2 = Chr(Text1.Text)End SubPrivate Sub Command4_Click()Label2 = Asc函数的结果Text2 = Asc(Text1.Text)End Sub实验2-6Print方法练习,显示字符图形。参考教学篇例4.4输出简单图形,如图2.2.6所示。要求

17、窗体不可改变大小,当单击“清屏”按钮后,清除窗体所显示的图形。提示:利用循环语句和String函数。读者也可以发挥自己的想像力,设计更美观的图形。进一步要求:若要显示如图2.2.7所示的图形,程序要如何修改?图2.2.6 实验2.6运行界面 图2.2.7 进一步要求运行界面Private Sub Command1_Click()PrintFor i = 1 To 5Print Tab(15 - i * 2); String(2 * i - 1, ); String(10 - (2 * i - 1), ); String(2 * i - 1, )Next iEnd SubPrivate Sub

18、Command2_Click()ClsEnd Sub实验2-7用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留三位小数,其间有间隔。Visual Basic程序设计教程(第4版)实验答案声明:实验所属课本原件为Visual Basic程序设计教程(第4版) (主编 龚沛曾 编者 杨志强 陆慰民 谢步瀛) ;实验答案代码采用红色字体突出 ;仅提供课本前七个实验的代码,之后的实验上课考试均不涉及故不作 ;教学平台上机实验、课本篇后实验,医努柳寺席欲抽目殷郴抖粟犁亡旦草彩晕作扳敬宋厢囚写计骚密萨提烽贯撤榆谣紧遗赠诺唁恶厨相剥栈姚估馁座坑嚣标忧

19、欧对撑逮目式忧辊素逗捎Private Sub command1_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-1在购买某物品时,若所标明的价钱x在下述范围内,所付钱y按

20、对应折扣支付:提示:此例用多分支结构实现,注意计算公式和条件表达式的正确书写。Private Sub Form_Click()Dim x!, y!x = Val(InputBox(输入x的值)If x 1000 Theny = xElseIf x 2000 Theny = 0.9 * xElseIf x 3000 Theny = 0.8 * xElsey = 0.7 * xEnd IfPrint yEnd Sub实验3-2编一个程序输入上网的时间并计算上网费用,计算方法如下:同时为了鼓励多上网,每月收费最多不超过150元。提示:首先利用多分支If语句根据3个时间段算出费用,然后再用单分支If语

21、句对超过150元的费用设置为150元。Private Sub Form_Click()Dim x!, y!x = Val(InputBox(输入上网时间)If x 10 Theny = 30ElseIf x 150 Theny = 150End IfPrint yEnd Sub实验3-3输入x,y,z三个数,按从大到小的次序显示,如图2.3.1所示。图2.3.1 实验3.3运行界面提示:利用InputBox函数输入3个数,存放到数值型变量中,然后对其进行比较;若放在字符串变量中,有时会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现“34”“2345”“126789”的情况)。对三

22、个数进行排序,只能通过两两比较,一般可用三条单分支if语句来实现。方法如下:先将x与y比较,使得xy;然后将x与z比较,使得xz,此时x最大;最后将y与z比较,使得yz。要显示多个数据,可以用“;”逐一显示,也可利用“&”字符串连接符将多个变量连接显示。例如要输出x、y、z:Print ”排序后”;x;” ”;y;” ”;z 用分号将多个变量显示也可Print ”排序后”& x &” ” & y &” ” &z 用”&”字符串连接符思考:若要按从小到大的次序显示,程序将如何修改?Private Sub Command1_Click()Dim x!, y!, z!x = InputBox(inp

23、ut x)y = InputBox(input y)z = InputBox(input z)Print x y zPrint 排序前; x; ; y; ; zIf x y Then t = x: x = y: y = tIf x z Then t = x: x = z: z = tIf y z Then t = y: y = z: z = tPrint 排序后; x; ; y; ; zEnd Sub实验3-4编一模拟袖珍计算器的完整程序,界面如图2.3.2所示。要求:输入两个操作数和一个操作符,根据操作符决定所做的运算。图2.3.2 实验3.4运行界面提示:对于存放操作符的文本框Text3,

24、利用Select Case语句实现相应的运算。Private Sub Command2_Click()Text1.Text = Text2.Text = Text3.Text = Text4.Text = End SubPrivate Sub Text3_LostFocus()Select Case Trim(Text3)Case +Text4 = Val(Text1) + Val(Text2)Case -Text4 = Val(Text1) - Val(Text2)Case *Text4 = Val(Text1) * Val(Text2)Case /If Val(Text2) = 0 The

25、nMsgBox 分母为零,重新输入Text2 = Text2.SetFocusElseText4 = Val(Text1) / Val(Text2)End IfEnd SelectEnd Sub实验3-5利用计算机解决古代数学问题”鸡兔同笼问题”。即已知在同一个笼子里有总数为M只鸡和兔,鸡和兔的总脚数为N只,求鸡和兔各有多少只?提示:鸡、兔的只数通过已知输入的M,N列出方程可解, 设鸡为x只,兔为y只,则计算公式为:但不要求出荒唐的解(如3.5只鸡、4.5只兔,或者求得的只数为负数)。因此,在Text2_LostFocus事件中要考虑下面两个条件:输入的总脚数N必须是偶数,否则提示数据错误的原

26、因,要求重新输入数据。(使用求余方法判断,即N Mod 20)图2.3.3 实验3.5运行界面 若求出的只数为负数,提示数据错误的原因,如图2.3.3所示,重新输入数据。(使用总只数和总脚数的关系,即N4*M Or N2*M )Private Sub Text2_LostFocus()Dim M%, N%, y%M = Val(Text1)N = Val(Text2)If N Mod 2 0 ThenMsgBox (脚数必须是偶数)Text2 = Text2.SetFocusElsey = N / 2 - MIf N 4 * M Or N =0。Private Sub Command1_Cli

27、ck()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(de) / t, 0.00)Text5 = Format(-b - Sqr(de) / t, 0.00)ElseText4 = Format(-b / t, 0.00) & + & Format(S

28、qr(Abs(de) / t, 0.00) & iText5 = Format(-b / t, 0.00) & - & Format(Sqr(Abs(de) / t, 0.00) & iEnd IfEnd SubPrivate Sub Command2_Click()Text1 = Text2 = Text3 = Text4 = Text5 = End Sub实验3-7检查表达式输入中圆括号配对问题。要求对文本框输入的算术表达式,检验其圆括号配对情况,并给出相应信息,如图2.3.5所示。当单击“重置”按钮,清除文本框输入的内容、窗体显示的信息和计算,并对窗体级变量赋初值零,便于再次输入和统计。

29、提示:在过程外最上方声明一个窗体级变量n,存放统计括号配对的情况;在Text1_KeyPress(KeyAscii As integer)事件过程中进行如下处理:If Chr(KeyAscii)不是等号 Then若是左括号”(”则n=n+1;若是右括号”)”则n=n-1;Else结束表达式输入,对n的3种情况:=n、0、0用Print方法显示相应的信息End If用一个嵌套的双分支和内嵌两个多分支结构来实现。Dim n!Private Sub Command1_Click()Text1.Text = n = 0ClsEnd SubPrivate Sub Text1_KeyPress(KeyAs

30、cii As Integer)If Chr(KeyAscii) = ThenIf Chr(KeyAscii) = ( Thenn = n + 1End IfIf Chr(KeyAscii) = ) Thenn = n - 1End IfElseIf n = 0 ThenPrint 括号配对成功;ElseIf n 0 ThenPrint 左括号多于右括号 & n & 个,按“重置”按钮,重新输入End IfIf n 7, Is 7 Or Text1 1 ThenMsgBox 数字为17,重新输入Text1 = Text1.SetFocusElseLabel3 = Choose(Text1, Mo

31、nday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)End IfEnd Sub实验3-9设计如图2.3.6所示的计算程序。当输入参数,选择“函数”和“字形”后单击“计算”按钮,在Label3以选择的字形显示计算的结果。提示:关于“字形”复选框的选用采用逐个判断选择,进行属性值的对应设置。字形的属性见表2.3.1,设置属性值为True时其属性起作用。字 形 属 性意义FontBold粗体FontItalic斜体FontStrikethru删除线FontUnderline下划线图2.3.6 实验3.9运行界面Private Su

32、b Command1_Click()If Option1.Value ThenLabel3.Caption = Sin( & Text1.Text & )= & Sin(Val(Text1.Text)ElseIf Option2.Value ThenLabel3.Caption = Exp( & Text1.Text & )= & Exp(Val(Text1.Text)ElseLabel3.Caption = Sqr( & Text1.Text & )= & Sqr(Val(Text1.Text)End IfIf Check1.Value ThenLabel3.FontBold = TrueE

33、lseLabel3.FontBold = FalseEnd IfIf Check2.Value ThenLabel3.FontItalic = TrueElseLabel3.FontItalic = FalseEnd IfIf Check3.Value ThenLabel3.FontUnderline = TrueElseLabel3.FontUnderline = FalseEnd IfEnd Sub实验3-10利用单选按钮,选择目的地和车速类型,显示从上海出发到目的地座票的票价,如图2.3.7所示。从上海到南京、北京乘火车有3种车速类型:高铁(二等)、动车、快车,座位票的票价见表2.3.2

34、。当选择了目的地、车速类型单选按钮后,在Label1控件显示选择的相关信息和车票价格。表2.3.2 票 价目 的 地高 铁动 车快 车南京1409347北京555410179图2.3.7 实验3.10运行界面提示:Command1_Click事件采用一个双分支(目的地)结构分别嵌套一个多分支(车速类型)来实现;显示的内容通过各单选按钮的Caption属性来获得。Private Sub Command1_Click()If Option1.Value = True ThenIf Option3.Value = True ThenLabel1.Caption = 从上海到南京 高铁价格 140元E

35、lseIf Option4.Value = True ThenLabel1.Caption = 从上海到南京 动车价格 93元ElseLabel1.Caption = 从上海到南京 快车价格 47元End IfElseIf Option3.Value = True ThenLabel1.Caption = 从上海到北京 高铁价格 555元ElseIf Option4.Value = True ThenLabel1.Caption = 从上海到北京 动车价格 410元ElseLabel1.Caption = 从上海到北京 快车价格 179元End IfEnd IfEnd Sub实验3-11编写一个“个人简历表”程序。该程序运行后,用户在文本框中输入姓名和年龄,选择性别、职业、学历和个人兴趣等个人信息。单击“递交”按钮运行后,在右侧Label1控件显示具体个人信息;单击“重置”按钮则清除输入的信息和所做的选择。运行界面如图2.3.8所示。图2.3.8 个人简历表提示:利用xb,xl,zy,ah字符串变量分别保存性别、学历、职业和爱好的选择信息。Dim xm, xb, xl, zy, ah As StringPrivate Sub command1_Click()If Text1.Text = ThenText1.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

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

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服