还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
程序设计作业Visual Basic1
一、选择题
1.D
2.B
3.C
4.C
5.B
6.D
7.A
8.B
9.A
10.C
11.C
12.C
13.B
14.D
15.A
二、填空题视图工具箱
2.对象事件
3.
4..vbp.frm窗体控件菜单
5.完成某种特定的功能对象名.方法名
6.Form
1.Show
7.Multiline True
8.
40009.AutoSize True窗体布局窗口
1011.txtshow.text=uGOOD WORK!”
12.Click frm
1.show单击双击装载多响应某个事件后所执行的程序代玛
13.cmdl Click完成某种特定的功能对象名.方法名
14.Form
1.Show工具选项选项自动语法检测
15.
16.Timer Intervalms
三、问答题参考答案17答可视化编程是目前最直观的一种编程方法,人们一般用一词表示它之所以叫做“可视”,是Visual指你无需编程,仅通过直观的操作方式即可完成界面的设计工作因此,可视化语言是目前最好的Windows应用程序开发工具在这种语言中引入了控件的概念,每个控件都有若干方法和事件,并通过一系列的属性来控制控件的外观利用这些控件,编程过程就如同画画,随意点几下鼠标,一个按钮就完成了,这些工作在使用传统编程语言的情况下,需要编写大量复杂的程序代码才能实现可视化编程主要用到了事件驱动机制,其原理是当应用程序运行后,程序处于等待状态,当某个事件发生后,程序就去执行此事件的事件过程,当这个事件过程执行完后,应用程序又处于等待另一个事件发生的状态参考答案18答对象是代码和数据的封装体,在VB中,“数据”表现为属性,“代码”则表现为事件和方法建立一个对象后,其操作通过与该对象的有关属性、事件和方法来描述属性是一个对象的基本特性,每个对象都有它自己的属性通过修改对象的属性,可以改变对象的外观和功能方法就是要对象执行的动作,一般可以将它理解为提供的一种特殊的过程和函数其特殊性在于,这VB些过程和函数是封装在对象内部的,是在对象上实施的某种操作功能事件就是在对象上所发生的事情对象的事件是由预先设置好的、能被对象识别的动作用户不能VB建立新的事件,但可以根据需要对事件进行编程从非严格意义上讲,可以将事件理解为一种特殊的方法Line
1.BorderWidth=1End IfEnd SubPrivate Sub Option1_ClickIndex As IntegerLine
1.BorderWidth=1Check
1.Value=0Select Case IndexCase1Line
1.BorderStyle=1Case2Line
1.BorderStyle=2Case3Line
1.BorderStyle=3End SelectEnd Sub
4.Private Sub Optionl_ClickIndex As Integer Select Case IndexCase1Shape
1.Shape=0Case2Shape
1.Shape=1Case3Shape
1.Shape=3Case4Shape
1.Shape=4End SelectEnd SubPrivate Sub Option2_ClickIndex AsInteger SelectCaseIndexCase0Shape l.FillStyle=1Case1Shape l.FillStyle=3Case2Shape l.FillStyle=2Case3Shape l.FillStyle=6End Select()Private Sub Option3_Click IndexAs IntegerShape
1.BorderWidth=1SelectCaseIndexCase0Shape!.BorderStyle=0Case1Shape
1.BorderStyle=1Case2Shape
1.BorderStyle=4Case3Shape
1.BorderStyle=2Case4Shape
1.BorderStyle=3End SelectEndSub.(以数据库为例)5SQL Server’声明对象变量用于创建与数据库的连接ADOcn,Private ADOcnAs Connection()Private SubReadFromTableDim strtmpAs StringDimADOrs AsNew RecordsetADOrs.ActiveConnection=ADOcnADOrs.Open nselect*from studentsorder by学号”MSFlexGridl.ClearMSFlexGrid
1.Rows=0MSFlexGridl.Cols=3学号”+”姓名”+”专业”strtmp=”vbTab+vbTab+MSFlexGrid
1.Additem strtmpDoWhile NotADOrs.EOF(“学号”)+(姓名)+(“专业”)strtmp=ADOrs vbTab+ADOrs vbTab+ADOrsMSFlexGridl.Additem strtmpADOrs.MoveNextLoopMSFlexGrid l.FixedCols=0MSFlexGrid LFixedRows=1EndSub()Private Sub Command1_ClickUnload MePrivate Sub Form_Load定义数据库连接字符串Dim strDBAs String用于连接数据库,其中SQLServer为服务器名称Server为登录账号User ID为登录口令Password为具体的数据库名,DatabasestrDB=nProvider=SQLOLEDB;LSF;User ID=sa;Password=;Database二学生”’如果还没有建立与数据库的连接,则用以下代码创建If ADOcnIs NothingThenSet ADOcn=New Connection,连接数据库ADOcn.Open strDBSQL ServerEndIf,调用过程显示表中的记录ReadFromTable studentsEndSub行结果及代码请参考主教材和实验教材相关内容电大天堂【程序设计】作业Visual Basic4
一、选择题
1.A
2.B
3.A
4.D
5.B
6.C
7.A
8.B
二、填空题事件、方法
1.A.DataArrival SendData(或者回答协议)
2.TCP/IP TCP
3.EXE用户自定义接口、标准接口
4.方法
5.Locallp方法
6.GetData.使用服务程序处于侦听状态;
7.
8.Winsock实时错误、逻辑错误
9.
10.On ErrorGoto0
三、问答题参考答案
1.答是网络中最为通用的(应用程序接口),也是在上进行应用程序开发最为Socket TCP/IP APIInternet通用的它为网络中的每台计算机中提供了一个通信端口,通过这个端口,任何两台具有接口应用API Socket程序就可进行信息收发通信了程序员只需要对接口进行数据的读写操作,根本不必关心两台计算机Socket间的通信细节就能够完成数据的发送和接收工作基于的通信过程如图所示Socket1图1参考答案
2.答:中一般可按下列步骤设计错误处理程序VB第1步捕获错误,并强制程序跳转即在错误发生时,捕获并告知应用转向哪段代码进行错误处理中通常可采用语句启VB OnError GoT用错误捕获机制第2步编写错误处理程序,对所有可预见的错误做出反应编写错误处理程序的第一步是添加一个行标识符,比如,以标志错误处理程序的开始行标“CheckError:识符的名称最好具有良好的可读性,并口后面必须跟一个冒号常规错误处理程序通常放在过程的结束处,紧跟或的行标识符之后这样在没有错误发生时,过程就不会执行错误处理程序了Exit Sub Exit Function第3步退出错误处理程序通常情况下,只有当错误处理程序位于过程中间位置时,才需要用到专门的错误处理程序退出语句一般可使用或语句退出错误处理程序语句会继续执行引发错误的那句代码,而Resume Resume Next Resume语句则会跳过该语句,执行引发错误代码的下一句代码如果通过错误处理程序能够修正错误,ResumeNext则可以使用语句,否则就使用语句,或者直接使用或语句直接退Resume ResumeNext ExitSubExitFunction出过程参考答案
3.答调试程序是一件复杂的工程,不但要求程序员对系统设计结果非常熟悉,思路清晰,更需要不断地在实践中积累经验以下技巧可供参考首先,应事先做好备份尽管VB提供了众多的调试工具,但要利用这些工具查找、定位程序中的错误并非易事,对于一些规模较大的程序,即使是有经验的程序员也常常要损失好几小时甚至几天的时间来查找错误在调试过程中,很容易意外地修改、覆盖或删除掉必要的代码部分因此事先做好备份非常重要其次,尽可能地分离受怀疑的程序对于那些代码规模较大,窗口众多的程序而言,如果能将错误的范围定位于某个窗体或某段代码,则可以使用分离程序的调试方法基本思路是试着找到出错的代码行(块)或窗体,选择并复制这些代码到一个新的工程中,然后运行新工程,看一看是否还会出现同样的错误这样就可以尽可能地排除程序其他部分的干扰,提高调试的效率第三,缩小搜索范围如果有可能的话,可删除工程中任何第三方控件和自定义控件,或者任何看来与问题无关的代码,逐步缩小搜索范围或者采用相反的策略,先调试某一段代码或窗体,再象搭积木似的逐步扩大调试的范围这种方法与“分离受怀疑的程序”方法相结合,对复杂大系统的调试非常有效最后,使用MsgBox语句如果怀疑程序的错误是由于执行路径或者变量的值不正确等原因造成的,除了采用设置断点的方式进行调试外,还可以借助于MsgBox语句即在程序运行路径的关键点上插入一系列的MsgBox语句,用来展示程序运行的路径和重要变量的值参考答案
4.答利用Winsock控件开发网络通信系统时,通常要涉及服务器和客户机两类应用程序一般过程是:
(1)服务器程序的开发模式•服务器程序必须设置好属性,作为侦听端口该值可设置成任意一个整数,只要其他应用LocalPort程序没有使用过的值均可,但习惯上应大于1000c•使用方法使服务器进入侦听状态,等待客户机程序的连接请求Listen•客户机程序发出连接请求后,将触发服务器程序的事件,该事件得到一个参数ConnectionRequestrequestIDo服务器程序使用方法接受客户机程序的请求至此,服务器程序就可以使用方Accept requestIDSendData法向客户机发送数据了此时应特别注意两点一是方法必须用到上一步得到的作为其参数;Accept requestID二是在执行方法前,服务器仍处于侦听状态,此时应首先使用方法关闭服务器,然后再调用Accept CloseAccept方法当服务器程序接收到数据时,会产生事件在该事件中可以使用方法接收数据DataArrival GetData
(2)客户机程序的开发模式•客户程序首先应设置好属性,用来指向运行服务器程序的主机名或地址RemoteHost IP•设置属性,用来指向服务器程序的侦听端口号RemotePort•使用方法向服务器提出连接请求Connect•如果服务器接受了上述连接请求,客户机程序会产生事件可以根据需要,在此事件中编写程Connect序,比如使用函数向用户提示“连接已成功”之类的信息MsgBox连接成功后,就可以根据需要使用方法向服务器发送数据了SendData当客户机程序接收到数据时,会产生事件,可以用方法接收数据DataArrival GetData
四、程序题共有两处错误,改正如下
1.错误排序1:For c=l To20For j=c+l To20IF AcAjThenT二A
①Aj=AcAc=TEnd IfNextNext错误在窗体上输出结果2:CisFor c=l To20Print AcNextc程序运行结果及代码请参考主教材和实验教材相关内容
2.参考答案
3.答传统的面向过程的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码,程序从第一行代码开始执行并按应用程序中预定的路径执行,用户无法改变程序的执行流程在事件驱动的应用程序中,程序的执行发生了根本的变化,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段每个对象都有一个相应的事件集,每个事件发生都要执行一段程序代码事件可以由用户操作触发,也可以由操作系统或其它应用程序的消息触发,甚至可由应用程序本身的消息触发这些事件的顺序决定了代码执行的顺序,因此,应用程序每次运行所经过的代码路径是不确定的,它的执行流程由用户来决定在程序设计时,不需要指出先执行哪部分代码,或按什么顺序执行代码,只需编写针对某个事件的程序代码即可参考答案
4.答事件驱动是应用程序的基本机制,其基本过程是VB启动应用程序,装载和显示窗体1窗体或窗体上的控件等待事件的发生事件可由用户引发例如键盘操作或鼠标点击、可由系统引发2例如定时器控件、也可由代码间接引发例如当代码装载其他窗体时产生的事件Load当某个事件发生后,执行其对应的事件过程代码3重复执行第和第步直到遇到语句或单击“结束”按钮停止程序的运行423End
四、程序设计题
1.Private SubForm_Load程序设计”Text
1.Text=”VBText
1.FontSize=16End SubPrivate Sub Command1_ClickTextl.Visible=FalseEnd SubPrivate Sub Command2_Click二Textl.Visible TrueEnd Sub
2.Private Sub Commandl_ClickTextl.Text=,n,..Text
2.Tex..,,n[Text
3.Text=nnEnd SubPrivate Sub Command2_ClickIf TextlText=“Or Text
2.Text=Or Text
3.Text=n nThen MsgBox”成绩输入不全!”ElseText
4.Text=ValTextl.Text+ValText
2.Text+ValText
3.Text/3End IfSubEndPrivate SubCommand3_ClickUnload MeEndSub
3.Private SubCommand l_ClickIf Text
1.Text=H,Then至少要输出单价!”MsgBox”Textl.SetFocusExit SubEndIfIf Text
2.Text=H,Then Text
2.Text=1IfText
3.Text=Then Text
3.Text=1Text
4.Text=Text
1.Text Text
2.Text*Text
3.TextEnd Sub电大天堂【程序设计】作业Visual Basic2
一、选择题l.B
2.C
3.D
4.B
5.D
6.A
7.B
8.C
9.A
10.D
11.C
12.B
13.D
14.C
15.A
16.B
17.C
18.B
19.D
20.B
二、填空题下拉式菜单弹出式菜单
1.打开另存为颜色字体打印
2.文本框列表框
3.
4.Option Base1语句
5.Call工程工程属性通用
6.Form
1.Show
7.0过程的过程名不能返回值,而过程能通过过程名返回值
8.Sub Function窗体模块标准模块类模块
9.移出内存无效状态
10.
11.12*Cos*Sin/2*2Sqrs*s-a*s-b*s-c3Sin45*
3.14/
18012.1x=l Andx122A+B=C Ora-c=c3a0And b0Ora0And b
013.False
14.For WhileDo
15.3
三、阅读下列程序,给出程序运行结果
1.程序运行后,单击窗体,输出结果为:5050o
2.
4.
3.
435.****rjwK{、K1«、、4*1*T**T**T***
四、程序设计题
1.Private SubCommand1_ClickDim xAs Single,y As Singlex=ValTextl.TextIfx100Theny=xElseIf x200Theny=
9.5*xElseIfx300Theny=
0.9*xElseIfx500Theny=
0.8*xElsey=
0.7*x End IfEnd IfEnd IfEnd IfText
2.Text=yEnd Sub
2.Private SubForm_LoadDim xAsIntegerx=100Do Untilx200If xMod30ThenText
1.Text=Textl.TextStrxChr13ChrlO EndIf x=x+1LoopEnd Sub
3.Private SubForm_ClickPrint H*n;Tab9;3,Tab18;6;Tab27;9;Tab36;12PrintFor1=15to18血Pr I;For j=3to12Step3Print Tab3*j;j*I;Next jPrintNextIEnd sub
4.Private SubCommand I_Click UnloadMeEnd SubPrivate SubOptionl_Click Textl.Text=10*2End SubPrivate SubOption2_Click Textl.Text=10/2End SubPrivateSubOption3_ClickText
1.Text=10+2End SubPrivateSubOption4_ClickTextl.Text=10-2EndSub
5.Private FunctionDayn AsIntegerSelect CasenCase0二星期日”Day Chr13“Sunday”Case1二“星期一DayChr13“Monday”Case2廿星期二DayChr13”Tuesday”Case3Day二“星期三Chr13nWednesdaynCase4二“星期四Day Chr13“Thursday”Case5二星期五Day Chr13”Friday”Case6二“星期六Day Chr13“Saturday”End SelectEndFunctionPrivate SubText1_KeyPressKeyAscii AsIntegerDim nAsInteger二n ValTextl.TextIf KeyAscii=13ThenIf n=0And n7ThenLabel
1.Caption=DaynElseMsgBox”请输入0〜6之间的整数!”EndIfEndIfTextl.SelStart=0Textl.SelLength=LenTextl.TextEnd Sub
6.新建一个工程,在默认的窗体上放置一个控件,然后编写如下代码Forml PicturePrivateSub Picturel_MouseDownButton AsInteger,Shift AsInteger,X AsSingle,Y AsSingleIf Button=2ThenMsgBox Youpressed rightButton”二Picture
1.MousePointer vbArrowEndIfEnd SubPrivateSub Picturel_MouseMoveButton AsInteger,Shift AsInteger,X AsSingle,Y AsSingle Picture
1.MousePointer=vbUpArrowEnd Sub
7.PrivateSubForm_Load”李敏”List
1.Additem张华“List
1.Additem”吕晓炜List
1.Additem赵巍”List
1.Additem袁莉”List
1.Additem”王津”List
1.Additem”何小渴”List
1.Additem”崔宁”Listl.AddTtem“陈曦”List
1.Additem”刘伟楠”List
1.AdditemEnd SubPrivateSubCommand1_ClickIf Text
1.Textnn ThenList
1.Additem Text
1.TextTextLText=””Else”请在文本框中输入信息!”MsgBoxEnd IfEndSubPrivateSubCommand2_ClickListl.Removeitem List
1.ListindexEnd SubPrivateSubCommand3_Click二修改“If Command
3.Caption ThenText
1.Text=Listl.TextTextl.SetFocusCommand
1.Enabled=FalseCommand
2.Enabled=False修改确认Command
3.Caption=ElseListl.ListListl.Listindex=Tcxtl.TcxtCommand
1.Enabled=TrueCommand
2.Enabled=TrueText
1.Text”修改”Command
3.Caption=EndIfEndSubPrivateSubListl_ClickIf List
1.Listindex-1ThenCommand
2.Enabled=TrueCommands.Enabled=TrueEnd IfEndSub电大天堂【程序设计】作业Visual Basic3
一、选择题
1.B
2.B
3.B
4.A
5.C
6.C
7.D
8.C
9.C
10.C
11.B
12.B
13.A
14.B
15.C
16.C
17.B
18.A
19.C
20.B
21.A
二、填空题
1.Output
2.FileCopyc:\command.com,d:\command.com”
3.Kill d:\tem.tmp”
4.Open”SEQNEW.DAT vFor OutputAs#
15.Open”SEQOLD.DAT”For InputAs#2右上
6.
7.False
8.Picturel.Line500,500-l000J000,RGB255,0,0,BF
9.
52010.ActiveConnection外部数据库、远程数据库
11.“学号”
12.ADOrs增加、删除、修改或者、
13.Select DeleteUpdate学号=
14.Select*from Table1Where001本地数据库、远程数据库
15.
三、程序设计题
1.PrivateSubForm_LoadDrivel.Drive=c:\”File
1.Pattern=*.bmp;*.gif;*.jpg”EndSubPrivateSub Drivel_changeDir
1.Path=Drivel.DriveEnd SubPrivateSub Dirl_ChangeFilel.Path=Dirl.PathEnd SubPrivateSub Filel_clickIf RightFilel.Path,1=Thenf$=Form
1.Filel.Path+Form
1.Filel.FileNamef$=Form
1.File
1.Path+”\+Form
1.File
1.FileNameEnd IfPicture
1.Picture=LoadPicturef$Picture
1.AutoSize=TrueEndSub
2.PrivateSubForm_ClickDim iAsSingle,twopie AsSingletwopie=8*Atnl求piDrawWidth=2’设置点的大Scale-twopie,l-twopie,-1小’设置坐标For i=-twopie Totwopie Steptwopie/360系画轴xPSet i,0Next i标轴xCurrentY=0CurrentX=-twopiePrint”-2pi”;CurrentX--twopie/2Print-pi”;CurrentX=twopie/2Print”pi”;CurrentX=twopie-
0.6Print n2pin;PrintFori=-1To1Step
0.01画轴yPSet0,iNext iCurrentX=0标轴刻度yFor i=-1To1Step
0.5CurrentY=iPrint iNextiFor i=-twopie Totwopie Step
0.1,画余弦曲线PSet i,CosiNext iEndSub
3.PrivateSubCheck l_ClickIf Check
1.Value=1ThenLine
1.BorderWidth=4。
个人认证
优秀文档
获得点赞 0