• 106.50 KB
  • 2022-04-22 11:50:13 发布

《Visual Basic程序设计教程(第2版)》课后部分编程题参考答案.doc

  • 11页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第1章1.按要求设置窗体属性2.在窗体上建立一个标签Label1。程序代码如下:PrivateSubForm_Click()Label1.Caption="你单击了窗体"EndSubPrivateSubForm_DblClick()Label1.Caption="你双击了窗体"EndSub3.在窗体上建立两个文本框Text1(输入数)、Text2(输出数)和一个命令按钮Command1。两个文本框的Text属性均为空。PrivateSubCommand1_Click()DimxAsSinglex=Val(Text1.Text)Text2.Text=15*xEndSub第2章1~3题:按要求完成操作练习。4.PrivateSubCommand1_Click()""最大化"按钮Form1.WindowState=2"最大化EndSubPrivateSubCommand2_Click()""还原"按钮Form1.WindowState=0"还原EndSubPrivateSubCommand3_Click()""最小化"按钮Form1.WindowState=1"最小化EndSub5.在窗体上建立三个文本框Text1(第一个数)、Text2(第二个数)、Text3(计算结果)和一个命令按钮Command1(“计算”)。PrivateSubCommand1_Click()DimxAsSingleDimyAsSinglex=Val(Text1.Text)y=Val(Text2.Text)Text3.Text=x*x+y*yEndSub6.在窗体上建立两个文本框Text1(输入一串字符)、Text2(输出结果)和一个命令按钮Command1。PrivateSubCommand1_Click()DimxAsStringx=Left(Text1.Text,1)+Right(Text1.Text,1)Text2.Text=xEndSub第3章1.在窗体上建立一个文本框Text1(输入n值)、三个标签Label1(第一个随机数)、Label2(第二个随机数)和Label3(第三个随机数),以及一个命令按钮Command1。PrivateSubCommand1_Click()n=Val(Text1.Text)Randomizex=Int(1+n*Rnd)Label1.Caption="第一个随机数"+Str(x)x=Int(1+n*Rnd)Label2.Caption="第二个随机数"+Str(x)x=Int(1+n*Rnd)Label3.Caption="第三个随机数"+Str(x)EndSub2.在窗体上建立了四个文本框Text1、Text2、Text3和Text4,以及一个命令按钮Command1(“交换”)和Command2(“合并”)。11 PrivateSubCommand1_Click()"“交换”t=Text1.TextText1.Text=Text2.TextText2.Text=Text3.TextText3.Text=tEndSubPrivateSubCommand2_Click()"“合并”t=Text1.Text+Text2.Text+Text3.TextText4.Text=tEndSub3.(1)Rnd*9000+1000(2)Str(x)(3)Mid(s,3,1)+Mid(s,2,1)+Left(s,1)4.PrivateSubCommand1_Click()"往左Text1.Left=0EndSubPrivateSubCommand2_Click()"往右Text1.Left=Form1.Width-Text1.WidthEndSubPrivateSubCommand3_Click()"居中Text1.Left=(Form1.Width-Text1.Width)/2EndSub5.PrivateSubCmd1_Click()Lab1.Visible=TrueLab1.Caption="您已下达显示命令"EndSubPrivateSubForm_Click()Cmd1.Visible=TrueEndSub6.PrivateSubForm_KeyPress(KeyAsciiAsInteger)ShowPrint"输入字符:";Chr(KeyAscii),"ASCII码为;";KeyAsciiEndSubPrivateSubForm_DblClick()ClsEndSub7.产生这三个消息框的相应语句是:产生第1个消息框:x=MsgBox("在这里显示提示信息",4+0,"请确认")产生第2个消息框:x=MsgBox("在这里显示"+Chr(13)+"提示信息",3+0,"请确认")产生第3个消息框:x=MsgBox("在这里显示"+Chr(13)+"提示信息",2+16+0,"请确认")第4章1.在窗体上建立两个文本框Text1(输入数)及Text2(显示结果),一个命令按钮Command1(“判断”)。PrivateSubCommand1_Click()"“判断”x=Val(Text1.Text)IfxMod2=0ThenText2.Text="偶数"Else消息Text2.Text="奇数"EndIfEndSub2.窗体上建立了一个文本框Text1,用于显示结果。PrivateSubForm_Load()x=Val(InputBox("请输入星期几(0~6)"))SelectCasexCaseIs=0Text1.Text="星期日(Sunday)"CaseIs=1Text1.Text="星期一(Monday)"CaseIs=211 Text1.Text="星期二(Tuesday)"CaseIs=3Text1.Text="星期三(Wednesday)"CaseIs=4Text1.Text="星期四(Thursday)"CaseIs=5Text1.Text="星期五(Friday)"CaseIs=6Text1.Text="星期六(Saturday)"CaseElseText1.Text="输入错误"EndSelectEndSub3.窗体上建立了一个文本框Text1(“输入口令”)和一个命令按钮Command1(“检查”)。PrivateSubCommand1_Click()"“检查”x=Text1.TextIfx="12345678"ThenMsgBox("欢迎你用机!")ElseMsgBox("对不起,口令错")EndIfText1.Text=""Text1.SetFocusEndSubPrivateSubForm_Load()Text1.Text=""Text1.MaxLength=8Text1.PasswordChar="*"EndSub4.窗体上建立了两个文本框Text1(输入字符串)及Text2(转换结果),一个命令按钮Command1(“清除”)。PrivateSubCommand1_Click()"“清除”Text1.Text=""Text2.Text=""Text1.SetFocusEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)DimsAsString*1s=Chr(KeyAscii)SelectCasesCase"A"To"Z"s=LCase(s)Case"a"To"z"s=UCase(s)CaseElses="*"EndSelectText2.Text=Text2.Text+sEndSub5.分别选择”红”、”绿”、”蓝”复选框后,单击命令按钮Command1时,通过RGB函数调配的颜色作为一个标签的背景色(BackColor)。PrivateSubCommand1_Click()r=0:g=0:b=0IfCheck1.Value=1Then"”红”复选框r=255EndIfIfCheck2.Value=1Then"”绿”复选框g=255EndIfIfCheck3.Value=1Then"”蓝”复选框11 b=255EndIfLabel1.BackColor=RGB(r,g,b)EndSub6.程序代码如下:PrivateSubForm_Load()LabClk.Caption="0"LabClk.Alignment=1LabClk.BorderStyle=1LabClk.FontSize=22LabClk.FontName="黑体"TimClk.Interval=1000EndSubPrivateSubTimClk_Timer()LabClk.Caption=Val(LabClk.Caption)+1EndSub7.(1)Chr(KeyAscii)(2)ElseIfChr(KeyAscii)(3)CheC=CheC-1(4)CheC(5)Is>0或Else第5章1.和数为:1.21。程序代码如下:PrivateSubForm_Load()Shows=0Fork=1To100s=s+1/(1+k*4)NextkPrintsEndSub2.程序代码如下:PrivateSubForm_Load()DimiAsInteger,aAsInteger,bAsInteger,cAsIntegerShowFori=100To999a=Int(i/100)b=Int((i-100*a)/10)c=i-100*a-10*bIfa*a*a+b*b*b+c*c*c=iThenPrintiEndIfNextiEndSub3.在窗体上建立一个文本框Text1(初始值)、一个列表框List1(显示结果)和一个命令按钮Comd1(“查找”)。PrivateSubComd1_Click()"“查找”DimnAsIntegern=Val(Text1.Text)List1.Clear:k=0DoWhilek<=99IfNot(nMod7=0)ThenList1.AddItemnk=k+1EndIfn=n+1LoopEndSub4.程序代码如下:PrivateSubForm_Load()Show11 n=Val(InputBox("正整数n="))Fori=1TonForj=i+1TonFork=j+1TonIfi*i+j*j=k*kThenPrint"(";i;",";j;",";k;")"EndIfNextkNextjNextiEndSub5.在窗体上建立一个列表框List1和一个“显示表项”命令按钮Command1。程序代码如下:PrivateSubCommand1_click()""显示表项"按钮单击事件FontSize=12ClsFori=0ToList1.ListCount-1"逐项判断IfList1.Selected(i)Then"真时为选中PrintList1.List(i)EndIfNextiEndSub6.(1)Text1.Text(2)UCase(x)(3)t>="A"Andt<="Z"(4)y+x7.程序代码如下:PrivateSubForm_Load()ShowDimaAsSingle,xn0AsSingle,xn1AsSinglea=Val(InputBox("请输入一个正数"))xn1=aDoxn0=xn1xn1=(xn0+a/xn0)/2LoopWhileAbs(xn0-xn1)>=0.00001Printa;"的平方根为";xn1EndSub第6章1.程序代码如下:PrivateSubForm_Load()ShowDima(100)AsSinglen=Val(InputBox("输入个数n"))Print"处理前数据:"Fork=1Tona(k)=Val(InputBox("请输入第"&k&"个数"))Printa(k);NextkPrintM=Int(n/2)Fork=1ToMh=n-k+1t=a(h):a(h)=a(k):a(k)=tNextkPrint"处理的结果:"Fork=1TonPrinta(k);NextkEndSub2.程序代码如下:PrivateSubForm_Load()Dima(6,6)AsInteger11 ShowFori=1To6Forj=1To6SelectCaseiCaseIsja(i,j)=2CaseIs=ja(i,j)=0EndSelectPrinta(i,j);NextjPrintNextiFori=1To6t=a(1,i):a(1,i)=a(6,i):a(6,i)=tNextiPrint:PrintFori=1To6Forj=1To6Printa(i,j);NextjPrintNextiEndSub3.在窗体上建立两个列表框List1(处理前数据)和List2(处理后数据),以及标签Label1。程序代码如下:PrivateSubForm_Load()Dima(100)AsInteger,b(100)AsIntegerRandomizen=100Fori=1Ton"输入数组a的n个元素x=Int(20*Rnd)List1.AddItemxa(i)=xNextik=0Fori=1Ton"删除零元素Ifa(i)<>0Thenk=k+1:b(k)=a(i):List2.AddItemb(k)EndIfNextiLabel1.Caption="数组中零元素个数:"+Str(n-k)EndSub4.(1)g(x-10)+1(2)n-1(3)g(t)"9"Thenche=FalseExitForEndIfNextkEndFunction2.在窗体上建立七个文本框Text1~Text7和一个命令按钮Command1(“比较”)。Text1~Text6用于输入,Text7用于输出结果。PrivateSubCommand1_Click()a=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)d=Val(Text4.Text):e=Val(Text5.Text):f=Val(Text6.Text)Callmax(a,b,c,m)Callmax(m,d,e,m)Callmax(m,f,f,m)Text7.Text=mEndSubSubmax(x,y,z,m)‘标准模块文件Ifx>yThenm=xElsem=yEndIfIfm""(2)Mid(s,p+1)(3)n4.程序代码如下:PrivateSubForm_Load()DimxAsSingle,nAsInteger,yAsDoublex=InputBox("x=","求X的n次方")n=InputBox("n=","求X的n次方")y=Power(x,n)Show11 Printx;"的";n;"次方=";Format(y,"###,###.##")EndSubFunctionPower(xAsSingle,nAsInteger)AsDoubleIfn>1ThenPower=Power(x,n-1)*xElsePower=xEndIfEndFunction5.在窗体上设置三个窗体Form1~Form3。Form1中建立了两个文本框Text1(“用户名”)和Text2(“密码”),以及命令按钮Command1(“判断”)。Form2中建立了一个文本框Text1(其Text属性值为“欢迎你使用本系统”)和命令按钮Command1(“返回”)。Form3中建立了一个文本框Text1(其Text属性值为“对不起,请向管理员查询”)和命令按钮Command1(“退出”)。DimnAsIntegerPrivateSubCommand1_Click()‘窗体Form1的“判断”usern=Trim(Text1.Text):passw=Trim(Text2.Text)Ifusern="username"Andpassw="password"ThenForm1.HideForm2.ShowElsen=n+1:Text1.SetFocusIfn=3ThenForm1.HideForm3.ShowEndIfEndIfText1.Text="":Text2.Text=""EndSubPrivateSubForm_Activate()Text1.Text="":Text2.Text=""Text1.SetFocusEndSubPrivateSubCommand1_Click()‘窗体Form2的“返回”Form2.HideForm1.ShowEndSubPrivateSubCommand1_Click()‘窗体Form3的“退出”UnloadForm1UnloadForm2UnloadForm3EndEndSub6.(1)Form1窗体模块程序代码:PrivateSubForm_Load()RandomizeEndSubPrivateSubCommand1_Click()""生成随机数"DimsAsStrings=""Fori=1To10a(i)=Int(11+90*Rnd)s=s+Str(a(i))+","NextiText1.Text=Left(s,Len(s)-1)EndSubPrivateSubCommand2_Click()""求最大数"Text2.Text=Max()EndSubPrivateSubCommand3_Click()""打开排序窗口"Form1.Hide"隐藏主窗体Form2.Show"显示“排序”窗体11 EndSubPrivateSubCommand4_Click()""结束"UnloadForm1"隐藏主窗体UnloadForm2"显示“排序”窗体EndEndSub(2)Form2窗体模块程序代码:PrivateSubCommand1_Click()"“排序”DimtAsStringCallSort(t)Text1.Text=tEndSubPrivateSubCommand2_Click()"“返回”Form2.Hide"隐藏“排序”窗体Form1.Show"显示主窗体EndSub(3)标准模块程序代码:Publica(1To10)AsSingleFunctionMax()AsSingle"求最大值DimmAsSinglem=a(1)Fori=2To10Ifma(j)Thent=a(i):a(i)=a(j):a(j)=tEndIfNextjs=s+Str(a(i))+","Nextis=s+Str(a(10))EndSub第8章1.程序代码如下:Dimd(1To20)AsIntegerPrivateSubCommand1_Click()""产生随机数"Fori=1To20d(i)=Int(1+99*Rnd)List1.AddItemd(i)NextiEndSubPrivateSubCommand2_Click()""保存"Open"MyFile3.txt"ForOutputAs#1Fori=1To20Write#1,d(i)NextiClose#1EndSubPrivateSubCommand3_Click()""读出"Open"MyFile3.txt"ForInputAs#1DoWhileNotEOF(1)Input#1,x11 List2.AddItemxLoopClose#1EndSubPrivateSubCommand4_Click()""结束"EndEndSub2.本程序的用户界面和程序代码较为复杂,请见具体程序文件。第9章1.程序代码如下:PrivateSubForm_load()Dimx(3)AsSingle,yAsSingleOnErrorGoToerrln"以后出错时转移到errlny=2/0"产生"除数为0"的错误x(4)=1"产生"下标越界"的错误MsgBox("终止程序的运行")UnloadMe"卸载窗体Enderrln:"标号SelectCaseErr.NumberCase11""除数为0"的错误码为11MsgBox("除数为0(错误码为11),跳过该错误")ResumeNext"返回Case9""下标越界"的错误码为9MsgBox("下标越界(错误码为9),跳过该错误")ResumeNext"返回CaseElse"其他错误处理MsgBox("错误发生在"&Err.Source_&",代码为"&Err.Number_&",即"&Err.Description)EndSelectEndSub2.改正后的程序代码如下:PrivateSubForm_Load()ShowFori=1To11PrintTab(20-i);Forj=1To2*i-1Ifj<=iThenk=jElsek=2*i-jEndIfIfk>9Thenk=k+7PrintChr(k+48);NextjNextiEndSub3.(1)n=n+1(2)d(1,j)=d(3,j)(3)d(i,2)=d(i,4)(4)i=j(5)d(i,j)=d(i,j)+1(6)n=0(7)Text1.Text第10章1.在窗体上建立一个水平滚动条HScroll1和一个文本框Text1。程序代码如下:PrivateSubForm_Load()HScroll1.Max=1000HScroll1.Min=0HScroll1.LargeChange=5HScroll1.LargeChange=10HScroll1.Value=50011 EndSubPrivateSubHScroll1_Change()Text1.Text=HScroll1.ValueEndSubPrivateSubHScroll1_Scroll()Text1.Text=HScroll1.ValueEndSub2.在窗体上建立一个计时器Timer1和“开始”、“停止”两个命令按钮。程序代码如下:Privatelen_SAsSingle,sAsInteger"模块级变量PrivateSubCommand1_Click()"“开始”Timer1.Enabled=Trues=0CallSub_MoveEndSubPrivateSubCommand2_Click()"“停止”Timer1.Enabled=FalseEndSubPrivateSubForm_Load()Timer1.Enabled=False"先取各指针的长度len_S=Sqr((LineS.Y2-LineS.Y1)^2+(LineS.X2-LineS.X1)^2)"秒针长度EndSubPrivateSubTimer1_Timer()"定时器的定时事件过程s=s+1CallSub_MoveEndSubPrivateSubSub_Move()"定时器的定时事件过程pi=3.14159LineS.X2=LineS.X1+len_S*Sin(pi*s/30)"绘制秒针LineS.Y2=LineS.Y1-len_S*Cos(pi*s/30)EndSub3.按要求在窗体上设计一个二级下拉菜单。4.在窗体上建立一个通用对话框CommonDialog1、“打开”及“字体”两个命令按钮和文本框Text1。程序代码如下:PrivateSubCommand1_Click()""打开"CommonDialog1.DialogTitle="选择文件"CommonDialog1.Filter="文本文件|*.txt""设置文件过滤器CommonDialog1.InitDir="C:""设置默认文件夹CommonDialog1.ShowOpen"显示“打开”对话框Text1.Text=CommonDialog1.FileNameEndSubPrivateSubCommand2_Click()""字体"CommonDialog1.Flags=cdlCFScreenFontsCommonDialog1.ShowFontText1.FontName=CommonDialog1.FontName"设置字体名称Text1.FontSize=CommonDialog1.FontSize"设置字体大小Text1.FontBold=CommonDialog1.FontBold"粗体Text1.FontItalic=CommonDialog1.FontItalic"斜体EndSub11'