还剩19页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第7章面向对象的程序设计基础
一、单项选择题
1.Visual FoxPro
6.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)的说法,错误的是o(§
7.1理解)A)OOP以编写程序代码为中心工作B)OOP以“对象”表示各种事物,以“类”表示对象的抽象C)OOP以“方法”表现处理事物的过程D)OOP以对象及其数据结构为中心展开工作
6.任何对象都有自己的属性,下列关于属性的叙述中,正确的是o(§
7.1理解)A)属性用于描述对象所具有的性质和特点,通常用各种类型的数据来表示B)属性用于描述对象所具有的内部特征,通常用各种类型的数据来表示C)属性用于描述对象所具有的外部特征,通常用各种类型的数据来表示D)属性用于描述对象所具有的固有方法,通常用各种程序代码来表示
7.下列关于事件的说法中,错误的是(§
7.1理解)A)事件代码也可以像方法一样被显式调用B)事件是对象触发的行为描述,是一种预先定义好的特定动作C)事件可以持续完成D)事件由用户或者系统激活
8.下列关于方法的说法中,错误的是o(§
7.1理解)A)方法是与对象相关的过程B)方法是指对象为完成一定功能而编写的一段程序代码C)方法与事件有着紧密联系,一个时间必定有一个与之相对应的方法D)方法与事件相同,用户不可以扩充方法
9.下列关于创建新类的叙述中,错误的是o(§
7.2应用)A)从“项目管理器”里选择“类”|“新建”B)从系统菜单上选择“文件”I“新建”I“类”I“新建文件”C)可以在命令窗口输入ADD CLASS命令,进入“类设计器”D)在命令窗口里执行CREATE CLASS命令
10.下列关于“继承性”的说法,错误的是(§
7.1理解)a在表单Forml的ACTIVATE事件中,写入如下代码thisform.inputTxt.setfocusb在命令按钮Commandl的Click事件中,写入如下代码for i=l to100if modi,val thisform.inputTxt.value=0thisform.numEdit.value=thisform.numEdit.value+stri,5+chr13thisform.sumTxt.value=str valthisform.sumTxt.value+iendifendforc)在命令按钮Command2的Click事件中,写入如下代码:thisform.inputTxt.value=0thisform.sumTxt.value=0thisform.numEdit.value二〃〃
(3)运行结果如图7-6所示:图
7.6输入13的运行结果注“开始”为commandl按钮,“取消”为command2按钮
4.
(1)新建如图7-7所示的表单图7-7计算表单2在相应的事件过程中,编写如下代码a在表单Forml的ACTIVATE事件中,写入如下代码:thisform.Text
1.setfocus thisform.Text
2.setfocusb在命令按钮Command1的Click事件中,写入如下代码thisform.text
3.value=valthisform.textl.value*valthisform.text
2.valuec在命令按钮Command2的Click事件中,写入如下代码thisform.release3运行结果如图7-7所示:图7・7长方形的长为
4、宽为6的运行结果注“计算”为command1命令按钮,“退出”为command2命令按钮
5.1新建如图7-7所示的表单图7-8成绩输入表单2在相应的事件过程中,编写如下代码a在表单Forml的ACTIVATE事件中,写入如下代码:thisform.Text
2.setfocusb在命令按钮Commandl的Click事件中,写入如下代码:a=val thisform.textl.valueaa=inta/10do casecase aa=10thisform.text
2.value二〃夕「秀〃case aa=9thisform.text
2.value二〃优秀〃case aa=8thisform.text
2.value二〃良好〃case aa=7thisform.text
2.value二〃良好〃caseaa=6thisform.text
2.value二〃中等〃otherwisethisform.text
2.value二〃差〃endcasec在命令按钮Command2的Click事件中,写入如下代码:thisform.release3运行结果如图7-9所示图
7.9成绩为85分的运行结果注“计算”为command1命令按钮,“退出”为command2命令按钮
6.1新建如图7-10所示的表单2在相应的事件过程中,编写如下代码a在表单Forml的ACTIVATE事件中,写入如下代码thisform.Textl.setfocusb在命令按钮Commandl的Click事件中,写入如下代码a⑴二2basen=3num=2do whilenum=xi=2do whilei=basen-1t=0telln=modbasen,iiftelln=Ot=t+lexitelsei=i+lendifenddoift=Oanum=basenbasen=basen+lnum=num+lelsebasen=basen+1endifenddok=ldo whilek=xthisform.editl.value=thisfbrm.editl.value+strak,5+chr13k=k+lenddoc在命令按钮Command2的Click事件中,写入如下代码thisform.release3运行结果如图771所示图7・11前50个素数运行结果
7.1新建如图7-12所示的表单:图7・12计算存款额表单2在相应的事件过程中,编写如下代码a在文本框Textl、Text2Text3的Init事件中,分别写入如下代码:this.value=0b在命令按钮Commandl的Click事件中,写入如下代码x=thisfbrm.textl.valuey=thisform.text
2.valuedo casecase y=3611=
3.2case y=2411=
2.8casey=1211=
2.5other11=
1.8endcasethisform.text
3.value=x+roundx*y*11/1000,2c在命令按钮Command的Click事件中,写入如下代码:thisform.textl.value=0thisform.text
2.value=0thisform.text
3.value=0thisform.text
1.setfocusd在命令按钮Commands的Click事件中,写入如下代码:thisform.release3运行结果如图7T3所示:图7-13计算存款额运行结果注“计算”为commandl命令按钮,“清除”为command2命令按钮,“退出”为commands命令按钮
8.1新建如图7-14所示的表单图7/4计算器表单2在相应的事件过程中,编写如下代码a在文本框Textl的Init事件中,写入如下代码:this.value二〃〃b在按键“0”的Click事件中,写入如下代码thisform.text l.value=thisform.text l.value+0c在按键“1”的Click事件中,写入如下代码:thisform.text
1.value=thisform.text
1.value+1d)用同样的方法,分别设置好除“等于”按键外的其他各个按键的Click事件代码e)在按键“等于的Click事件中,写入如下代码r=thisform.text Lvaluerr=rthisform.text
1.value=rrf)在按钮“清除”的Click事件中,写入如下代码thisform.text
1.value=ng)在按钮“关闭”的Click事件中,写入如下代码thisform.release
(3)运行结果如图7T5所示:图
7.15计算器运算结果
9.
(1)新建如图7-16所示的表单:图7・16计算表单
(2)在相应的事件过程中,编写如下代码:a在表单Form1的ACTIVATE事件中,写入如下代码thisform.text
1.setfocusth is form.text
2.setfocusthisform.text
3.setfocusb在命令按钮Command1的Click事件中,写入如下代码a=valthisform.text
1.valueb=valthisform.text
2.valuec=valthisform.text
3.valuedo casecasea=0thisform.text
4.value=str-c/b,l0,2thisform.text
5.value=str-c/b,l0,2case b*b・4*a*c
0.and.aoOx=・b/2*ax1=sqrt4*a*c-b*b/2*athisform.text
4.value=strx,10,2+++strx1,10,2+””thisform.text
5.value=strx,10,2+“-+strx1,10,2+1case b*b・4*a*c
0.and.aoOx1=-b+sqrtb*b-4*a*c/2*a x2=-b-sqrtb*b-4*a*c/2*a thisform.text
4.value=strx1,10,2thisform.text
5.value=strx2,10,2case b*b-4*a*c=0x=-b/2*athisform.text
4.value=strx,10,2thisform.text
5.value=strx,10,2endcasec在命令按钮Command2的Click事件中,写入如下代码:thisform.text
1.value=0thisform.text
2.value=0thisform.text
3.value=0thisfdrm.text
4.value=0thisform.text
5.value=0thisform.text
1.setfocusthisform.text
2.setfocusthisform.text
3.setfocusd在命令按钮Commands的Click事件中,写入如下代码:thisform.release3运行结果如图7-17所示图7-17方程5*x*x+8*x+2=0的解注“计算”为commandl命令按钮,“清除”为command2命令按钮,“退出”为commands命令按钮
10.1新建如图7-18所示的表单图7・18计算表单2在相应的事件过程中,编写如下代码a在命令按钮Commandl的Click事件中,写入如下代码:m=ln=2a=0b=0do whilem=
99.and.n=100a=m+ab=n+bm=m+2n=n+2enddothisform.textl.value=stra,5,2thisform.text
2.value=strb,5,2b在命令按钮Command2的Click事件中,写入如下代码thisform.release3运行结果如图7T9所示:图7-19运行结果注“计算”为command1命令按钮,“退出”为command2命令按钮
11.1新建如图7-20所示的表单图7-20初始表单2在相应的事件过程中,编写如下代码a在计时器Timerl的Timer事件中,写入如下代码:if thisform.label
1.left+thisform.label
1.width0thisform.label
1.left=thisform.label
1.widthelsethisform.label
1.left=thisform.Iabel
1.left-10endifbTimerl的Interval属性设置为2003运行结果如图7-21所示A)继承性用来描述对象之间的共同属性B)继承性用来描述类之间的共同属性C)继承性可以避免方法和数据的重复D)继承性体现了一般化和特殊化的原则
11.下列关于“封装性”的说法中,错误的是__________o(§
7.1理解)A)封装性就是把对象的内部代码与操作过程隐藏起来B)封装是借助类来实现的C)封装是借助对象来实现的D)封装要求所有对象具备明确的功能,并有接口和其他对象相互作用
12.用DEFINE CLASS命令定义了一个名为“7」”的FORM类时,若要为该类添加一个labell标签对象,应当使用的基本代码是o(§
7.1应用)A)AddObject(labell”label)B)MyForm.AddObject(u label1,,,v labelv)C)Add Objectlabell ASlabelD)Add Object
71.labell ASlabel
13.下列关于将“类”添加到表单中的方法的说法,错误的是o(§
7.2应用)A)将“类”从“类设计器”拖至“项目管理器”中B)将“类”从“项目管理器”拖至“类设计器”中C)将“类”从“项目管理器”拖至“表单设计器”中D)将“类”注册
14.下列关于对象的引用说法错误的是o(§
7.3理解)A)绝对引用是为了快速引用对象而采用的一种引用方式B)相对引用是为了快速引用对象而采用的一种引用方式C)引用是指在引用对象时,把对象的容器层次全部列出来D)对象的引用有绝对引用和相对引用
15.下列关于类的说法错误的是o(§
7.3理解)A)类不能被直接调用B)由类创建的对象可以被直接调用C)同一个类可以创建多个对象D)类可以被直接调用
16.如果要提供对当前对象的引用,可以用关键字来设置对象的属性(§
7.3应用)A)THIS B)THISFORM C)THISFORMSET D)PARENT
17.下列关于设置单个对象属性的语法正确的是o(§
7.3应用)A)Object.Property=Value B)Parent.Property=ValueC)Property=Value D)Parent.Object.Property=Value
18.下列关于调用对象的方法的说法,错误的是o(§
7.3理解)A)对象的方法没有返回值B)调用对象的方法时,如果该方法有返回值,被调用方法必须以圆括弧结尾0如果在调用方法时有参数传递,则必须把传递参数放在方法名后面的圆括弧内D)在创建了一个对象后,可以在程序的任何部分调用方法
19.在表单中加入两个命令按钮Command1和Command2,编写Command1的Click事件代码如下,则当单击Command1后,(§
7.3理解)Thisform.Parent.Command
2.Visible=.F.A)命令按钮组中的第二个命令按钮不可见图
7.21运行结果
12.1新建如图7-22所示的表单:图7・22选择字体表单2在相应的事件过程中,编写如下代码a在单选按钮组Optiongroupl的Click事件中,写入如下代码:do casecase this.value=lthisform.textl.fontname=”黑体”case this.value=2thisform.text
1.fontname=楷体”case this.value=3thisform.textl.fontname=“宋体”casethis.value=4thisform.text
1.fontname二隶书”endcaseb在命令按钮Commandl的Click事件中,写入如下代码thisform.release3运行结果如图7-23所示:图
7.23运行结果
13.1新建如图7-24所示的表单:图
7.24改变时间格式初始表单2在相应的事件过程中,编写如下代码a在计时器Timerl的Timer事件中,写入如下代码ifthisform.commandl.caption=改变时间格式12”thisform.text
1.value=timeelseif valsubstrtime,1,212thisform.text l.value=alltrimstrvalsubstrtime,l,2-12;+substrtime,3elsethisform.text
1.value=time endifendifb在命令按钮Commandl的Click事件中,写入如下代码if this.caption-改变时间格式12this.caption=改变时间格式24”elsethis.caption二改变时间格式12”endif3运行结果如图7-25所示:图7-25运行结果
14.1新建如图7-26所示的表单:图7-26计算表单2在相应的事件过程中,编写如下代码a在命令按钮Commandl的Click事件中,写入如卜代码:a=19n=ldo whilen=aif n+n/2+2*n/5=athisform.text l.value=strn,2+“头牛”=inkey
0.1thisform.text
2.value=strn/2,2+头牛”=inkey
0.1thisform.text
3.value=str2*n/5,2+“头牛”exitelsen=n+lendifenddob在命令按钮Command的Click事件中,写入如下代码:thisform.release3运行结果如图7-27所示图7-27运行结果注“计算”为command1命令按钮,“退出”为command2命令按钮B)Command!.命令按钮不可见C)事件代码无法执行D)Command2命令按钮不可见
20.在Visual FoxPro
6.0控件中,编辑框的默认名称为____________(§
7.3识记)A)List B)Editl C)Label D)Text
21.在表单中编写Commandl命令按钮的Click事件的过程代码,下列可以在单击命令按钮时退出表单(§
7.3应用)A clearthisformB thisform.hideC thisform.unlodeD thisform.release
22.若某表单中有一个文本框Textl和一个命令按钮组CommandGroupl,其中,命令按钮组包含了Command1和Command2两个命令按钮如果要在命令按钮Command1的某个方法中访问文本框Textl的Text属性值,下列式子中错误的是§
7.3应用A ThisForm.Textl.Text B This.Parent.Textl.TextC Parent.Textl.Text DThis.Parent.Parent.Textl.Text
23.调用对象方法的格式正确的是o§
7.3识记A Object.Method BMethod ObjectCParent.Object.Method DParent.Method
二、多项选择题
1.在表单Forml的事件或方法代码中设置该表单中命令按钮Commandl的Caption属性为“确定”的正确命令是o§
7.2理解A Forml.Command
1.Caption=w确定”BThis.Command
1.Caption=,确定”C ThisForm.CommandL Caption=“确定”确定D ThisFormSet.Commandl.Caption=
2.在面向对象程序设计中,描述对象的三个要素包括(§
7.1应用)
3.面向对象程序设计的三个基本特征是§
7.1应用A)属性B)事件C)开放性D)方法A)响应B)继承性C)封装性D)多态性
4.在Visual FoxPro
6.0中,常用的表单事件有(§
7.2识记)A INITB LOADC DESTROYD CLEAR
5.在Visual FoxPro
6.0中,下列名词属于表单控件的是§
7.2识记A LoadB TextC LabelD Click
6.在Visual FoxPro
6.0中,下列名词属于对象触发事件的是____________§
7.2识记A UnloadB DblClickC RefreshD Gotfocus
7.在Visual FoxPro
6.0的OOP概念中,下列说法正确的有(§
7.1理解)A)类是定义对象的特征和描述对象的外观与行为的模板B)对象是一个具有属性和方法的实体C)事件是对象触发的行为描述D)方法是指对象为完成一定功能而编写的一段程序代码
8.下列有关面向对象程序设计的基本特征叙述正确的是o(§
7.1理解)A)继承性用来描述基类和派生类之间的共同属性B)封装性是把对象的内部代码与操作过程隐藏起来C)多态性就是方法和名称完全相同D)用户的动作能够激发事件,但响应事件必须通过对应的方法来实现
9.下面关于方法的正确说法是o(§
7.1理解)A)方法是某一对象相关联的过程B)方法是指对象为完成一定功能而编写的一段程序代码C)方法程序创建完成后以.PRG文件保存D)一个事件必定有一个与之相对应的方法
10.下列关于控件类的各种叙述中,正确的是o(§
7.1理解)A)控件也是一种对象B)控件类是将特殊的对象进行更严格的封装C)控件是定制成用以显示数据、执行操作的一种图形对象D)控件类对象与容器类对象是相对而言的
三、填空题
1.一个对象建立以后,其操作就通过与对象有关的属性、和来描述(§
7.1识记)
2.面向对象程序设计的3个基本特征是继承性、_______和o(§
7.1识记)
3.Visual FoxPro
6.0中的基类有两大类型,分别是和;相应地,对象也分为和(§
7.1识记)
4.不能被直接调用,由类创建的___________才可以被直接调用(§
7.1识记)
5.引用对象的两种方式是和—o(§
7.1识记)
6.对象引用提供对当前对象的引用,对象引用提供对当前表单的引用,对象引用提供了一种引用当前表单集的快捷引用,对象引用提供了一种引用当前对象的父对象的引用(§
7.3识记)
四、面向对象程序设计题
1.用标签、文本框、命令按钮构成一个表单ShowFrm,在标签中显示“当前系统日期和时间”;运行表单时,在文本框中单击鼠标左键将显示当前系统R期,双击鼠标左键将显示当前系统时间;单击“删除”按钮,文本框中的结果将被删除,单击“退出”按钮,将退出表单的运行(§
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.D
2.A
3.D
4.D
5.A
6.A
7.C
8.D
9.C
10.A
11.C
12.C
13.A
14.A
15.D
16.A
17.D
18.A
19.C
20.B
21.D
22.A
23.C
二、多项选择题
1.B C
2.A BD
3.B C D
4.A B C
5.BC
6.A B
7.A BC D
8.A BD
9.A BD
10.A BCD
三、填空题
1.事件方法
2.封装性多态性
3.容器类控件类容器类对象控件类对象
4.类对象
5.绝对引用相对引用
6.This ThisFormThisFormset Parent
四、面向对象程序设计题
1.1新建如图7-1所示的表单图7・1显示当前系统日期和时间表单2在相应的事件过程中,编写如下代码a在文本框Text1的Click事件中,写入如下代码this.value=dateb在文本框Textl的DblClick事件中,写入如下代码this,value=timeC在命令按钮Command1的Click事件中,写入如下代码:thisform.textl.value=nd在命令按钮Command2的Click事件中,写入如下代码:thisform.release3运行表单,结果如图7-2所示图7-2显示当前系统的日期和时间的运行结果注删除”为command1按钮,“退出”为command2按钮
2.
(1)新建如图7-3所示的表单图
7.3密码输入表单2在相应的事件过程中,编写如下代码a在表单Form1的ACTIVATE事件中,写入如下代码:thisform.text
3.setfocuspublic nn=0b在文本框Text1的Click事件中,写入如下代码this.value=datec在文本框Text2的Click事件中,写入如下代码this.value=timed在命令按钮Command]的Click事件中,写入如下代码ma=thisform.text
3.valuek l=strmonthdate,2+strdaydate,2k2=substime,1,2k=kl+k2k=alltkif alltma=kthisform.label
3.caption二”欢迎使用本系统!”elsen=n+lifn=3thisform.label
3.caption二您无权使用本系统!”thisform.text
3.enabled=.f.thisform.command
1.enabled=.f.elsethisform.label
3.caption=□令错,请重新输入口令!thisform.text
3.value=thisform.text
3.setfocusendifendife在命令按钮Command2的Click事件中,写入如下代码:thisform.release3运行结果如图7-4所示:图7-4密码程序运行结果注“确定”为command1按钮,“关闭”为command2按钮
3.1新建如图7-5所示的表单图
7.5计算表单2在相应的事件过程中,编写如下代码:。
个人认证
优秀文档
获得点赞 0