您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > Visual-Basic程序设计教程(第4版)实验答案
※声明: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属性设置控件名属性Label1Caption=欢迎学习VisualBasic;Font属性:字号为二号,字体为隶书,Aligment=2(居中)Label2Caption=请输入你的姓名;Font属性:字体为楷体,有下划线Label3Caption=,BorderStyle=1Text1Text=Command1Caption=你输入的姓名是(2)“欢迎学习VisualBasic”要在两行显示,只要将Label1控件的宽度缩小一些。PrivateSubCommand1_Click()Label3.Caption=Text1.TextEndSub实验1-2模仿教学篇例1.1,将事件过程中的自上而下移动改为自右向左移动,同时考虑文字超出窗体边界的情况。各个控件及属性窗口的设置见表2.1.2,背景图形文件可以选择自己喜欢的,按钮上的图标可通过Windows搜索功能查找。以“学号-1-2”为项目名保存。表2.1.2属性设置控件名属性Form1Caption=实验1.2;Picture:选择自己喜欢的图片Label1Caption=我开始学习程序设计;FontSize=36;BackStyle=0Command1Caption=;Style=1;Picture=clock02.ico;ToolTipText=自动Command2Caption=;Style=1;Picture=key04.ico;ToolTipText=手动Timer1Interval=0注:因为印刷错误,例题1.1中两个命令按钮的图形与事件过程代码不一致,需要调整。提示:自定义事件过程MyMove代码应调整为,可实现文字移动方向的改变SubMyMove()Label1.MoveLabel1.Left-50,Label1.TopIfLabel1.Left0ThenLabel1.Left=Form1.WidthEndSubSubMyMove()Label1.MoveLabel1.Left-50,Label1.TopIfLabel1.Left0ThenLabel1.Left=Form1.WidthEndSubPrivateSubCommand1_Click()Timer1.Interval=200EndSubPrivateSubCommand2_Click()Timer1.Interval=0CallMyMoveEndSubPrivateSubForm_Load()Timer1.Interval=0EndSubPrivateSubTimer1_Timer()CallMyMoveEndSub实验1-3编一个程序,在文本框中统计在该窗口上鼠标单击的次数,效果如图2.1.2所示。以“学号-1-3”为项目名保存。图2.1.2实验1.3运行界面提示:(1)对窗体编写两个事件:Form_Load事件中对文本框置初值为空;Form_Click事件对鼠标单击文本框计数。(2)对鼠标单击文本框计数计算为:Text1.Text=Val(Text1.Text)+1PrivateSubForm_click()Text1.Text=Val(Text1.Text)+1EndSubPrivateSubForm_Load()Text1.Text=EndSub实验1-4按照教学篇例2.2对窗体三个事件过程(Load、Click、DblClick)编程,在3个事件中装入不同的图片(自己选择);在属性窗口练习鼠标指针改变:MousePointer(值为99,用户自定义)、MouseIcon为Key04.ico图标文件,练习窗体图标(Icon)、边框线类型(BorderStyle)、最大化按钮和最小化按钮的改变,运行观察其效果。以“学号-1-4”为项目名保存。提示:例题中Form_Resize事件可以不考虑,Picture属性设置中注意图片文件有后缀名,运行测试前需要先保存项目名,保证图片文件和程序文件在同一个文件夹下,否则会出现图片找不到的错误提示。PrivateSubForm_Click()Caption=单击窗体Picture=LoadPicture(App.Path+\p2.jpg)Print欢迎使用VBEndSubPrivateSubForm_DblClick()ClsCaption=双击窗体Picture=LoadPicture(App.Path+\p3.jpg)Print结束使用VBEndSubPrivateSubForm_Load()Caption=装入窗体Picture=LoadPicture(App.Path+\p1.jpg)Print装入图片EndSub实验1-5命令按钮、字号、内容和格式的复制练习,效果如下图所示。有关控件及属性参见下表。以“学号-1-5”为项目名保存。图2.1.3实验1.5运行界面表2.1.3属性设置控件名属性Form1Caption=实验1.5Label1Caption=输入文本复制文本Text1Text=VB功能强大,但要下功夫学习才能学好;MultiLine=True;ScrollBar=2Text2Text=;MultiLine=TrueCommand1Caption=隶书25磅Command2Caption=复制=要求:(1)Command1:使得Text1的字体和字号根据命令按钮显示的要求改变(2)Command2:要求将Text1选中的内容及其格式复制到Text2。选中的内容通过Text1的SelText属性获得提示:为使Text2文本框保持Text1中的字符格式,通过Text2.FontSize=Text1.FontSize和Text2.FontName=Text1.FontName实现PrivateSubCommand1_Click()Text1.FontName=隶书Text1.FontSize=25EndSubPrivateSubCommand2_Click()Text2=Text1.SelTextText2.FontName=Text1.FontNameText2.FontSize=Text1.FontSizeEndSub实验1-6图片缩小、还原的设置。窗体上放置一个Image图像控件和两个命令按钮。Image图像控件装入自己喜欢的图片,设置Stretch属性为True,使得图片随着图像控件的大小而变,如图2.1.4所示。以“学号-1-6”为项目名保存。图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.5EndSubPrivateSubCommand2_Click()Image1.Width=wImage1.Height=hEndSubPrivateSubForm_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(要显示的数值,0.00)。PrivateSubCommand1_Click()Text1.Text=Int(Rnd*9+1)Text2.Text=Int(Rnd*90+10)Text3.Text=Int(Rnd*900+100)EndSubPrivateSubCommand2_Click()Text4.Text=Format((Val(Text1.Text)+Val(Text2.Text)+Val(Text3.Text))/3,0.00)EndSubPrivateSubCommand3_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\100Label2=x1*100+x2*10+x3EndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenIfNotIsNumeric(Text1.Text)ThenText1.Text=EndIfEndIfEndSubPri
本文标题:Visual-Basic程序设计教程(第4版)实验答案
链接地址:https://www.777doc.com/doc-4315618 .html