首页 Visual-Basic程序设计教程(第4版)实验答案(DOC)

Visual-Basic程序设计教程(第4版)实验答案(DOC)

举报
开通vip

Visual-Basic程序设计教程(第4版)实验答案(DOC)Visual-Basic程序设计教程(第4版)实验答案(DOC)Visual-Basic程序设计教程(第4版)实验答案(DOC)PAGEVisual-Basic程序设计教程(第4版)实验答案(DOC)※声明:实验所属课本原件为《VisualBasic程序设计教程(第4版)(□主编龚沛曾□编者杨志强陆慰民谢步瀛)》;实验答案代码采用红色字体突出;仅提供课本前七个实验的代码,之后的实验上课考试均不涉及故不作;教学平台上机实验、课本篇后实验,两者题目操作略有差异,作业以前者要求为准,故以下答案代码为前者代码,如对后...

Visual-Basic程序设计教程(第4版)实验答案(DOC)
Visual-Basic程序设计教程(第4版)实验答案(DOC)Visual-Basic程序设计教程(第4版)实验答案(DOC)PAGEVisual-Basic程序设计教程(第4版)实验答案(DOC)※声明:实验所属课本原件为《VisualBasic程序设计教程(第4版)(□主编龚沛曾□编者杨志强陆慰民谢步瀛)》;实验答案代码采用红色字体突出;仅提供课本前七个实验的代码,之后的实验上课考试均不涉及故不作;教学平台上机实验、课本篇后实验,两者题目操作略有差异,作业以前者 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 为准,故以下答案代码为前者代码,如对后者代码有所需求请私信;本文为作者原创,复制转载请注明出处;如果对代码有所疑问,或者略感繁琐想直接要已完成实验,请私信;浏览、复制、下载后请给作者一个合理的评价,感激不尽。实验1-1编制简单的欢迎界面程序。要求:在屏幕上显示“欢迎学习VisualBasic”;在文本框Text1中输入姓名;单击命令按钮“你输入的姓名是”,在Label3标签显示在文本框中输入的姓名。程序运行效果如图所示。程序以“学号”和“学号”文件名保存。以后每个实验项目的命名规则都是如此,即“学号-实验号-实验题目”。(如某同学的学号为A,所完成的是实验2的第3题,那么程序文件名为“”和“”) 图实验运行界面提示:(1)实验所用到的控件及属性设置见表。表属性设置控件名属性Label1Caption="欢迎学习VisualBasic";Font属性:字号为二号,字体为隶书,Aligment=2(居中)Label2Caption="请输入你的姓名";Font属性:字体为楷体,有下划线Label3Caption="",BorderStyle=1Text1Text=""Command1Caption="你输入的姓名是"(2)“欢迎学习VisualBasic”要在两行显示,只要将Label1控件的宽度缩小一些。PrivateSubCommand1_Click()=EndSub实验1-2模仿教学篇例,将事件过程中的自上而下移动改为自右向左移动,同时考虑文字超出窗体边界的情况。各个控件及属性窗口的设置见表,背景图形文件可以选择自己喜欢的,按钮上的图标可通过Windows搜索功能查找。以“学号-1-2”为项目名保存。表属性设置控件名属性Form1Caption="实验";Picture:选择自己喜欢的图片Label1Caption="我开始学习程序设计";FontSize=36;BackStyle=0Command1Caption="";Style=1;Picture="";ToolTipText="自动"Command2Caption="";Style=1;Picture="";ToolTipText="手动"Timer1Interval=0注:因为印刷错误,例题中两个命令按钮的图形与事件过程代码不一致,需要调整。提示:自定义事件过程MyMove代码应调整为,可实现文字移动方向的改变SubMyMove()-50,If<0Then=EndSubSubMyMove()-50,If<0Then=EndSubPrivateSubCommand1_Click()=200EndSubPrivateSubCommand2_Click()=0CallMyMoveEndSubPrivateSubForm_Load()=0EndSubPrivateSubTimer1_Timer()CallMyMoveEndSub实验1-3编一个程序,在文本框中统计在该窗口上鼠标单击的次数,效果如图所示。以“学号-1-3”为项目名保存。图实验运行界面提示:(1)对窗体编写两个事件:Form_Load事件中对文本框置初值为空;Form_Click事件对鼠标单击文本框计数。(2)对鼠标单击文本框计数计算为:=Val+1PrivateSubForm_click()=Val+1EndSubPrivateSubForm_Load()=""EndSub实验1-4按照教学篇例对窗体三个事件过程(Load、Click、DblClick)编程,在3个事件中装入不同的图片(自己选择);在属性窗口练习鼠标指针改变:MousePointer(值为99,用户自定义)、MouseIcon为图标文件,练习窗体图标(Icon)、边框线类型(BorderStyle)、最大化按钮和最小化按钮的改变,运行观察其效果。以“学号-1-4”为项目名保存。提示:例题中Form_Resize事件可以不考虑,Picture属性设置中注意图片文件有后缀名,运行测试前需要先保存项目名,保证图片文件和程序文件在同一个文件夹下,否则会出现图片找不到的错误提示。PrivateSubForm_Click()Caption="单击窗体"Picture=LoadPicture+"\")Print"欢迎使用VB"EndSubPrivateSubForm_DblClick()ClsCaption="双击窗体"Picture=LoadPicture+"\")Print"结束使用VB"EndSubPrivateSubForm_Load()Caption="装入窗体"Picture=LoadPicture+"\")Print"装入图片"EndSub实验1-5命令按钮、字号、内容和格式的复制练习,效果如下图所示。有关控件及属性参见下表。以“学号-1-5”为项目名保存。图实验运行界面表属性设置控件名属性Form1Caption="实验"Label1Caption="输入文本复制文本"Text1Text="VB功能强大,但要下功夫学习才能学好";MultiLine=True;ScrollBar=2Text2Text="";MultiLine=TrueCommand1Caption="隶书25磅"Command2Caption="复制=>"要求:(1)Command1:使得Text1的字体和字号根据命令按钮显示的要求改变(2)Command2:要求将Text1选中的内容及其格式复制到Text2。选中的内容通过Text1的SelText属性获得提示:为使Text2文本框保持Text1中的字符格式,通过=和=实现PrivateSubCommand1_Click()="隶书"=25EndSubPrivateSubCommand2_Click()Text2===EndSub实验1-6图片缩小、还原的设置。窗体上放置一个Image图像控件和两个命令按钮。Image图像控件装入自己喜欢的图片,设置Stretch属性为True,使得图片随着图像控件的大小而变,如图所示。以“学号-1-6”为项目名保存。图实验运行界面要求:(1)单击“缩小一半”按钮,图片纵、横均缩小一半。(2)单击“还原”按钮,图片与初始装入时同大。提示:为了实现还原效果,要做以下3件事。(1)必须在事件过程外,即程序代码最上方声明窗体级变量:Dimh%,w%‘用户输入的变量声明语句(2)在Form1_Load事件中保存图像控件的初始值:w=h=(3)在Command2_Click事件中还原为初始值:=w=h缩小一半Command1_Click事件请读者自行完成。思考:若要设置图片放大效果,如何修改代码?Dimh%,w%PrivateSubCommand1_Click()=*=*EndSubPrivateSubCommand2_Click()=w=hEndSubPrivateSubForm_Load()w=h=EndSub实验2-1随机生成3个正整数,其中一个1位数,1个2位数,1个3位数,计算它们的平均值,保留两位小数,运行界面如图所示。图实验运行界面提示:(1)随机数生成某范围内的正整数公式为Int(Rnd*范围+基数)其中范围=数的上限-下限+1,基数=数的下限。例如,要生成2位数,语句为Int(Rnd*(99-10+1)+10)=Int(Rnd*90+10)(2)保留两位小数,利用Format函数,形式为Format(要显示的数值,"")。PrivateSubCommand1_Click()=Int(Rnd*9+1)=Int(Rnd*90+10)=Int(Rnd*900+100)EndSubPrivateSubCommand2_Click()=Format((Val+Val+Val)/3,"")EndSubPrivateSubCommand3_Click()=""=""=""=""EndSub实验2-2我国有13亿人口,假定按人口年增长%计算,多少年后我国人口超过26亿。提示:  (1)已知年增长率r=%,求人数超过26亿的年数n公式为:其中:Log(x)为对数函数,Log(2)缘由Log(13/26),%需写成(2)该题目的界面设计由读者自行设计。PrivateSubCommand1_Click()n=Int(Log(2)/Log(1++1)Text1=n&"年后人口超过26亿"EndSub实验2-3输入一个合法的3位正整数,测试其数值合法性后,逆序输出并显示。例如,输入“734”,输出是“437”,如图所示。提示:(1)利用Text1_LostFocus事件,输入数据合法性检查调用IsNumeric函数,参阅教学篇例;若有错利用MsgBox显示出错信息,如图所示;清除文本框内输入的非法数据,通过SetFocus定位于文本框处,重新输入。(2)利用“MOD”和“\”运算符将一个3位数分离出3个1位数,然后利用乘法和加法运算将3个1位数连接成一个逆序的3位数。图实验运行界面图出错信息PrivateSubCommand1_Click()Dimx%,x1%,x2%,x3%x=Val(Text1)x1=xMod10x2=(xMod100)\10x3=x\100Label2=x1*100+x2*10+x3EndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenIfNotIsNumericThen=""EndIfEndIfEndSubPrivateSubText1_LostFocus()IfNotIsNumericThenMsgBox"输入非数值数据,请重新输入",,"数据检验"=""EndIfEndSub实验2-4输入一个字符串,分别调用UCase、Len、Mid、Left、Right函数,显示如图所示的效果。图实验运行界面提示:  事件过程可以在Form_Click中编码,输出控件可以使用标签控件。PrivateSubForm_click()Label1=UCaseLabel2=LenLabel3=Left(Text1,11)Label4=Mid(Text1,12,6)Label5=Right(Text1,5)EndSub实验2-5效仿实验,验证转换函数的使用,Text1文本框输入字符串,Text2文本框显示调用所选函数的结果,4个命令按钮为转换函数,Label2显示对应的函数名,运行效果如图所示。图实验运行界面PrivateSubCommand1_Click()Label2="Val函数的结果"Text2=ValEndSubPrivateSubCommand2_Click()Label2="Str函数的结果"Text2=StrEndSubPrivateSubCommand3_Click()Label2="Chr函数的结果"Text2=ChrEndSubPrivateSubCommand4_Click()Label2="Asc函数的结果"Text2=AscEndSub实验2-6Print方法练习,显示字符图形。参考教学篇例输出简单图形,如图所示。要求窗体不可改变大小,当单击“清屏”按钮后,清除窗体所显示的图形。提示:利用循环语句和String函数。读者也可以发挥自己的想像力,设计更美观的图形。进一步要求:若要显示如图所示的图形,程序要如何修改?图实验运行界面图进一步要求运行界面PrivateSubCommand1_Click()PrintFori=1To5PrintTab(15-i*2);String(2*i-1,"★");String(10-(2*i-1),"☆");String(2*i-1,"★")NextiEndSubPrivateSubCommand2_Click()ClsEndSub实验2-7用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留三位小数,其间有间隔。PrivateSubcommand1_Click()x=Val(InputBox("输入一个正实数","计算",0))pf=Format(x*x,"")pfg=Format(Sqr(x),"")lf=Format(x*x*x,"")lfg=Format(x^(1/3),"")Print"平方为:";pf;Space(3);"平方根为:";pfg;Space(3);"立方为:";lf;Space(3);"立方根为:";lfgEndSub实验3-1在购买某物品时,若所标明的价钱x在下述范围内,所付钱y按对应折扣支付:    提示:此例用多分支结构实现,注意计算公式和条件表达式的正确书写。PrivateSubForm_Click()Dimx!,y!x=Val(InputBox("输入x的值"))Ifx<1000Theny=xElseIfx<2000Theny=*xElseIfx<3000Theny=*xElsey=*xEndIfPrintyEndSub实验3-2编一个程序输入上网的时间并计算上网费用,计算方法如下:同时为了鼓励多上网,每月收费最多不超过150元。提示:首先利用多分支If语句根据3个时间段算出费用,然后再用单分支If语句对超过150元的费用设置为150元。PrivateSubForm_Click()Dimx!,y!x=Val(InputBox("输入上网时间"))Ifx<10Theny=30ElseIfx<50Theny=30+*(x-10)Elsey=30+*40+2*(x-50)EndIfIfy>150Theny=150EndIfPrintyEndSub实验3-3输入x,y,z三个数,按从大到小的次序显示,如图所示。 图实验运行界面提示:①利用InputBox函数输入3个数,存放到数值型变量中,然后对其进行比较;若放在字符串变量中,有时会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现“34”>“2345”>“126789”的情况)。②对三个数进行排序,只能通过两两比较,一般可用三条单分支if语句来实现。方法如下:先将x与y比较,使得x>y;然后将x与z比较,使得x>z,此时x最大;最后将y与z比较,使得y>z。③要显示多个数据,可以用“;”逐一显示,也可利用“&”字符串连接符将多个变量连接显示。例如要输出x、y、z:Print”排序后”;x;””;y;””;z‘用分号将多个变量显示也可Print”排序后”&x&””&y&””&z‘用”&”字符串连接符 思考:若要按从小到大的次序显示,程序将如何修改?PrivateSubCommand1_Click()Dimx!,y!,z!x=InputBox("inputx")y=InputBox("inputy")z=InputBox("inputz")Print"xyz"Print"排序前";x;"";y;"";zIfx0)图实验运行界面②若求出的只数为负数,提示数据错误的原因,如图所示,重新输入数据。(使用总只数和总脚数的关系,即N>4*MOrN<2*M)PrivateSubText2_LostFocus()DimM%,N%,y%M=Val(Text1)N=Val(Text2)IfNMod2<>0ThenMsgBox("脚数必须是偶数")Text2=""Elsey=N/2-MIfN>4*MOrN<2*MThenMsgBox("出现荒唐解,请重新输入")Text2=""Elsey=N/2-MLabel2=M-yLabel3=yEndIfEndIfEndSub实验3-6输入一元二次方程的ax2+bx+c=0的系数a,b,c,计算并输出一元二次方程的两个根x1,x2。界面如图所示。 图实验运行界面提示:要考虑实根,要求判断b^2-4*a*c>=0。PrivateSubCommand1_Click()Dima!,b!,c!,x1!,x2!,de!a=Text1b=Text2c=Text3de=b*b-4*a*ct=2*aIfde=0ThenText4=Format(-b/t,"")Text5=Format(-b/t,"")ElseIfde>0ThenText4=Format((-b+Sqr(de))/t,"")Text5=Format((-b-Sqr(de))/t,"")ElseText4=Format(-b/t,"")&"+"&Format(Sqr(Abs(de))/t,"")&"i"Text5=Format(-b/t,"")&"-"&Format(Sqr(Abs(de))/t,"")&"i"EndIfEndSubPrivateSubCommand2_Click()Text1=""Text2=""Text3=""Text4=""Text5=""EndSub实验3-7检查表达式输入中圆括号配对问题。要求对文本框输入的算术表达式,检验其圆括号配对情况,并给出相应信息,如图所示。当单击“重置”按钮,清除文本框输入的内容、窗体显示的信息和计算,并对窗体级变量赋初值零,便于再次输入和统计。  提示:①在过程外最上方声明一个窗体级变量n,存放统计括号配对的情况;②在Text1_KeyPress(KeyAsciiAsinteger)事件过程中进行如下处理:IfChr(KeyAscii)不是等号Then若是左括号”(”则n=n+1;若是右括号”)”则n=n-1;Else结束表达式输入,对n的3种情况:=n、>0、<0用Print方法显示相应的信息EndIf用一个嵌套的双分支和内嵌两个多分支结构来实现。Dimn!PrivateSubCommand1_Click()=""n=0ClsEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfChr(KeyAscii)<>"="ThenIfChr(KeyAscii)="("Thenn=n+1EndIfIfChr(KeyAscii)=")"Thenn=n-1EndIfElseIfn=0ThenPrint"括号配对成功";ElseIfn>0ThenPrint"左括号多于右括号"&n&"个,按“重置”按钮,重新输入"EndIfIfn<0ThenPrint"右括号多于左括号"&-n&"个,按“重置”按钮,重新输入"EndIfEndIfEndIfEndSub实验3-8输入一个数字(1~7),分别通过Select语句和Choose函数两种方法用英文显示对应的星期一~星期日,效果如图所示: PrivateSubCommand1_Click()SelectCaseTrim(Text1)Case1Label2="Monday"Case2Label2="Tuesday"Case3Label2="Wednesday"Case4Label2="Thursday"Case5Label2="Friday"Case6Label2="Saturday"Case7Label2="Sunday"CaseIs>7,Is<1MsgBox"数字为1~7,重新输入"Text1=""EndSelectEndSubPrivateSubCommand2_Click()IfText1>7OrText1<1ThenMsgBox"数字为1~7,重新输入"Text1=""ElseLabel3=Choose(Text1,"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")EndIfEndSub实验3-9设计如图所示的计算程序。当输入参数,选择“函数”和“字形”后单击“计算”按钮,在Label3以选择的字形显示计算的结果。提示:关于“字形”复选框的选用采用逐个判断选择,进行属性值的对应设置。字形的属性见表,设置属性值为True时其属性起作用。字形属性意义FontBold粗体FontItalic斜体FontStrikethru删除线FontUnderline下划线 图实验运行界面PrivateSubCommand1_Click()IfThen="Sin("&&")="&Sin(Val)ElseIfThen="Exp("&&")="&Exp(Val)Else="Sqr("&&")="&Sqr(Val)EndIfIfThen=TrueElse=FalseEndIfIfThen=TrueElse=FalseEndIfIfThen=TrueElse=FalseEndIfEndSub实验3-10利用单选按钮,选择目的地和车速类型,显示从上海出发到目的地座票的票价,如图所示。从上海到南京、北京乘火车有3种车速类型:高铁(二等)、动车、快车,座位票的票价见表。当选择了目的地、车速类型单选按钮后,在Label1控件显示选择的相关信息和车票价格。表票价目的地高铁动车快车南京1409347北京555410179 图实验运行界面提示:Command1_Click事件采用一个双分支(目的地)结构分别嵌套一个多分支(车速类型)来实现;显示的内容通过各单选按钮的Caption属性来获得。PrivateSubCommand1_Click()If=TrueThenIf=TrueThen="从上海到南京高铁价格140元"ElseIf=TrueThen="从上海到南京动车价格93元"Else="从上海到南京快车价格47元"EndIfElseIf=TrueThen="从上海到北京高铁价格555元"ElseIf=TrueThen="从上海到北京动车价格410元"Else="从上海到北京快车价格179元"EndIfEndIfEndSub实验3-11编写一个“个人 简历 个人简历下载免费下载简历模版总经理简历下载资料员简历下载资料员简历下载 表”程序。该程序运行后,用户在文本框中输入姓名和年龄,选择性别、职业、学历和个人兴趣等个人信息。单击“递交”按钮运行后,在右侧Label1控件显示具体个人信息;单击“重置”按钮则清除输入的信息和所做的选择。运行界面如图所示。 图 个人简历 个人简历模版下载个人简历ppt模板免费下载个人简历表格下载下载个人简历直接填写考博个人简历模板下载 表提示:利用xb,xl,zy,ah字符串变量分别保存性别、学历、职业和爱好的选择信息。Dimxm,xb,xl,zy,ahAsStringPrivateSubcommand1_Click()If=""ThenMsgBox"姓名未填",,"提示"Elsexm=EndIfIfNotIsNumericOrVal<18OrVal>=60Then=""MsgBox"年龄输入错误",,"提示"Elsenl=ValEndIfIfThenxb=ElseIfThenxb=ElseMsgBox"性别未选",,"提示"EndIfIfThenxl=ElseIfThenxl=ElseIfThenxl=ElseMsgBox"学历未选",,"提示"EndIfIfThenzy=ElseIfThenzy=ElseIfThenzy=ElseMsgBox"职业未选",,"提示"EndIfIfThenah=Elseah=""EndIfIfThenah=+""+ahElseah=ah+""EndIfIfThenah=+""+ahElseah=ah+""EndIfIfThenah=+""+ahElseah=ah+""EndIf="简历"&vbCrLf&"姓名:"&xm&vbCrLf&"年龄:"&nl&vbCrLf&"性别:"&xb&vbCrLf&"学历:"&xl&vbCrLf&"职业:"&zy&vbCrLf&"爱好:"&ahEndSubPrivateSubCommand2_Click()=""=""=""=False=False=False=False=False=False=False=False=False=False=False=FalseEndSub实验4-1用单循环和Print方法显示有规律的图形,可通过Form_Click事件实现,如图所示。  提示:  (1)对于特殊字符"★"、"☆"通过汉字标准输入的软键盘菜单中的"特殊符号"命令来实现。    (2)用String(n,"★")函数产生重复字符串,如:String(5,"★")将产生"★★★★★"。  (3)通过循环结构确定显示的起始位Tab(20-2*i),显示有规律的子串,"★"的列宽约为2。图实验4.1运行界面PrivateSubForm_Click()Fori=1To9PrintTab(20-2*i);String(2*i-1,"★")NextiEndSub实验4-2用单循环实现如图所示的界面。图实验运行界面提示:利用Chr函数将字母编码值转换成字母。PrivateSubForm_Click()Fori=1To10Step1PrintTab(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)。要求:①用For单循环求前30项和。②用Until求多项式和,直到和大于5000为止。运行效果如图所示。图实验运行界面PrivateSubCommand1_Click()DimsAsDouble,xAsDouble,iAsInteger,jAsIntegers=0Fori=1To30x=0Forj=1Toix=x+1s=s+xNextjNexti="前30项的和="&sEndSubPrivateSubcommand2_Click()DimiAsLong,sAsDouble,xAsDoublei=1s=1x=1Doi=i+1x=x+is=s+xLoopUntil(s>5000)="前"&i&"项的和="&sEndSub实验4-4筛选在Text1文本框输入的字母字符,并反序在Text2中存放,界面如图所示。图实验运行界面提示:①要考虑字母的大写和小写。②首先利用Len函数求字符串长度,然后利用For循环结构和Mid函数逐一取字符进行判断是否为字母,若是字母,则利用语句“=字母&”将字母连接到Text文本框前面,实现反序。思考:若连接表达式为“&=字母”,效果如何?PrivateSubCommand1_Click()=""Fori=1ToLen=Mid,i,1)&NextiEndSubPrivateSubCommand2_Click()=""=""EndSubPrivateSubCommand3_Click()EndEndSub实验4-5计算 当第i项的值<10-4时结束提示:  ①本题的关键是找规律写通项。本题规律为:第i项的分母是前一项的分母加i,即分母通项为:Ti=Ti-1+i。  ②因为事先不知循环次数,应使用DoWhile循环结构;当然也可利用For循环结构,设置循环的终值为一个较大的值,当满足精度后退出循环。运行结果如图所示。 图实验运行界面Dims!,t!,i&PrivateSubcommand1_click()t=1s=0i=0DoWhilet<=100000t=t+is=s+1/ti=i+1LoopPrint"DoWhile结构";s,i;"项"EndSubPrivateSubcommand2_Click()t=1s=0Fori=1To10000s=s+1/tIft>100000ThenExitFort=t+iNextiPrint"For结构";s,i;"项"EndSub实验4-6编一程序,显示出所有的水仙花数。所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。例如,153是水仙花数,因为提示:  解该题的方法有两种:①利用三重循环,将三个数连接成一个3位数进行判断。例如,将i,j,k,3个一位数连成一个3位数的表达式为:i*100+j*10+k;‘i,j,k分别为三重循环的循环控制变量通常,对于若干个一位数要连接成一个多位数(例如,将1~9连接成一个9位数9),程序段如下:s=0Fori=1To9s=s*10+inexti②利用单循环将一个3位数逐位分离后进行判断。例如x是一个3位数,分离为3个一位数i,j,k,方法如下:x=357i=x\100‘获得百位数结果3j=(xMod100)\10‘获得十位数结果5k=xMod10‘获得个位数结果7通常,对于若干位数值(例如,s是一个9位数),利用循环从右边开始逐位分离,程序段如下:s=9DoWhiles>0s1=sMod10s=s\10Prints1;'从右边开始显示分离出每一位LoopPrivateSubCommand1_Click()DimsAsIntegers=0Fori=1To9Forj=0To9Fork=0To9s=i*100+j*10+kIfs=i^3+j^3+k^3ThenPrints&"=";i;"^3";"+";j;"^3";"+";k;"^3"EndIfNextkNextjNextiEndSubPrivateSubCommand2_Click()DimiAsIntegerFori=100To999If(i\100)^3+(i\10Mod10)^3+(iMod10)^3=iThenPrinti&"=";i\100;"^3";"+";i\10Mod10;"^3";"+";iMod10;"^3"EndIfNextiEndSub实验4-7计算π的近似值,π的计算公式为: 注意:①分别显示当n=50、1000时的结果②同时要防止大数相乘时结果溢出的问题,将变量类型和常数2改为双精度型(即2#)PrivateSubForm_Click()Dimn&,x#,i&n=InputBox("输入n值")x=2Fori=1Tonx=x*(2*i)/(2*i-1)*(2*i)/(2*i+1)NextiPrint"当n="&n&"时,π=";xEndSub实验4-8求Sn=a+aa+aaa+aaa+…aa…aaa(n个a),其中a是一个由随机数产生的1~9(包括1,9)中的一个正整数,n是一个由滚动条产生的5~10(包括5,10)中的一个数。例如:当a=2,n=5时,Sn=2+22+222+2222+22222。提示:  ①为了得到不断重复a的n位数Temp,可用如下程序段实现:Temp=0Fori=1TonTemp=Temp*10+aNexti  ②产生的表达式以横向和纵向两种形式显示,如图和图所示。图实验运行界面图实验运行界面Dima%,n%,i!PrivateSubHScroll1_Change()a=="a="&aEndSubPrivateSubHScroll2_Change()n=="n="&nEndSubPrivateSubForm_click()Dimx$,y$,Temp#,sum#x="sum="y=""sum=0Temp=0Fori=1TonTemp=Temp*10+asum=sum+Tempx=x&CStr(Temp)&"+"Ifi=1Theny=y&Right(Space(20)&CStr(Temp),19)&vbCrLfElsey=y&Right(Space(20)&CStr(Temp),20)&vbCrLfEndIfNexti=Left(x,Len(x)-1)&"="&CStr(sum)=Left(y,Len(y)-1)&String(20,"-")&vbCrLf&Right(Space(20)&CStr(sum),20)EndSub实验4-9任意改变文本的字号。要求利用滚动条和标签控件实现对标签字体大小的任意改变,如图所示。提示:  ①将滚动条的Min、Max分别设置为字号的最小值和最大值;  ②当拖动滑块时,字体取原来值,字号跟着变化。 图实验运行界面PrivateSubHScroll1_Change()n==n=n&"号字"EndSub实验4-10将Image图像装入图片,利用水平和垂直滚动条改变图像控件的大小来实现对图片进行任意大小的缩放,如图所示。提示:  ①将Image图像Stretch属性设置为True,使得图片随着图像控件大小的改变而变化;  ②将滚动条的最大值和最小值与图像控件放大和缩小的大小相关联。 图实验运行界面PrivateSubHScroll1_Change()=EndSubPrivateSubVScroll1_Change()=EndSub实验4-11利用TextBox、ProgressBar、Timer控件设计一个带有进度条的倒计时程序,如图所示。要求倒计时时间以分为单位输入,以秒为单位显示,进度条指示的是倒数读秒剩余时间,即填充块的数目是随时间减少的。  当在文本框输入分钟数按回车键时,开始进入倒计时,进度条也随之减少。 图实验运行界面PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then=Val*60==TrueEndIfEndSubPrivateSubTimer1_Timer()=-1=Format(Int/60),"00")&":"&Mod60If=0Then=FalseEndSub实验4-12参阅教材例,用迭代法求求立方根的迭代公式为: 迭代到为止,为方程的近似解。显示a=3、27的值,并通过求a^(1/3)的表达式加以验证。提示:  假定x0的初值为a,根据迭代公式得x1,若迭代结束;否则用x1代替x0继续迭代。迭代的 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图如图所示。图迭代法求根流程图PrivateSubForm_Click()Dimi%X1=27Fori=1To10000X2=2/3*X1+27/(3*X1^2)IfAbs(X2-X1)<10^(-5)ThenExitForElse:X1=X2EndIfNextiPrintX2;"为求得的根"EndSub实验4-13一个富翁试图与陌生人做一笔换钱生意,换钱规则为:陌生人每天给富翁10万元钱,直到满一个月(30天);而富翁第一天给陌生人1分钱,第二天2分,第三天4分,……,富翁每天给陌生人的钱是前一天的两倍,直到满一个月。分别显示富翁给陌生人的钱和陌生人给富翁的钱为多少?提示:  设富翁第一天给出的钱为,第2天给出的钱为前一天的两倍,即,如此重复到30天,累计求得富翁给出的钱远远超出陌生人给出的10万*30=300万。PrivateSubcommand1_click()Dimx#,i%x=Fori=1To29x=2*xNexti=x&"元"=100000*30&"元"EndSub实验4-14用计算机安排考试日程。期末某专业在周一~周六的6天时间内要考x,y,z三门课程,考试顺序为先考x,然后考y,最后考z,规定一天只能考一门,且z课程只能安排在周五或周六考。编写程序安排考试日程(即x,y,z三门课程各在那一天考),要求列出满足条件的所有 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。PrivateSubForm_Click()Forx=1To6Fory=2To6Forz=5To6IfxMaxThenMax=a(i)Ifa(i)0Then"s(";i;")的人数有";Format(s(i),"0");"个"EndIfNextiEndSub实验5-4随机产生10个2位数,按从大到小递减的顺序排列,并显示排序结果。PrivateSubForm_Click()Dima(1To10)AsIntegerFori=1To10a(i)=Int(Rnd*90+10)NextiFori=1To9Forj=9ToiStep-1Ifa(j)MaxThenMax=Val(i))iMax=iElseIfVal(i))
本文档为【Visual-Basic程序设计教程(第4版)实验答案(DOC)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
雨下田间
活波开朗,热爱工作,教学认真,
格式:doc
大小:1MB
软件:Word
页数:125
分类:
上传时间:2021-11-11
浏览量:15