Visual Basic程序设计教程(第4版)试验答案(DOC)_第1页
Visual Basic程序设计教程(第4版)试验答案(DOC)_第2页
Visual Basic程序设计教程(第4版)试验答案(DOC)_第3页
Visual Basic程序设计教程(第4版)试验答案(DOC)_第4页
Visual Basic程序设计教程(第4版)试验答案(DOC)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——VisualBasic程序设计教程(第4版)试验答案(DOC)※声明:

1.试验所属课本原件为《VisualBasic程序设计教程(第4版)(□主编龚沛曾□编者杨志强陆慰民谢步瀛)》;2.试验答案代码采用红色字体突出;

3.仅提供课本前七个试验的代码,之后的试验上课考试均不涉及故不作;

4.教学平台上机试验、课本篇后试验,两者题目操作略有差异,作业以前者要求为准,故以下答案代码为前者代码,如对后者代码有所需求请私信;5.本文为原创,复制转载请注明出处;

6.假使对代码有所疑问,或者略感繁琐想直接要已完成试验,请私信;

7.浏览、复制、下载后请给一个合理的评价,感谢不尽。

试验1-1

编制简单的欢迎界面程序。

要求:在屏幕上显示“欢迎学习VisualBasic〞;在文本框Text1中输入姓名;单击命令按钮“你输入的姓名是〞,在Label3标签显示在文本框中输入的姓名。

程序运行效果如图2.1.1所示。程序以“学号-1-1.frm〞和“学号-1-1.vbp〞文件名保存。以后每个试验项目的命名规则都是如此,即“学号-试验号-试验题目〞。(如某同学的学号为A10414001,所完成的是试验2的第3题,那么程序文件名为“A10414001-2-3.frm〞和“A10414001-2-3.vbp〞)

图2.1.1试验1.1运行界面提醒:

(1)试验所用到的控件及属性设置见表2.1.1。表2.1.1属性设置控件名Label1

属性

Caption=\欢迎学习VisualBasic\;Font属性:字号为二号,字体为隶书,Aligment=2(居中)

Label2

Caption=\请输入你的姓名\;Font属性:字体为楷体,有下划线

Label3

Caption=\,BorderStyle=1

Text1Text=\

Command1Caption=\你输入的姓名是\

(2)“欢迎学习VisualBasic〞要在两行显示,只要将Label1控件的宽度缩小一些。

PrivateSubCommand1_Click()Label3.Caption=Text1.TextEndSub

试验1-2

模仿教学篇例1.1,将事件过程中的自上而下移动改为自右向左移动,同时考虑文字超出窗体边界的状况。各个控件及属性窗口的设置见表2.1.2,背景图形文件可以选择自己喜欢的,按钮上的图标可通过Windows探寻功能查找。以“学号-1-2〞为项目名保存。表2.1.2属性设置控件名Form1

属性

Caption=\试验1.2\;Picture:选择自己喜欢的图片

Label1Caption=\我开始学习程序设计\;FontSize=36;BackStyle=0

Command1Caption=\;Style=1;

Picture=\;ToolTipText=\自动\

Command2Caption=\;Style=1;Picture=\;

ToolTipText=\手动\

Timer1

Interval=0

注:由于印刷错误,例题1.1中两个命令按钮的图形与事件过程代码不一致,需要调整。

提醒:自定义事件过程MyMove代码应调整为,可实现文字移动方向的改变SubMyMove()

Label1.MoveLabel1.Left-50,Label1.Top

IfLabel1.Left

图2.1.4试验1.6运行界面要求:

(1)单击“缩小一半〞按钮,图片纵、横均缩小一半。(2)单击“还原〞按钮,图片与初始装入时同大。提醒:为了实现还原效果,要做以下3件事。

(1)必需在事件过程外,即程序代码最上方声明窗体级变量:

Dimh%,w%‘用户输入的变量声明语句

(2)在Form1_Load事件中保存图像控件的初始值:w=Image1.Widthh=Image1.Height

(3)在Command2_Click事件中还原为初始值:Image1.Width=wImage1.Height=h

缩小一半Command1_Click事件请读者自行完成。思考:若要设置图片放大效果,如何修改代码?

Dimh%,w%

PrivateSubCommand1_Click()Image1.Width=Image1.Width*0.5Image1.Height=Image1.Height*0.5EndSub

PrivateSubCommand2_Click()Image1.Width=wImage1.Height=hEndSub

PrivateSubForm_Load()w=Image1.Widthh=Image1.HeightEndSub

试验2-1

随机生成3个正整数,其中一个1位数,1个2位数,1个3位数,计算它们的平均值,保存两位小数,运行界面如图2.2.1所示。

图2.2.1试验2.1运行界面提醒:

(1)随机数生成某范围内的正整数公式为Int(Rnd*范围+基数)

其中范围=数的上限-下限+1,基数=数的下限。例如,要生成2位数,语句为

Int(Rnd*(99-10+1)+10)=Int(Rnd*90+10)

