第7章面向对象的程序设计基础.docx
- 文档编号:6198696
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:33
- 大小:31.21KB
第7章面向对象的程序设计基础.docx
《第7章面向对象的程序设计基础.docx》由会员分享,可在线阅读,更多相关《第7章面向对象的程序设计基础.docx(33页珍藏版)》请在冰点文库上搜索。
第7章面向对象的程序设计基础
第7章面向对象的程序设计基础
一、单项选择题
1.VisualFoxPro6.0不但支持传统的面向过程的编程方法,而且全面引入了_______的程序设计方法,将FoxPro系列提升到真正的关系数据库世界。
(§7.1理解)
A)结构化B)非过程化
C)面向数据库D)面向对象
2.从可视化编程的角度看,对象是一个具有属性和方法的实体。
一旦对象建立以后,其操作就通过与对象有关的_______来描述。
(§7.1理解)
A)属性、事件和方法B)实体、类
C)封装性、继承性D)数据
3._______也是一种对象,他将一些特殊的对象进行更严格的封装,定制成用以显示数据、执行操作的一种图形对象。
(§7.1理解)
A)类B)父类
C)子类D)控件
4.下列_______组是类。
(§7.1理解)
A)篮球、饭桌、人、房子B)篮球、饭桌、工人、厨房
C)文本框、命令按钮D)球、桌子、人、房子
5.下列关于面向对象程序设计(OOP)的说法,错误的是_______。
(§7.1理解)
A)OOP以编写程序代码为中心工作
B)OOP以“对象”表示各种事物,以“类”表示对象的抽象
C)OOP以“方法”表现处理事物的过程
D)OOP以对象及其数据结构为中心展开工作
6.任何对象都有自己的属性,下列关于属性的叙述中,正确的是_______。
(§7.1理解)
A)属性用于描述对象所具有的性质和特点,通常用各种类型的数据来表示
B)属性用于描述对象所具有的内部特征,通常用各种类型的数据来表示
C)属性用于描述对象所具有的外部特征,通常用各种类型的数据来表示
D)属性用于描述对象所具有的固有方法,通常用各种程序代码来表示
7.下列关于事件的说法中,错误的是_______。
(§7.1理解)
A)事件代码也可以像方法一样被显式调用
B)事件是对象触发的行为描述,是一种预先定义好的特定动作
C)事件可以持续完成。
D)事件由用户或者系统激活
8.下列关于方法的说法中,错误的是_______。
(§7.1理解)
A)方法是与对象相关的过程
B)方法是指对象为完成一定功能而编写的一段程序代码
C)方法与事件有着紧密联系,一个时间必定有一个与之相对应的方法
D)方法与事件相同,用户不可以扩充方法。
9.下列关于创建新类的叙述中,错误的是_______。
(§7.2应用)
A)从“项目管理器”里选择“类”|“新建”
B)从系统菜单上选择“文件”|“新建”|“类”|“新建文件”
C)可以在命令窗口输入ADDCLASS命令,进入“类设计器”
D)在命令窗口里执行CREATECLASS命令
10.下列关于“继承性”的说法,错误的是_______。
(§7.1理解)
A)继承性用来描述对象之间的共同属性
B)继承性用来描述类之间的共同属性
C)继承性可以避免方法和数据的重复
D)继承性体现了一般化和特殊化的原则
11.下列关于“封装性”的说法中,错误的是_______。
(§7.1理解)
A)封装性就是把对象的内部代码与操作过程隐藏起来
B)封装是借助类来实现的
C)封装是借助对象来实现的
D)封装要求所有对象具备明确的功能,并有接口和其他对象相互作用
12.用DEFINECLASS命令定义了一个名为“7_1”的FORM类时,若要为该类添加一个label1标签对象,应当使用的基本代码是_______。
(§7.1应用)
A)AddObject(“label1”,””label”)
B)MyForm.AddObject(“label1”,””label”)
C)AddObjectlabel1ASlabel
D)AddObject7_1.label1ASlabel
13.下列关于将“类”添加到表单中的方法的说法,错误的是_______。
(§7.2应用)
A)将“类”从“类设计器”拖至“项目管理器”中
B)将“类”从“项目管理器”拖至“类设计器”中
C)将“类”从“项目管理器”拖至“表单设计器”中
D)将“类”注册
14.下列关于对象的引用说法错误的是_______。
(§7.3理解)
A)绝对引用是为了快速引用对象而采用的一种引用方式
B)相对引用是为了快速引用对象而采用的一种引用方式
C)引用是指在引用对象时,把对象的容器层次全部列出来
D)对象的引用有绝对引用和相对引用
15.下列关于类的说法错误的是_______。
(§7.3理解)
A)类不能被直接调用
B)由类创建的对象可以被直接调用
C)同一个类可以创建多个对象
D)类可以被直接调用
16.如果要提供对当前对象的引用,可以用_______关键字来设置对象的属性。
(§7.3应用)
A)THISB)THISFORMC)THISFORMSETD)PARENT
17.下列关于设置单个对象属性的语法正确的是_______。
(§7.3应用)
A)Object.Property=ValueB)Parent.Property=Value
C)Property=ValueD)Parent.Object.Property=Value
18.下列关于调用对象的方法的说法,错误的是_______。
(§7.3理解)
A)对象的方法没有返回值
B)调用对象的方法时,如果该方法有返回值,被调用方法必须以圆括弧结尾
C)如果在调用方法时有参数传递,则必须把传递参数放在方法名后面的圆括弧内
D)在创建了一个对象后,可以在程序的任何部分调用方法
19.在表单中加入两个命令按钮Command1和Command2,编写Command1的Click事件代码如下,则当单击Command1后,_____。
(§7.3理解)
Thisform.Parent.Command2.Visible=.F.
A)命令按钮组中的第二个命令按钮不可见
B)Command1命令按钮不可见
C)事件代码无法执行
D)Command2命令按钮不可见
20.在VisualFoxPro6.0控件中,编辑框的默认名称为_______。
(§7.3识记)
A)ListB)Edit1C)LabelD)Text
21.在表单中编写Command1命令按钮的Click事件的过程代码,下列_______可以在单击命令按钮时退出表单。
(§7.3应用)
A)clearthisform
B)thisform.hide
C)thisform.unlode
D)thisform.release
22.若某表单中有一个文本框Text1和一个命令按钮组CommandGroup1,其中,命令按钮组包含了Command1和Command2两个命令按钮。
如果要在命令按钮Command1的某个方法中访问文本框Text1的Text属性值,下列式子中错误的是_____。
(§7.3应用)
A)ThisForm.Text1.TextB)This.Parent.Text1.Text
C)Parent.Text1.TextD)This.Parent.Parent.Text1.Text
23.调用对象方法的格式正确的是_____。
(§7.3识记)
A)Object.MethodB)MethodObject
C)Parent.Object.MethodD)Parent.Method
二、多项选择题
1.在表单Form1的事件或方法代码中设置该表单中命令按钮Command1的Caption属性为“确定”的正确命令是_______。
(§7.2理解)
A)Form1.Command1.Caption=”确定”
B)This.Command1.Caption=”确定”
C)ThisForm.Command1.Caption=”确定”
D)ThisFormSet.Command1.Caption=“确定”
2.在面向对象程序设计中,描述对象的三个要素包括________。
(§7.1应用)
A)属性 B)事件 C)开放性 D)方法
3.面向对象程序设计的三个基本特征是_______。
(§7.1应用)
A)响应 B)继承性C)封装性 D)多态性
4.在VisualFoxPro6.0中,常用的表单事件有_______。
(§7.2识记)
A)INIT B)LOAD C)DESTROY D)CLEAR
5.在VisualFoxPro6.0中,下列名词属于表单控件的是_______。
(§7.2识记)
A)LoadB)TextC)LabelD)Click
6.在VisualFoxPro6.0中,下列名词属于对象触发事件的是_______。
(§7.2识记)
A)UnloadB)DblClickC)RefreshD)Gotfocus
7.在VisualFoxPro6.0的OOP概念中,下列说法正确的有_______。
(§7.1理解)
A)类是定义对象的特征和描述对象的外观与行为的模板
B)对象是一个具有属性和方法的实体
C)事件是对象触发的行为描述
D)方法是指对象为完成一定功能而编写的一段程序代码
8.下列有关面向对象程序设计的基本特征叙述正确的是_______。
(§7.1理解)
A)继承性用来描述基类和派生类之间的共同属性
B)封装性是把对象的内部代码与操作过程隐藏起来
C)多态性就是方法和名称完全相同
D)用户的动作能够激发事件,但响应事件必须通过对应的方法来实现
9.下面关于方法的正确说法是_______。
(§7.1理解)
A)方法是某一对象相关联的过程
B)方法是指对象为完成一定功能而编写的一段程序代码
C)方法程序创建完成后以.PRG文件保存
D)一个事件必定有一个与之相对应的方法
10.下列关于控件类的各种叙述中,正确的是_______。
(§7.1理解)
A)控件也是一种对象
B)控件类是将特殊的对象进行更严格的封装
C)控件是定制成用以显示数据、执行操作的一种图形对象
D)控件类对象与容器类对象是相对而言的
三、填空题
1.一个对象建立以后,其操作就通过与对象有关的属性、_____和_____来描述。
(§7.1识记)
2.面向对象程序设计的3个基本特征是继承性、_____和_____。
(§7.1识记)
3.VisualFoxPro6.0中的基类有两大类型,分别是:
_____和____;相应地,对象也分为_____和____。
(§7.1识记)
4._____不能被直接调用,由类创建的_____才可以被直接调用。
(§7.1识记)
5.引用对象的两种方式是_____和____。
(§7.1识记)
6._____对象引用提供对当前对象的引用,_____对象引用提供对当前表单的引用,_____对象引用提供了一种引用当前表单集的快捷引用,_____对象引用提供了一种引用当前对象的父对象的引用。
(§7.3识记)
四、面向对象程序设计题
1.用标签、文本框、命令按钮构成一个表单ShowFrm,在标签中显示“当前系统日期和时间:
”;运行表单时,在文本框中单击鼠标左键将显示当前系统日期,双击鼠标左键将显示当前系统时间;单击“删除”按钮,文本框中的结果将被删除,单击“退出”按钮,将退出表单的运行。
(§7.4应用)
2.以系统日期的月、日及时间构成动态的密码,如果三次输入错误,则退出;如果密码正确,则显示“欢迎使用本系统!
”。
(§7.4应用)
3.创建一个表单,其功能为:
若在inputTxt文本框中输入一个除数(整数),然后点击“开始”按钮,就能求出1-100之间能被此除数整除的数(整数)及这些数之和,并将结果分别在编辑框numEdit和文本框sumTxt中输出。
(§7.4应用)
4.编程计算任意长方形的面积。
(§7.4应用)
5.从键盘输入学生成绩,按下列等级显示:
90分以上,显示“优秀”;70-90分,显示“良好”;60-70分,显示“中等”;60分以下,显示“差”。
(§7.4应用)
6.在文本框中输入100之内的任一整数N,求1-N之间的所有素数,并将其显示到编辑框中。
(§7.4应用)
7.编程计算用户存款到期后的本息和。
要求存款额和存期由用户从键盘输入。
(§7.4应用)
8.设计一简单的计算器。
要求:
可以进行简单的+、-、*、/运算。
(§7.4应用)
9.设计一表单,在文本框中将一元二次方程的系数a,b,c输入,求该方程的根。
(§7.4应用)
10.设计一表单,求1-100之间的所有偶数之和与所有奇数之和。
(§7.4应用)
11.设计一个“学生档案管理系统”的封面。
要求该表单的标题为“学生档案管理系统”,且其中的“欢迎使用学生档案管理系统”文字是从右向左移动的字幕。
(§7.4应用)
12.设计一个可选择不同字体进行显示的表单。
要求在文本框中输入文字之后,单击某个单选按钮,文本框中的内容即能以指定的字体显示。
(§7.4应用)
13.设计一数字时钟,当单击“改变时间格式”按钮时,可以实现“12小时制”与“24小时制”之间的转换。
(§7.4应用)
14.设计一表单,三个人分19头牛,老大分1/2、老二分1/4、老三分1/5,不能宰牛,每人各能分多少头牛。
(§7.4应用)
第7章面向对象的程序设计基础答案
一、单项选择题
1.D2.A3.D4.D5.A6.A7.C8.D9.C10.A11.C12.C13.A14.A15.D16.A17.D18.A19.C20.B21.D22.A23.C
二、多项选择题
1.B C
2.ABD
3.BCD
4.ABC
5.BC
6.AB
7.ABCD
8.ABD
9.ABD
10.ABCD
三、填空题
1.事件方法
2.封装性多态性
3.容器类控件类容器类对象控件类对象
4.类对象
5.绝对引用相对引用
6.ThisThisFormThisFormsetParent
四、面向对象程序设计题
1.
(1)新建如图7-1所示的表单:
图7-1显示当前系统日期和时间表单
(2)在相应的事件过程中,编写如下代码:
a) 在文本框Text1的Click事件中,写入如下代码:
this.value=date()
b)在文本框Text1的DblClick事件中,写入如下代码:
this.value=time()
C)在命令按钮Command1的Click事件中,写入如下代码:
thisform.text1.value=""
d)在命令按钮Command2的Click事件中,写入如下代码:
thisform.release
(3)运行表单,结果如图7-2所示:
图7-2显示当前系统的日期和时间的运行结果
注:
“删除”为command1按钮,“退出”为command2按钮。
2.
(1)新建如图7-3所示的表单:
图7-3密码输入表单
(2)在相应的事件过程中,编写如下代码:
a) 在表单Form1的ACTIVATE事件中,写入如下代码:
thisform.text3.setfocus
publicn
n=0
b) 在文本框Text1的Click事件中,写入如下代码:
this.value=date()
c) 在文本框Text2的Click事件中,写入如下代码:
this.value=time()
d)在命令按钮Command1的Click事件中,写入如下代码:
ma=thisform.text3.value
k1=str(month(date()),2)+str(day(date()),2)
k2=subs(time(),1,2)
k=k1+k2
k=allt(k)
ifallt(ma)=k
thisform.label3.caption="欢迎使用本系统!
"
else
n=n+1
ifn=3
thisform.label3.caption="您无权使用本系统!
"
thisform.text3.enabled=.f.
mand1.enabled=.f.
else
thisform.label3.caption="口令错,请重新输入口令!
"
thisform.text3.value=""
thisform.text3.setfocus
endif
endif
e)在命令按钮Command2的Click事件中,写入如下代码:
thisform.release
(3)运行结果如图7-4所示:
图7-4密码程序运行结果
注:
“确定”为command1按钮,“关闭”为command2按钮。
3.
(1)新建如图7-5所示的表单:
图7-5计算表单
(2)在相应的事件过程中,编写如下代码:
a)在表单Form1的ACTIVATE事件中,写入如下代码:
thisform.inputTxt.setfocus
b)在命令按钮Command1的Click事件中,写入如下代码:
fori=1to100
ifmod(i,val(thisform.inputTxt.value))=0
thisform.numEdit.value=thisform.numEdit.value+str(i,5)+chr(13)
thisform.sumTxt.value=str(val(thisform.sumTxt.value)+i)
endif
endfor
c)在命令按钮Command2的Click事件中,写入如下代码:
thisform.inputTxt.value=0
thisform.sumTxt.value=0
thisform.numEdit.value=""
(3)运行结果如图7-6所示:
图7-6输入13的运行结果
注:
“开始”为command1按钮,“取消”为command2按钮。
4.
(1)新建如图7-7所示的表单:
图7-7计算表单
(2)在相应的事件过程中,编写如下代码:
a)在表单Form1的ACTIVATE事件中,写入如下代码:
thisform.Text1.setfocus
thisform.Text2.setfocus
b) 在命令按钮Command1的Click事件中,写入如下代码:
thisform.text3.value=val(thisform.text1.value)*val(thisform.text2.value)
c) 在命令按钮Command2的Click事件中,写入如下代码:
thisform.release
(3)运行结果如图7-7所示:
图7-7长方形的长为4、宽为6的运行结果
注:
“计算”为command1命令按钮,“退出”为command2命令按钮。
5.
(1)新建如图7-7所示的表单:
图7-8成绩输入表单
(2)在相应的事件过程中,编写如下代码:
a)在表单Form1的ACTIVATE事件中,写入如下代码:
thisform.Text2.setfocus
b) 在命令按钮Command1的Click事件中,写入如下代码:
a=val(thisform.text1.value)
aa=int(a/10)
docase
caseaa=10
thisform.text2.value="优秀"
caseaa=9
thisform.text2.value="优秀"
caseaa=8
thisform.text2.value="良好"
caseaa=7
thisform.text2.value="良好"
caseaa=6
thisform.text2.value="中等"
otherwise
thisform.text2.value="差"
endcase
c) 在命令按钮Command2的Click事件中,写入如下代码:
thisform.release
(3)运行结果如图7-9所示:
图7-9成绩为85分的运行结果
注:
“计算”为command1命令按钮,“退出”为command2命令按钮。
6.
(1)新建如图7-10所示的表单:
图7-10计算表单
(2)在相应的事件过程中,编写如下代码:
a)在表单Form1的ACTIVATE事件中,写入如下代码:
thisform.Text1.setfocus
b)在命令按钮Command1的Click事件中,写入如下代码:
a
(1)=2
basen=3
num=2
dowhilenum<=x
i=2
dowhilei<=basen-1
t=0
telln=mod(basen,i)
iftelln=0
t=t+1
exit
else
i=i+1
endif
enddo
ift=0
a(num)=basen
basen=basen+1
num=num+1
else
basen=basen+1
endif
enddo
k=1
dowhilek<=x
thisform.edit1.value=thisform.edit1.value+str(a(k),5)+chr(13)
k=k+1
enddo
c) 在命令按钮Command2的Click事件中,写入如下代码:
thisform.release
(3)运行结果如图7-11所示:
图7-11前50个素数运行结果
7.
(1)新建如图7-12所示的表单:
图7-12计算存款额表单
(2)在相应的事件过程中,编写如下代码:
a)在文本框Text1、Text2、Text3的Init事件中,分别写入如下代码:
this.value=0
b)在命令按钮Command1的Click事件中,写入如下代码:
x=thisform.text1.value
y=thisform.text2.value
docase
casey>=36
ll=3.2
casey>=24
ll=2.8
casey>=12
ll=2.5
other
ll=1.8
endcase
thisform.text3.value=x+round(x*y*ll/1000,2)
c) 在命令按钮Command2的Click事件中,写入如下代码:
thisform.text1.value=0
thisform.text2.value=0
thisform.text3.value=0
thisform.text1.setfocus
d)在命令按钮Command3的Click事件中,写入如下代码:
thisform.release
(3)运行结果如图7-13所示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 面向对象的程序设计基础 面向 对象 程序设计 基础
![提示](https://static.bingdoc.com/images/bang_tan.gif)