面向对象程序设计VB.docx
《面向对象程序设计VB.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计VB.docx(32页珍藏版)》请在冰豆网上搜索。
面向对象程序设计VB
江西财经大学考试试卷
试卷代码:
03694A卷授课课时:
80
课程名称:
面向对象程序设计(VB)适用对象:
选课班
一、填空题(每空1分,共16分)
1.构造函数和析构函数的意义分别是和。
2.命令窗口用于在集成开发环境中发出命令或调试和计算表达式,它有和两种模式。
3.ReDim语句重定义数组大小时,缺省情况下原数组中的存储的数据会丢失,但可以使用关键字来保证原数组中的数据能保留下来。
4.CLR的中文含义是。
5.为了方便用户操作,VS.NET系统在FileDialog的基础上,系统已派生了和文件对话框类。
6.过程为应用程序的启动点,也就是运行代码时最优先访问的函数。
7.语句允许用户直接使用在其他命名空间中定义的类及类型,而无需使用限定引用。
8.窗体是继承.NET类库中的类。
9.类提供访问文件的方法,包括标准输入、输出和错误设备。
10.要进行二进制文件存取,必须创建与对象。
11.在任何图形绘制之前,一定要先用类创建一个对象。
12.对象是DataSet对象和数据源之间的桥梁。
二、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。
答案错选或未选者,该题不得分。
每小题2分,共16分。
)
1.以下关于静态成员正确的说法是
A.静态成员可以不用Static修饰符修饰
B.静态成员只能用类名访问
C.静态成员和非静态成员不能同时在类中定义
D.静态成员可以被类的实例调用
2.VB.NET的项目文件是以扩展名来保存。
A..sln
B..vb
C..vbproj
D..sou
3.在类视图窗口以结构显示当前项目中的所有类。
A.树状结构
B.下拉列表
C.菜单
D.表
4.以下不是数据提供程序所提供的四个核心对象。
A.Connection
B.DataReader
C.Parser
D.DataAdapter
5.有关继承下列说法不正确的是
A.所有类缺省都是可继承的,除非在类定义时使用NotInheritable关键字修饰。
B.在VB.NET中,一个类的基类可能有多个。
C.为了防止基类中需要封装保密的成员在派生类中被泄露出来,派生类定义的访问权限必须比其基类更为严格或者至少与之相同。
D.在VisaulBasic.NET中,一个类的基类只能有一个。
6.在VB.NET中,关于构造函数的说法,下列说法不正确的是
A.可以指定构造函数的返回值
B.构造函数可以重载
C.构造函数的过程可以带有参数
D.构造函数的过程名一定是New
7.菜单控件支持事件。
A.Click
B.MouseDown
C.KeyPress
D.Leave
8.Err对象的属性返回了错误号
A.Number
B.Source
C.Description
D.HlepContext
三、阅读程序,根据要求回答问题。
(每小题每5分,共20分)
1.指出以下文件操作程序代码的功能,并画出Windows窗体的界面图。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
OpenFileDialog1.Filter="文本文件(*.txt)|*.txt|RTF格式文件(*.RTF)|*.RTF"
OpenFileDialog1.FilterIndex=1
OpenFileDialog1.Title="打开文件"
OpenFileDialog1.InitialDirectory=Application.StartupPath
OpenFileDialog1.RestoreDirectory=True
OpenFileDialog1.ShowDialog()
Fname=OpenFileDialog1.FileName
If(Fname<>"")Then
If(OpenFileDialog1.FilterIndex=1)Then
RichTextBox1.LoadFile(Fname,RichTextBoxStreamType.PlainText)
Else
RichTextBox1.LoadFile(Fname,RichTextBoxStreamType.RichText)
EndIf
StatusBar1.Panels(0).Text=“读状态”
StatusBar1.Panels
(1).Text=“未保存”
EndIf
EndSub
PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click
SaveFileDialog1.Filter="文本文件(*.txt)|*.txt|RTF格式文件(*.RTF)|*.RTF"
SaveFileDialog1.FilterIndex=1
SaveFileDialog1.Title="保存文件"
SaveFileDialog1.InitialDirectory=Application.StartupPath
SaveFileDialog1.RestoreDirectory=True
SaveFileDialog1.ShowDialog()
Fname=SaveFileDialog1.FileName
If(Fname<>"")Then
If(OpenFileDialog1.FilterIndex=1)Then
RichTextBox1.SaveFile(Fname,RichTextBoxStreamType.PlainText)
Else
RichTextBox1.SaveFile(Fname,RichTextBoxStreamType.RichText)
EndIf
StatusBar1.Panels(0).Text="写状态"
StatusBar1.Panels
(1).Text="已保存"
EndIf
EndSub
PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.Tick
StatusBar1.Panels
(2).Text=DateTime.Now.ToString("T")
EndSub
PrivateSubRichTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesRichTextBox1.TextChanged
RichTextBox1.Modified=false
IfRichTextBox1.ModifiedThen
StatusBar1.Panels
(1).Text="未保存"
Else
StatusBar1.Panels
(1).Text=“已保存”
RichTextBox1.Modified=false
EndIf
EndSub
2.指出下列程序的运行结果,并说明该程序的功能。
ModuleModule1
WithEventsfrm1AsNewForm()
Dimlabel1AsNewLabel()
SubMain()
label1.Size=NewSize(80,20)
label1.BackColor=Color.Yellow
label1.TextAlign=ContentAlignment.MiddleCenter
label1.BorderStyle=BorderStyle.Fixed3D
frm1.Controls.AddRange(NewSystem.Windows.Forms.Control(){label1})
Application.Run(frm1)
EndSub
PublicSubfrm1_MouseMove(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)Handlesfrm1.MouseMove
label1.Location=NewPoint(e.X,e.Y-15)
label1.Text="X="&e.X&",Y="&e.Y
EndSub
EndModule
3.分析下列程序的运行结果,说明该程序的功能。
PublicClasslogin
InheritsSystem.Windows.Forms.Form
#Region"Windows窗体设计器生成的Code"
‘系统自动创建的程序,为了节省篇幅,在此处省略。
#EndRegion
DimmymdimainAsMainMDI
PrivateSubbtnOk_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnOk.Click
IftxtUserName.Text.Trim=""Then
showMsg("用户名不许为空!
")
txtUserName.Focus()
ExitSub
EndIf
IftxtPassWord.Text.Trim=""Then
showMsg("密码不许为空!
")
txtPassWord.Focus()
ExitSub
EndIf
DimiAsInteger
DimstrsqlAsString
DimmydatasetAsNewDataSet
DimmyTableAsDataTable
DimunameAsString
DimpswAsString
uname=Trim(txtUserName.Text)
psw=Trim(txtPassWord.Text)
Try
strsql="SELECT*FROMOperatorWHEREName='"+uname+"'andPassword='"+psw+"'"
mydataset=executeSelectQuery(strsql,"manager")
strsql="SELECT*FROMAuthorityWHEREName='"&uname&"'"
myTable=executeSelectQuerygettable(strsql)
IfmydatasetIsNothingThen
showMsg("用户名或密码错误!
",MsgBoxStyle.Exclamation)
Return
EndIf
IfmyTableIsNothingThen
showMsg("此用户无任何权限!
",MsgBoxStyle.Exclamation)
Return
EndIf
CatchexAsException
ExitSub
EndTry
Ifmydataset.Tables("manager").Rows.Count=0Then
showMsg("用户名或密码错误!
",MsgBoxStyle.Exclamation)
Else
GlobalVariable.PERMISSION=NewArrayList
Fori=0TomyTable.Rows.Count-1
GlobalVariable.PERMISSION.Add(myTable.Rows(i).Item("Permission")&"")
Next
Me.Close()
EndIf
EndSub
PrivateSublogin_Closing(ByValsenderAsObject,ByValeAsSystem.ComponentModel.CancelEventArgs)HandlesMyBase.Closing
mymdimain.setpower()
EndSub
PrivateSublogin_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
PERMISSION=NewArrayList
mymdimain.setpower()
EndSub
PrivateSubbtnExit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnExit.Click
Me.Close()
EndSub
EndClass
其中:
setpower()为权限设置方法,在此省略了。
4.指出下列程序的运行结果,并说明该程序中使用了面向对象技术中的一个什么概念,它实现了一个什么功能。
PublicClassShape
PublicOverridableFunctionGetArea()AsDouble
Return(0)
EndFunction
PublicOverridableFunctionGetPerim()AsDouble
Return(0)
EndFunction
EndClass
ClassRectangle
InheritsShape
PublicWidthAsDouble
PublicLengthAsDouble
PublicSubNew(ByValaAsDouble,ByValbAsDouble)
Width=a:
Length=b
EndSub
PublicOverridesFunctionGetArea()AsDouble
Return(Width*Length)
EndFunction
PublicOverridesFunctionGetPerim()AsDouble
Return(2*(Length+Width))
EndFunction
EndClass
ClassCircle
InheritsShape
PublicRadiusAsDouble
PublicSubNew(ByValrAsDouble)
Radius=r
EndSub
PublicOverridesFunctionGetArea()AsDouble
Return(Math.PI*Radius*Radius)
EndFunction
PublicOverridesFunctionGetPerim()AsDouble
Return(2*Math.PI*Radius)
EndFunction
EndClass
PublicClassForm1
InheritsSystem.Windows.Forms.Form
#Region"WindowsFormDesignergeneratedcode"
‘系统自动创建的程序,为了节省篇幅,在此处省略。
#EndRegion
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Dima,bAsDouble
a=Val(TextBox1.Text)
b=Val(TextBox2.Text)
DimRectAsNewRectangle(a,b)
TextBox3.Text=CStr(Rect.GetPerim())
TextBox4.Text=CStr(Rect.GetArea())
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
DimrAsDouble
r=Val(TextBox5.Text)
DimCirAsNewCircle(r)
TextBox6.Text=CStr(Cir.GetPerim())
TextBox7.Text=CStr(Cir.GetArea())
EndSub
EndClass
四、问答题(第1小题8分,第2小题10分,共20分)
1.简述.NET的特点。
2.举例说明面向对象语言支持三种特性的应用。
五、程序设计题(第1小题8分,第2、3小题各10分,共28分)
1.编写一个关于自己的结构和类的程序。
2.编写一个我最喜爱的国产轿车评选程序。
程序设计界面图5-1,程序运行界面如图5-2所示。
程序运行时,在ListBox1列表框中显示所有参评轿车列表,单击按钮【>】用户可以从中选择一量轿车,对于选完后不满意的轿车,还可以通过单击按钮【<】,移回到ListBox1列表框中,还可选中ListBox1列表中所有轿车(通过单击按钮【>>】实现)或将ListBox2框中所全的项目全部移回至ListBox1框中(通过单击按钮【<<】实现)。
图5-1程序设计界面5-2程序运行界面
3.请按照以下(关于信息学院部分专业学生必修学习课程的情况)图形的分析,制定每一个类所需要的数据成员与成员函数,编写一个完整的程序,实现在控制台方式下,按给出的学生实例值(例如:
王行江,,1985.10.25,计算机,打球;
钟明华,,1986.2.16,信管,跳舞)显示信管专业与计算机专业学生相关类的成员值。
Student(属性:
Name、No、BirthDate、Profession、Love)
(方法:
English、Cprogram)
InfoStudenCompStuden
VB.NETProgramElectroniccommerceC++ProgramNumericallogic
江西财经大学末考试试卷
试卷代码:
03694B卷授课课时:
80
课程名称:
面向对象程序设计(VB)适用对象:
选课班
二、填空题(每空1分,共16分)
1.面向对象技术的主要特性表现在具有抽象化、、和。
2.接口是对类的可用、和等做一个规范描述,并且可以用它作为一种类型来使用,但是它并不真正实现代码,仅仅是一个描述。
3.VisualBasic.NET默认的析构函数是。
4.在VB.NET中,你可以通过类来操作文件夹和驱动器。
5.在VB.NET中,编译时的多态性是通过实现,运行时的多态性是通过继承和来实现的。
6.说明以下在类所声明变量的差异。
SharediAsInteger
ProtectedxAsSingle
PublicyAsSingle
7.要在已知的项目中添加类或Windows窗体,可以通过选取菜单中的来实现。
8.要连接SQLServer7.0以上版本的数据库时,需要使用对象。
9.在System.Drawing命名空间中,类是绘制图形的最核心的类。
六、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。
答案错选或未选者,该题不得分。
每小题2分,共16分。
)
1.在使用MsgBox函数时,一定要给的参数是。
A.title
B.prompt
C、button
D.以上皆非
2.当参数指定为传址调用时,调用者可以利用下面的符号括住参数,强迫该参数的传递变成传值调用。
A、<>
B.()
C.[]
D.“”
3.类中利用Dim所声明的变量为
A.Private
B.Public
C.Protected
D.Shared
4.要让继承的类也能使用的变量,必须以关键字声明。
A.Private
B.Dim
C.Protected
D.Used
5.当类中的函数以MustOverride声明时,类必须以关键字声明。
A.NoInheritable
B.Overridable
C.MustInherit
D.Overrides
6.模块文件存储时,它的扩展名是。
A..mdl
B..mod
C..vb
D..abs
7.在StreamReader类中共定义了四种读取方式,其中从当前流中读取一行字符并将数据作为字符串返回的是
A.Read
B.ReadLine
C.ReadBlock
D.ReadtoEnd
8.以下的级别可以使用Static语句
A.过程级
B.模块级
C.类级
D.命名空间
七、阅读程序,根据要求回答问题。
(每小题每5分,共20分)
1.分析下列程序的运行结果,说明该程序的功能,并画出Windows窗体界面。
ImportsSystem.Windows.Forms
ImportsSystem.Drawing
ModuleModule1
Dimfrm1AsNewForm()
DimMdifrm1AsNewForm()
DimMdifrm2AsNewForm()
WithEventsbtn1AsNewButton
SubMain()
frm1.IsMdiContainer=True
btn1.Size=NewSize(0,40)
btn1.Text="子窗体水平排列"
btn1.Dock=DockStyle.Top
frm1.Controls.AddRange(NewSystem.Windows.Forms.Control(){btn1})
Mdifrm1.MdiParent=frm1
Mdifrm2.Text="MDI子窗体二"
Mdifrm2.MdiPar