资源描述
江西财经大学考试试卷
试卷代码: 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.在Visaul Basic .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窗体的界面图。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.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)
End If
StatusBar1.Panels(0).Text = ”读状态”
StatusBar1.Panels(1).Text = ”未保存”
End If
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.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)
End If
StatusBar1.Panels(0).Text = "写状态"
StatusBar1.Panels(1).Text = "已保存"
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
StatusBar1.Panels(2).Text = DateTime.Now.ToString("T")
End Sub
Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
RichTextBox1.Modified=false
If RichTextBox1.Modified Then
StatusBar1.Panels(1).Text = "未保存"
Else
StatusBar1.Panels(1).Text = ”已保存”
RichTextBox1.Modified=false
End If
End Sub
2.指出下列程序的运行结果, 并说明该程序的功能。
Module Module1
WithEvents frm1 As New Form()
Dim label1 As New Label()
Sub Main()
label1.Size = New Size(80, 20)
label1.BackColor = Color.Yellow
label1.TextAlign = ContentAlignment.MiddleCenter
label1.BorderStyle = BorderStyle.Fixed3D
frm1.Controls.AddRange(New System.Windows.Forms.Control() {label1})
Application.Run(frm1)
End Sub
Public Sub frm1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles frm1.MouseMove
label1.Location = New Point(e.X, e.Y - 15)
label1.Text = "X=" & e.X & ",Y=" & e.Y
End Sub
End Module
3. 分析下列程序的运行结果, 说明该程序的功能。
Public Class login
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的Code "
‘系统自动创立的程序, 为了节省篇幅, 在此处省略。
#End Region
Dim mymdimain As MainMDI
Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
If txtUserName.Text.Trim = "" Then
showMsg("用户名不许为空! ")
txtUserName.Focus()
Exit Sub
End If
If txtPassWord.Text.Trim = "" Then
showMsg("密码不许为空! ")
txtPassWord.Focus()
Exit Sub
End If
Dim i As Integer
Dim strsql As String
Dim mydataset As New DataSet
Dim myTable As DataTable
Dim uname As String
Dim psw As String
uname = Trim(txtUserName.Text)
psw = Trim(txtPassWord.Text)
Try
strsql = "SELECT * FROM Operator WHERE Name= '" + uname + "' and Password= '" + psw + "'"
mydataset = executeSelectQuery(strsql, "manager")
strsql = "SELECT * FROM Authority WHERE Name='" & uname & "'"
myTable = executeSelectQuerygettable(strsql)
If mydataset Is Nothing Then
showMsg("用户名或密码错误! ", MsgBoxStyle.Exclamation)
Return
End If
If myTable Is Nothing Then
showMsg("此用户无任何权限! ", MsgBoxStyle.Exclamation)
Return
End If
Catch ex As Exception
Exit Sub
End Try
If mydataset.Tables("manager").Rows.Count = 0 Then
showMsg("用户名或密码错误! ", MsgBoxStyle.Exclamation)
Else
GlobalVariable.PERMISSION = New ArrayList
For i = 0 To myTable.Rows.Count - 1
GlobalVariable.PERMISSION.Add(myTable.Rows(i).Item("Permission") & "")
Next
Me.Close()
End If
End Sub
Private Sub login_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
mymdimain.setpower()
End Sub
Private Sub login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PERMISSION = New ArrayList
mymdimain.setpower()
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
End Class
其中: setpower()为权限设置方法, 在此省略了。
4.指出下列程序的运行结果, 并说明该程序中使用了面向对象技术中的一个什么概念, 它实现了一个什么功能。
Public Class Shape
Public Overridable Function GetArea() As Double
Return (0)
End Function
Public Overridable Function GetPerim() As Double
Return (0)
End Function
End Class
Class Rectangle
Inherits Shape
Public Width As Double
Public Length As Double
Public Sub New(ByVal a As Double, ByVal b As Double)
Width = a : Length = b
End Sub
Public Overrides Function GetArea() As Double
Return (Width * Length)
End Function
Public Overrides Function GetPerim() As Double
Return (2 * (Length + Width))
End Function
End Class
Class Circle
Inherits Shape
Public Radius As Double
Public Sub New(ByVal r As Double)
Radius = r
End Sub
Public Overrides Function GetArea() As Double
Return (Math.PI * Radius * Radius)
End Function
Public Overrides Function GetPerim() As Double
Return (2 * Math.PI * Radius)
End Function
End Class
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
‘系统自动创立的程序, 为了节省篇幅, 在此处省略。
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, b As Double
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
Dim Rect As New Rectangle(a, b)
TextBox3.Text = CStr(Rect.GetPerim())
TextBox4.Text = CStr(Rect.GetArea())
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim r As Double
r = Val(TextBox5.Text)
Dim Cir As New Circle(r)
TextBox6.Text = CStr(Cir.GetPerim())
TextBox7.Text = CStr(Cir.GetArea())
End Sub
End Class
四、 问答题( 第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. 请按照以下( 关于信息学院部分专业学生必修学习课程的情况) 图形的分析, 制定每一个类所需要的数据成员与成员函数, 编写一个完整的程序, 实现在控制台方式下, 按给出的学生实例值( 例如: ①王行江, 0138, 1985.10.25, 计算机, 打球; ②钟明华, 0206, 1986.2.16, 信管, 跳舞) 显示信管专业与计算机专业学生相关类的成员值。
Student( 属性: Name、 No、 BirthDate、 Profession、 Love)
( 方法: English、 Cprogram )
InfoStuden CompStuden
VB.NET Program Electronic commerce C++ Program Numerical logic
江西财经大学末考试试卷
试卷代码: 03694B卷 授课课时: 80
课程名称: 面向对象程序设计( VB) 适用对象: 选课班
二、 填空题( 每空1分, 共16分)
1.面向对象技术的主要特性表现在具有抽象化、 、 和 。
2.接口是对类的可用 、 和 等做一个规范描述, 而且能够用它作为一种类型来使用, 可是它并不真正实现代码, 仅仅是一个描述。
3.Visual Basic.NET默认的析构函数是 。
4.在VB.NET中, 你能够经过 类来操作文件夹和驱动器。
5.在VB.NET中, 编译时的多态性是经过 实现, 运行时的多态性是经过继承和 来实现的。
6.说明以下在类所声明变量的差异。
Shared i As Integer
Protected x As Single
Public y As Single
7.要在已知的项目中添加类或Windows窗体, 能够经过选取菜单中的 来实现。
8.要连接SQL Server7.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窗体界面。
Imports System.Windows.Forms
Imports System.Drawing
Module Module1
Dim frm1 As New Form()
Dim Mdifrm1 As New Form()
Dim Mdifrm2 As New Form()
WithEvents btn1 As New Button
Sub Main()
frm1.IsMdiContainer = True
btn1.Size = New Size(0, 40)
btn1.Text = "子窗体水平排列"
btn1.Dock = DockStyle.Top
frm1.Controls.AddRange(New System.Windows.Forms.Control() {btn1})
Mdifrm1.MdiParent = frm1
Mdifrm2.Text = "MDI子窗体二"
Mdifrm2.MdiParent = frm1
frm1.Text = "当前共有" & frm1.MdiChildren.Length & "个子窗体"
Mdifrm1.Show()
Mdifrm2.Show()
Application.Run(frm1)
End Sub
Public Sub btn1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn1.Click
frm1.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
End Module
2. 指出下列程序的运行结果, 并说明该程序的功能。
Imports System.IO
Class dirMethod
Sub create(ByVal path As String)
If Directory.Exists(path) Then
Console.WriteLine("文件夹已经存在!")
Else
Directory.CreateDirectory(path)
If Directory.Exists(path) Then
Console.WriteLine("文件夹创立成功!")
End If
End If
End Sub
End Class
Module Module1
Sub Main()
Dim obj_dir As New dirMethod()
Dim str_path As String
Console.Write("请输入文件夹名称: ")
str_path = Console.ReadLine()
obj_dir.create(str_path)
End Sub
End Module
假设输入一个刚才已建立的文件夹: d:\abc
3. 分析下列程序的结果, 说明该程序的功能( 假设该程序的文件名是ex3.vb) , 并画出程序运行时的Windows窗体层次结构图。
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
‘系统自动创立的程序, 为了节省篇幅, 在此处省略。
#End Region
Private WithEvents MainMenu1 As New MainMenu()
Private WithEvents MenuItem1, MenuItem2, MenuItem3, MenuItem4, MenuItem5 As MenuItem
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MenuItem1 = New MenuItem("文件")
MenuItem2 = New MenuItem("编辑")
MenuItem3 = New MenuItem("新建")
MenuItem4 = New MenuItem("-")
MenuItem5 = New MenuItem("关闭")
MainMenu1.MenuItems.Add(MenuItem1)
MainMenu1.MenuItems.Add(MenuItem2)
MenuItem1.MenuItems.Add(MenuItem3)
MenuItem1.MenuItems.Add(MenuItem4)
MenuItem1.MenuItems.Add(MenuItem5)
MenuItem3.Shortcut = Shortcut.Alt0
MenuItem5.Shortcut = Shortcut.Alt1
Me.Menu = MainMenu1
End Sub
Private Sub MenuItem3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
MsgBox("您刚单击了新建选项")
End Sub
Private Sub myMenuItemExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Close()
End Sub
End Class
4.分析下列程序的运行结果, 并说明该程序中关键字MyBase与MyClass的区别。
Class cls1
Public Overridable Sub WhichOne()
Console.WritrLine(”来自基类的方法。”)
End Sub
Public Overridable Sub Who()
WhichOne()
MyClass.WhichOne()
End Sub
End Class
Class cls2
Inherits cls1
Public Overrides Sub WhichOne()
Console.WriteLine(”来自派生类的方法。”)
End Sub
Public Overrides Sub Who()
WhichOne()
MyBase.WhichOne()
End Sub
Public Sub Callwho()
MyClass.Who()
MyBase.Who()
End Sub
End Class
Module Module1
Sub Main()
Dim obj1 As New cls1()
Dim obj2 As New cls2()
Console.WriteLine(”对象一Who… ”)
obj1.Who()
Console.Wri
展开阅读全文