(2)保存两位小数,利用Format函数,形式为Format(要显示的数值,\。

PrivateSubCommand1_Click()Text1.Text=Int(Rnd*9+1)Text2.Text=Int(Rnd*90+10)Text3.Text=Int(Rnd*900+100)EndSub

PrivateSubCommand2_Click()

Text4.Text=Format((Val(Text1.Text)+Val(Text2.Text)+Val(Text3.Text))/3,\EndSub

PrivateSubCommand3_Click()Text1.Text=\Text2.Text=\Text3.Text=\Text4.Text=\EndSub

试验2-2

我国有13亿人口,假定按人口年增长0.8%计算,多少年后我国人口超过26亿。提醒:

(1)已知年增长率r=0.8%,求人数超过26亿的年数n公式为:

其中:Log(x)为对数函数,Log(2)缘由Log(13/26),0.8%需写成0.008

(2)该题目的界面设计由读者自行设计。

PrivateSubCommand1_Click()n=Int(Log(2)/Log(1+0.008)+1)Text1=n&\年后人口超过26亿\EndSub

试验2-3

输入一个合法的3位正整数,测试其数值合法性后,逆序输出并显示。例如,输入“734〞,输出是“437〞,如图2.2.2所示。提醒:

(1)利用Text1_LostFocus事件,输入数据合法性检查调用IsNumeric函数,参阅教学篇例2.5;若有错利用MsgBox显示出错信息,如图2.2.3所示;清除文本框内输入的非法数据,通过SetFocus定位于文本框处,重新输入。(2)利用“MOD〞和“\\〞运算符将一个3位数分开出3个1

位数,然后利用乘法和加法运算将3个1位数连接成一个逆序的3位数。

图2.2.2试验2.3运行界面图2.2.3出错信息

PrivateSubCommand1_Click()Dimx%,x1%,x2%,x3%x=Val(Text1)x1=xMod10x2=(xMod100)\\10x3=x\\100

Label2=x1*100+x2*10+x3EndSub

PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then

IfNotIsNumeric(Text1.Text)ThenText1.Text=\EndIf

EndIfEndSub

PrivateSubText1_LostFocus()IfNotIsNumeric(Text1.Text)Then

MsgBox\输入非数值数据,请重新输入\数据检验\Text1.Text=\Text1.SetFocusEndIfEndSub

试验2-4

输入一个字符串,分别调用UCase、Len、Mid、Left、Right函数,显示如图2.2.4所示的效果。

图2.2.4试验2.4运行界面提醒:

事件过程可以在Form_Click中编码,输出控件可以使用标签控件。

PrivateSubForm_click()Label1=UCase(Text1.Text)Label2=Len(Text1.Text)Label3=Left(Text1,11)Label4=Mid(Text1,12,6)Label5=Right(Text1,5)EndSub

试验2-5

效仿试验2.4,验证转换函数的使用,Text1文本框输入字符串,Text2文本框显示调用所选函数的结果,4个命令按钮为转换函数,Label2显示对应的函数名,运行效果如图2.2.5所示。

图2.2.5试验2.5运行界面

PrivateSubCommand1_Click()Label2=\函数的结果\Text2=Val(Text1.Text)EndSub

PrivateSubCommand2_Click()Label2=\函数的结果\Text2=Str(Text1.Text)EndSub

PrivateSubCommand3_Click()Label2=\函数的结果\Text2=Chr(Text1.Text)EndSub

PrivateSubCommand4_Click()Label2=\函数的结果\

Text2=Asc(Text1.Text)EndSub

试验2-6

Print方法练习,显示字符图形。参考教学篇例4.4输出简单图形,如图2.2.6所示。要求窗体不可改变大小,当单击“清屏〞按钮后,清除窗体所显示的图形。提醒:

利用循环语句和String函数。读者也可以发挥自己的想像力,设计更美观的图形。

进一步要求:若要显示如图2.2.7所示的图形,程序要如何修改?

图2.2.6试验2.6运行界面图2.2.7进一步要求运行界面

PrivateSubCommand1_Click()

xl=Label8.CaptionElse

MsgBox\学历未选\提醒\EndIf

IfOption6.ValueThenzy=Label9.CaptionElseIfOption7.ValueThenzy=Label10.CaptionElseIfOption8.ValueThenzy=Label11.CaptionElse

MsgBox\职业未选\提醒\EndIf

IfCheck1.ValueThenah=Label12.CaptionElseah=\EndIf

IfCheck2.ValueThen

ah=Label13.Caption+\Elseah=ah+\

EndIf

IfCheck3.ValueThen

ah=Label14.Caption+\Elseah=ah+\EndIf

IfCheck4.ValueThen

ah=Label15.Caption+\Elseah=ah+\EndIf

Label3.Caption=\简历\姓名:\String(2*i-1,\★\NextiEndSub

试验4-2

用单循环实现如图2.4.2所示的界面。

图2.4.2试验4.2运行界面

提醒:利用Chr函数将字母编码值转换成字母。

PrivateSubForm_Click()Fori=1To10Step1

PrintTab(i);String((20-2*i),Chr(64+i))NextiEndSub

试验4-3

求s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…+n)。

Text2.SetFocusElsey=N/2-M

IfN>4*MOrN=0。

PrivateSubCommand1_Click()Dima!,b!,c!,x1!,x2!,de!a=Text1b=Text2c=Text3

de=b*b-4*a*ct=2*aIfde=0Then

Text4=Format(-b/t,\Text5=Format(-b/t,\ElseIfde>0Then

Text4=Format((-b+Sqr(de))/t,\

Text5=Format((-b-Sqr(de))/t,\Else

Text4=Format(-b/t,\t,\

Text5=Format(-b/t,\t,\EndIfEndSub

PrivateSubCommand2_Click()Text1=\Text2=\Text3=\Text4=\Text5=\EndSub

试验3-7

检查表达式输入中圆括号配对问题。要求对文本框输入的算术表达式,检验其圆括号配对状况,并给出相应信息,如图

2.3.5所示。当单击“重置〞按钮,清除文本框输入的内容、窗体显示的信息和计算,并对窗体级变量赋初值零,便于再次输入和统计。

提醒:

①在过程外最上方声明一个窗体级变量n,存放统计括号配对的状况;

②在Text1_KeyPress(KeyAsciiAsinteger)事件过程中进行如下处理:

IfChr(KeyAscii)不是等号Then若是左括号〞(〞则n=n+1;若是右括号〞)〞则n=n-1;Else

终止表达式输入,对n的3种状况:=n、>0、\IfChr(KeyAscii)=\n=n+1EndIf

IfChr(KeyAscii)=\n=n-1EndIfElseIfn=0ThenPrint\括号配对成功\ElseIfn>0Then

Print\左括号多于右括号\个,按“重置〞按钮,重新输入\EndIfIfn7,Is7OrText1Label3.FontUnderline=TrueElse

Label3.FontUnderline=FalseEndIfEndSub

试验3-10

利用单项选择按钮,选择目的地和车速类型,显示从上海出发到目的地座票的票价,如图2.3.7所示。从上海到南京、北京乘火车有3种车速类型:高铁(二等)、动车、快车,座位票的票价见表2.3.2。选中择了目的地、车速类型单项选择按钮后,在Label1控件显示选择的相关信息和车票价格。表2.3.2票价目的地高铁南京北京140555动车93410快车47179图2.3.7试验3.10运行界面提醒:Command1_Click事件采用一个双分支(目的地)结构分别嵌套一个多分支(车速类型)来实现;显示的内容通过各单项选择按钮的Caption属性来获得。

PrivateSubCommand1_Click()IfOption1.Value=TrueThenIfOption3.Value=TrueThen

Label1.Caption=\从上海到南京高铁价格140元\ElseIfOption4.Value=TrueThen

Label1.Caption=\从上海到南京动车价格93元\Else

Label1.Caption=\从上海到南京快车价格47元\EndIf

Else

IfOption3.Value=TrueThen

Label1.Caption=\从上海到北京高铁价格555元\ElseIfOption4.Value=TrueThen

Label1.Caption=\从上海到北京动车价格410元\Else

Label1.Caption=\从上海到北京快车价格179元\EndIfEndIfEndSub

试验3-11

编写一个“个人简历表〞程序。该程序运行后,用户在文本框中输入姓名和年龄,选择性别、职业、学历和个人兴趣等个人信息。单击“递交〞按钮运行后,在右侧Label1控件显示具体个人信息;单击“重置〞按钮则清除输入的信息和所做的选择。运行界面如图2.3.8所示。

图2.3.8个人简历表提醒:利用xb,xl,zy,ah字符串变量分别保存性别、学历、职业和爱好的选择信息。

Dimxm,xb,xl,zy,ahAsStringPrivateSubcommand1_Click()IfText1.Text=\Text1.SetFocus

MsgBox\姓名未填\提醒\Else

xm=Text1.TextEndIf

IfNotIsNumeric(Text2.Text)OrVal(Text2.Text)=60ThenText2.Text=\Text2.SetFocus

MsgBox\年龄输入错误\提醒\Else

nl=Val(Text2.Text)EndIf

IfOption1.ValueThenxb=Label4.CaptionElseIfOption2.ValueThenxb=Label5.CaptionElse

MsgBox\性别未选\提醒\EndIf

IfOption3.ValueThenxl=Label6.CaptionElseIfOption4.ValueThenxl=Label7.CaptionElseIfOption5.ValueThen

PrintFori=1To5

PrintTab(15-i*2);String(2*i-1,\★\1),\☆\★\NextiEndSub

PrivateSubCommand2_Click()ClsEndSub

试验2-7

用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保存三位小数,其间有间隔。

PrivateSubcommand1_Click()

x=Val(InputBox(\输入一个正实数\计算\pf=Format(x*x,\pfg=Format(Sqr(x),\lf=Format(x*x*x,\

lfg=Format(x^(1/3),\

Print\平方为:\

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论