当前位置:文档之家› 第七章 面向对象的程序设计

第七章 面向对象的程序设计

第七章 面向对象的程序设计
第七章 面向对象的程序设计

第七章面向对象的程序设计

本章是面向对象的程序设计。与第五章介绍的面向过程的结构化程序设计不同,主要介

绍面向对象程序设计的基础知识,包括面向对象的基本概念以及Visual FoxPro支持的面向对

象的编程技术,详尽介绍了对各类控件的选择与使用方法。在对诸如表单等各类控件对象的设

计、操作上,面向对象的编程技术有自己的独特之处,但在所有对象的各种事件和方法的程序

代码设计中,仍然使用到结构化的程序设计方法。本章的主要内容是面向对象程序设计的理论

基础,其程序设计的基本目标是设计出能在可视化环境下运行的应用程序窗口界面—表单。

7.1 学习提要

1.学习目标与要求

通过本章学习,读者应达到以下要求:

⑴了解对象、类等基本概念;

⑵理解对象的属性、方法和事件;

⑶熟练掌握表单的基本设计、操作和应用;

⑷掌握常用控件的设计与使用。

⑸熟练掌握常用事件、方法的过程代码的设计方法。

⑹了解自定义类的创建和使用方法。

2.重点与难点:

⑴本章重点:对象与类以及属性、方法和事件等基本概念;表单的设计与应用;常用控

件属性、事件和方法的选择与运用。

⑵本章难点:本章的重点即为本章的难点

3.主要知识点

⑴面向对象的概念

①对象、类

②属性、方法、事件

③Visual FoxPro 中的基类

⑵表单的创建与基本操作

①表单的创建

使用“窗体设计器”或“表单向导”创建表单。

②表单的修改、运行

使用“窗体设计器”编辑修改表单。使用菜单或命令方式运行表单。

③表单的属性、事件和方法

表单常用属性的设置,表单的常用事件、常用方法。

④设置表单的数据环境

数据环境的概念,数据环境的设置。

⑶表单常用控件

①表单常用控件的基本操作

控件对象的选定,移动位置,改变大小,剪切、复制与粘贴,删除,布局设置。

②常用控件对象

标签控件,命令按钮与命令按钮组控件,文本框与编辑框控件,选项组和复选框控件,列表框和组合框控件,容器与表格控件,页框控件,计时器与微调控件,图像控件等。

③控件对象的常用属性设置

Caption属性,Name属性,Alignment属性,ButtonCount属性,BackColor属性,BorderColor属性,BorderStyle属性,Enabled属性,ForeColor属性,InputMask属性,PasswordChar属性,Picture属性,Height属性,Width属性,Left属性,Top属性,Value属性,Visible属性,FontName属性,FontSize属性,ControlSource属性。

④控件对象的常用事件的使用

Load事件,Init事件,Destroy事件,Unload事件,Error事件,Click事件,

DblClick事件,RightClick事件。

⑤控件对象的常用方法的使用

SetFocus方法,Release方法,Refresh方法,Show方法,Hide方法。

⑷类的建立

使用“类设计器”创建类。

7.2 习题

一、单项选择题

1.以下关于Visual FoxPro类的说法,不正确的是()

A)类具有继承性

B)用户必须给基类定义属性,否则出错

C)子类一定具有父类的全部属性

D)用户可以按照已有的类派生出多个子类

2.下列基类中是容器类的是()

A)表单B)命令按钮C)列表框D)单选按钮

3.下列关于“类”的叙述中,错误的是()

A)类是对象的集合,而对象是类的实例

B)一个类包含了相似对象的特征和行为方法

C)类并不实行任何行为操作,它仅仅表明该怎样做

D)类可以按其定义的属性、事件和方法进行实际的行为操作

4.下列说法中错误的是()

A)事件既可以由系统引发,也可以由用户激发

B)事件集合不能由用户创建,是唯一的

C)事件代码能在事件引发时执行,但不能像方法一样被显式调用

D)每个对象只能识别并处理属于自己的事件

5.下面关于属性、方法和事件的叙述错误的是()

A)属性用于描述对象的状态,方法用来表示对象的行为

B)基于同一类产生的两个对象可以分别设置自己的属性值

C)在新建一个表单时,可以添加新的属性、方法和事件

D)事件代码也可以像方法一样被显式调用

6.下列关于基类的说法不正确的是()

A)Visual FoxPro提供的类都是基类

B)Visual FoxPro基类被存放在指定的类库中

C)Visual FoxPro基类是系统本身提供的

D)可以基于类生成所需要的对象,也可以扩展基类创建自己的类

7.下列叙述中错误的是()

A)Visual FoxPro中基类的事件可以由用户创建

B)Visual FoxPro中基类的事件是由系统预先定义好的,不可由用户创建

C)事件是一种事先定义好的特定的动作,由用户或系统激活

D)鼠标的单击、双击、移动和键盘上的按键均可激活某个事件

8.下列关于编写事件代码的叙述中,错误的是()

A)可以由定义了该事件过程的类的子类继承

B)为对象的某个事件编写代码,就是将代码写入该对象的这个事件过程中

C)为对象的某个事件编写代码,就是编写一个与事件同名的.PRG程序文件

D)为对象的某个事件编写代码,可以在该对象的属性对话框中选择该对象的事件,然后在出现的事件代码窗口中输入相应的事件代码

9.下列关于属性、方法、事件的叙述中,错误的是()。

A)事件代码也可以像方法一样被显式调用

B)属性用于描述对象的状态,方法用于描述对象的行为

C)在一个对象中可以修改另一个对象的属性、方法和事件

D)基于同一个类产生的两个对象可以分别设置自己的属性值

10.以下可以构成语句一项是()

A)对象名.属性名B)对象名.方法名

C)对象名.过程名D)对象名.函数名

11.能被对象所识别的动作与对象可执行的活动分别称为对象的是()

A)方法、事件B)事件、方法

C)事件、属性D)过程、方法

12.对象拥有()的全部属性。

A)表B)数据库C)类D)图形

13.命令按钮组是()

A)控件类对象B)容器类对象C)命令按钮D)表单对象

14.如果要为控件设置焦点,则控件的Enabled属性和()属性必须为.T.

A)Buttons B)Cancel C)Default D)Visible

15.Show方法用来将()

A)表单的Enabled属性设置为.F. B)表单的Visible属性设置为.F.

C)表单的Enabled属性设置为.T. D)表单的Visible属性设置为.T.

16.在Visual FoxPro中,如果一个控件的()属性值为.F. 将不能获得焦点。

A)Enabled 和ContorlSource B)Enabled和Click

C)ContorlSource和Click D)Enabled或Visible

17.下列属于容器类的控件有()

A)组合框,命令按钮B)表单,表格

C)标签,页D)列表框,工具栏

18.在表单MyForm的一个控件的事件或方法代码中,改变该表单的背景色为绿色的正确命令是()

A)MyForm.Parent.BackColor=Rgb(0, 255, 0)

B)Thisform.BackColor=Rgb(0, 255, 0)

C)Thisform.Parent.BackColor=Rgb(0, 255, 0)

D)This.BackColor=Rgb(0, 255, 0)

19.表单的Name属性用于()

A)作为保存表单时的文件名B)引用表单对象

C)显示在表单标题栏中D)作为运行表单时的表单名

20.在文本框中要显示当前数据表中的“姓名”字段,应设置()

A)Thisform.Text1.Value=姓名

B)Thisform.Text1.ControlSource=姓名

C)Thisform.Text1.Value=“姓名”

D)Thisform.Text1.ControlSource=“姓名”

21.在表单常用事件中,按照触发时机的不同先后排列,顺序应是()

A)Init、Load、Destroy、Unload B)Init、Load、Unload 、Destroy

C)Load、Init、Destroy、Unload D)Load、Init、Unload、Destroy

22.下面对控件的描述不正确的是()

A)可以同时选中一个表单上的多个控件

B)可以在列表框中进行多重选择

C)可以在一个选项组中选中多个选项按钮

D)可以在一个表单内的一组复选框中选其中多个

23.表单向导可以创建()

A)单表表单B)表C)类D)报表

24.可用表单的()属性来设置表单的标题。

A)Style B)Text C)Caption D)Name

25.以下哪个是控件类()

A)Formset B)CommandGroup C)Form D)Timer

26.选择列表框或组合框中的选项,双击鼠标左键,此时触发()事件。

A)Click B)DblClick C)Init D)KeyPress

27.“窗体控件”工具栏用于在表单中添加()。

A)文本B)命令C)控件D)复选框

28.使用()工具栏可以在表单上对齐和调整控件的位置。

A)调色板

B)布局C)表单控件

D)窗体设计器

29.将“复选框”控件的

Value属性设置为()时,复选框显示为灰色。

A)0 B)1 C)2 D)3

30.在窗体控件工具栏可以创建一个()控件来保存多段文本。

A)命令按钮

B)文本框C)列表框

D)编辑框

31.以下关于文本框和编辑框的叙述中,错误的是()

A)在文本框和编辑框中都可以输入和编辑各种类型的数据

B)在文本框中可以输入和编辑字符型、数值型、日期型和逻辑型数据

C)在编辑框中只能输入和编辑字符型数据

D)在编辑框中可以进行文本的选定、剪切、复制和粘贴等操作

32.设计表单时,可以利用()向表单中添加控件。

A)窗体设计器工具栏B)布局工具栏

C)调色板工具栏D)窗体控件工具栏

33.在

Visual FoxPro中,表单(

Form)是指()

A)数据库中各个表的清单B)一个表中各个记录的清单

C)数据库查询的列表D)窗口界面

34.若果需要重新绘制表单或控件,并刷新它的所有值,引发的是()事件或方法。A)Click事件B)Release方法

C)Refresh方法D)Show方法

35.确定列表框内的某个条目是否被选定应使用的属性是()

A)Value B)ColumnCount

C)ListCount D)Selected

36.设计组合框时,通过设置()属性,可以用不同类型的数据源中的项填充组合框。A)RowSource B)RowSourceType

C)Stype D)ColumnCount

37.命令按钮组中有三个按钮

Command1,Command2、Command3,在执行如下代码后:

https://www.doczj.com/doc/2115157770.html,mandGroup1.Value=2 则()

A)Command1被选中B)Command2被选中

C)Command3被选中D)Command1,Command2被选中

38.要想使在文本框中输入数据时屏幕上显示的是“*”号,则该设置的属性是()

A)Alignment B)Enabled

C)Maxlength D)PasswordChar

39.下面关于列表框和组合框的陈述中,正确的是()

A)列表框和组合框都可以设置成多重选择

B)列表框可以设置成多重选择,而组合框不能

C)组合框可以设置成多重选择,而列表框不能

D)列表框和组合框都不能设置成多重选择

40.在表单中加入一个复选框和一个文本框,编写Check1的Click事件代码如下:Thisform.Text1.Visiable=This.Value,则当单击复选框后,()

A)文本框可见

B)文本框不可见

C)文本框是否可见由复选框的当前值决定

D)文本框是否可见与复选框的当前值无关

41.假定一个表单里有文本框Text1和命令按钮组CommandGroup1,命令按钮组包含Command1和Command2两个命令按钮,如果要在Command1命令按钮的某个方法中访问文

本框的Value属性值,下面正确的是()

A)This.ThisForm.Text1.Value B)This.Parent.Parent.Text1.Value

C)Parent.Parent.Text1.Value D)This.Parent.Text1.Value

42.向页框中添加对象,应该()

A)用鼠标单击“控件”,直接在表单中单击

B)用鼠标单击“控件”,再单击鼠标右键

C)用鼠标单击“控件”

D)用鼠标右击页框,在弹出的快捷菜单中选择“编辑”,再向页框中添加对象

43.在Visual FoxPro中,运行表单T1.SCX的命令是()

A)DoT1 B)Run Form T1

C)DoFormT1 D)Do T1.scx

44.下列关于数据环境的说法中错误的是()

A)如果添加到数据环境中的表之间具有在数据库中设置的永久关系,这种关系也会

自动添加到数据环境中

B)如果表之间没有永久关系,也不可以在数据环境设计器中为这些表设置关系

C)编辑关系主要通过设置关系的属性来完成,要设置关系属性,可以先单击表示关

系的连线选定关系,然后在属性窗口中选择关系属性来设置

D)通常情况下,数据环境中的标或视图会随着表单的打开或运行而打开,并随着表

单的关闭或释放而关闭

45.在窗体设计器环境下,打开“数据环境设计器”窗口的方法有很多,以下错误的是()A)单击“窗体设计器”工具栏上的“数据环境”按钮

B)选择“显示”菜单中的“数据环境”命令

C)在“窗体设计器”的工作窗口中单击鼠标右键,在弹出的快捷菜单中选择“数据

环境”命令

D)选择“文件”菜单中的“打开”命令,在弹出的对话框中选择“数据环境”单选

46.不可以作为文本框控件数据来源的是()

A)备注型字段B)内存变量C)字符型字段

D)数值型字段

47.在表单中加入两个命令按钮

Command1和

Command2,编写

Command1的

Click事件

的代码如下:https://www.doczj.com/doc/2115157770.html,mand2.Enabled=.F.则当单击

Command1后,()

A)Command1命令按钮不能激活

B)Command2命令按钮不能激活

C)Command1命令按钮不可见D)Command2命令按钮不可见

48.在窗体设计器环境中,要选定某选项组中的某个选项按钮,正确的操作是()

A)双击要选择的选项按钮

B)单击属性窗口对象下拉列表中的该选项按钮的对象名

C)右击选项组并选择“编辑”命令,再单击要选择的选项按钮

D)以上(B)(C)都可以

49.表单中可包含各种控件,其中组合框的默认

Name属性是()

A)Command1 B)Label1 C)Check1 D)Combo1

50.要使某表单中的文本框

Text1显示

jsqk.dbf中姓名字段的值,应将该文本框的()

属性设置为“jsqk.xm”。

A)ControlSource B)Source C)RecordSource D)RowSource

51.关于编辑框,下列叙述不正确的是()

A)可以输入或编辑字符型数据B)可以输入多段文本

C)可以与备注型字段绑定D)可以与通用型字段绑定

52.当单击表单的“首记录”按钮时,表单显示第一条记录内容,同时该按钮变为灰色不能使用的按钮,应在其

Click事件代码中将()属性的值赋值为.F.。

A)Visible B)Enabled C)Value D)Caption

53.给表单中的文本框

Text1设置焦点的正确方法是()

A)Thisform.Text1.Refresh B)Thisform.Text1.Release

C)Thisform.Text1.Setfocus D)Thisform.Text1.Show

54.下列关于创建类的叙述中,错误的是()

A)可以选择菜单命令,进入“类设计器”

B)类库文件的扩展名为.vcx

C)类库文件的扩展名为.prg

D)可以在命令窗口输入

Create Class命令,进入“类设计器”

55.在当前目录下有

m.prg和

m.scx两个文件,在执行命令

Do m后,实际运行的文件是

()

A)m.prg B)

m.scx C)随机运行D)都运行

二、填空题

1.类是一组具有相同属性和相同操作的对象的集合,类中的每个对象都是这个类的一个。

2.Visual FoxPro的基类有两种,即:和。

3.Visual FoxPro提供了一批,用户可以在它们的基础上定义自己的类和子类。

4.类是对象的集合,它包含了相似的有关对象的特征和行为方法,而则是类的

实例。

5.在Visual FoxPro中,在创建对象时发生的事件是;从内存中释放对象时发生

的事件是;用户使用鼠标双击对象时发生的事件是。

6.在Visual FoxPro中释放和关闭表单的方法是

7.一组具有相同数据和相似操作的对象的集合称为。

8.Visual FoxPro系统中用描述对象的状态,用描述对象的行为。

9.是预先定义好的特定动作,由用户或系统激活,在某个特定的时刻发生。

10.在程序中为了显示已创建的Myform表单对象,应使用。

11.在属性窗口中,有些属性的默认值在列表框中以斜体显示,其含义是。

12.如果要把一个文本框对象的初值设置为当前日期,则在该文本框的Init事件中设置代码为。

13.在Visual FoxPro中提供两种表单向导:创建基于一个表的表单时可选择,

创建基于两个具有一对多关系的表单时可选择。

14.表格是一种容器对象,一个表格对象有若干对象组成。

15.若想让计时器开始工作,应将属性设置为真。

16.文本框控件的Value属性的默认值是。

17.表单的信息保存于表单文件和文件中,前者的扩展名为,后者的扩

展名为。

18.要为控件设置焦点,其属性和必须为.T.。

19.数据环境是一个,它定义了表单或表单集使用的,以及表单所要求

的表之间的,它可以包括、和。

20.在表单中添加控件后,可以通过相应的为其设置常用属性,也可以通过属性

窗口为其设置各种属性。

21.在一个表单对象中添加两个按钮Command1和Command2,单击每个按钮会作出不同的操作,必须为这两个按钮编写的事件过程名称分别是和。

22.编辑框控件与文本框控件最大的区别是:在编辑框中可以输入或编辑文本,

而在文本框中只能输入或编辑文本。

23.要使标签显示指定的文字,应对其属性进行设置;要使指定的文字自动适应

标签区域的大小,则应将其属性设置为逻辑真值。

24.将控件与备注型字段绑定的方法是:在控件的ControlSource属性中指定。

25.This是对的引用,Thisform是对的引用,Parent是对的引用。

26.如果要同时选定多个控件,应先按住健,再单击各个要选定的控件。

27.定义列表框或者组合框的列表项的来源,应设置和属性。

(a)

习题图7.1

(b)

28.如习题图7.1所示,用标签、文本框、命令按扭构成一个表单Form1。表单运行之初,标签显示“当前系统日期:”,文本框中显示当前系统日期。在文本框中单击左键将显示当前系

统日期,单击右键将显示当前系统时间,标签显示内容也随之而变;单击“清除”按钮,文本

框中的结果将被清除;单击“退出”按钮,将退出表单的运行。

表单的Init事件代码是

“清除”按钮的Click事件代码是

“退出”按钮的Click事件代码是

文本框的Click事件代码是

,而

的事件代码是。

三、设计题

1.设计求阶乘的表单,如习题图7.2所示。

(1) 表单运行,两个文本框初值置

0。用户在Text1中输入一个整数,单

击计算按钮,如果输入的是一个非正

整数,显示消息对话框,提示用户“输

入非法数据,退出程序运行。”,并关

闭表单;如果输入的是一个正整数,

求出此数的阶乘,并显示在Text2中。

(2) 单击“退出”按钮,关闭表单。

2.设计一个如习题图7.3所示,

可以选择不同字体进行显示的表单,

要求在文本框中输入文字后,单击某

个单选按钮,文本框内的文字即能以

指定的字体显示。

习题图7.2

3.设计如习题图

7.4的(a)、(b)所

示的表单,用户分别在文本框中输入初

值和终值,单击“计算”按钮可计算

出初值和终值之间连续整数的和,结果

显示于结果文本框中。如:输入

12和

15,可计算出

12+13+14+15的和。表单

运行初时结果文本框不可用,当单击

“计算”按钮,结果文本框成为可用文

本框并显示结果;单击“清除”按钮,

将三个文本框的内容清零,并将焦点置

于初值文本框中,同时结果文本框重新

置为不可用。

习题图7.3(a)

习题图7.4 (b)

4.设计如习题图

7.5所示表单,可以逐条记录翻页查看教师情况表内容。习题图7.5

5.设计如习题图

7.6所示表单,用于对数据表

student.dbf进行处理。表单中有一个表格、

一个选项组、一个命令按钮组、两个文本框和一个命令按钮。要求在选项组中选择一门课程后

(如“英语”),单击“平均分”按钮,则在其右侧的文本框中显示该课程的平均成绩;单击“优

秀人数”按钮,则在右侧的文本框中显示成绩在

85分以上的学生人数;单击“退出”按钮,

则关闭表单。

student.dbf的结构如下表所示:

字段名类型宽度含义

xh C 10 学号

xm C 10 姓名

yw N 10 语文

sx N 5(小数位数

1)数学

yy N 5(小数位数

1)英语

习题图

7.6

6.根据第

5题提供的

student.dbf数据表设计“数据查询”表单,如习题图

7.7所示。程

序功能为:在组合框中列出所有

学生的学号,从中选择一个学生

学号,单击“查询”按钮,显示

该学生的相关字段信息。单击

“退出”按钮,关闭表单。

7.设计如习题图

7.8教师信

息管理系统的软件封面,该表单

包含一个标签显示“教师信息管

理系统”和一个从左到右移动的

标签字幕“欢迎使用本系统”。

习题图

7.7

习题图

7.8

8.设计如习题图

7.9统计教师人数的表单,可以统计一个系或者多个系的教师总人数,

如果没选择任何系部,则显示提示对话框,提示“未选择任何系部,不能进行任何人数统计。”。

习题图

7.9

习题图

7.10

9.设计如习题图

7.10浏览数据表的表单,在组合框内选择一个表名,即可在表格内显示

出所选数据表的记录内容。

10.设计如习题图

7.11的(a)、(b)所示的表单,可以在科研信息页面中的下拉列表框中选

择教师姓名,查询相应的科研成果信息;可以在添加科研记录页面中输入科研信息,单击添加

按钮,将其作为一条新记录加入到

kyqk表中去,添加记录之前用提示对话框进行确认,单击

退出按钮关闭表单。

习题图

7.11 (a)

习题图

7.11 (b)

第七章习题参考答案

一、单项选择题

1.可以给对象定义属性,而不是基类,因此应选:

B

2.表单是一种容器类对象,因此应选:

A

3.对象可以按其定义的属性、事件和方法进行实际操作,而不是类,因此应选:D

4.事件驱动程序既能在事件触发时执行,也能在代码中显式调用,因此应选:C

5.可以添加新的属性和方法,但不能添加新的事件,因此应选:

C

6.A 7.A 8.C 9.C 10.B

11.B 12.C 13.B 14.D 15.D

16.D 17.B 18.B 19.B 20.B

21.C 22.C 23.A 24.C 25.D

26.B 27.C 28.B 29.C 30.D

31.A 32.D 33.D 34.C 35.D

36.B 37.B 38.D 39.B 40.C

41.B 42.D 43.C 44.B 45.D

46.A 47.B 48.D 49.D 50.A

51.D 52.B 53.C 54.C 55.A

二、填空题

1.类是对象的集合,而对象是类的实例,因此应填:实例

2.Visual FoxPro支持两种基类,因此应填:容器类,控件类

3.Visual FoxPro提供了一批:基类

4.类是对象的集合,其实例即为:对象

5.建立对象时触发Init事件,对象被释放时触发Destroy事件,用鼠标双击对象时触发DblClick事件,因此应填:Init,Destroy,DblClick

6.Release

7.类

8.属性,方法

9.事件

10.Myform.show

11.该属性只读

12.This.Value=Date()

13.单表表单,一对多表单

14.列

15.Enabled

16.空字符串

17.表单备注,.scx ,.sct

18.Enabled,Visible

19.对象,数据源,关系,数据表,自由表,视图

20.程序代码

21.Command1.Click,Command2.Click

22.多段,单段

23.Caption,Autosize

24.字段名

25.当前对象,当前表单,当前对象的父对象

26.Shift

27.RowSourceType,RowSource

28.This.Text1.Value=Date( ),Thisform.Text1.Value="",Thisform.Release,

第四个空:https://www.doczj.com/doc/2115157770.html,bel1.Caption="当前系统日期"

This.Value=Date( )

第五个空:RightClick

第六个空:https://www.doczj.com/doc/2115157770.html,bel1.Caption="当前系统时间"

This.Value=Time( )

三、设计题(参考答案)

1.设计步骤如下:

⑴打开窗体设计器。

⑵添加两个标签,两个文本框和两个命令按钮,并调整其大小和位置。各对象的

Name

属性取系统默认值不变。

⑶分别设置两个标签的

Caption属性分别为“请输入一个整数:

”、“此整数的阶乘为:

”,

两个命令按钮的

Caption属性分别为“计算”、“退出”,并将两个文本框的

Value属性设置为

0。

⑷编写计算按钮

Command1的

Click事件的代码如下:

s=1

n=Thisform.Text1.Value

If n>0

For i=1 To n

s=s*i

Endfor

ThisForm.Text2.Value=s

Else

MessageBox("输入非法数据,退出程序运行。")

Thisform.Release

Endif

⑸编写退出按钮

Command2的

Click事件的代码如下:

Thisform.Release

2.设计步骤如下:

⑴打开窗体设计器。

⑵添加两个标签,一个文本框,一个命令按钮和一个选项按钮组,并调整其大小和位置。

各对象的

Name属性取系统默认值不变。

⑶分别设置两个标签的

Caption属性为

“请输入显示内容:

”、“请选择字体:”,命令按钮

Caption属性为

“关闭”。

⑷利用选项按钮组生成器将其布局设为横向,个数设为4个,每个选项按钮设置其

Caption属性分别为:

“黑体”、“宋体”、“隶书”、“楷体”。

⑸编写选项按钮组

OptionGroup1的

Click事件的代码如下:

Do Case

Case This.Value=1

Thisform.Text1.FontName="黑体"

Case This.Value=2

Thisform.Text1.FontName="宋体"

Case

This.Value=3

Thisform.Text1.FontName="隶书"

Case This.Value=4

Thisform.Text1.FontName="楷体"

Endcase

⑹编写关闭按钮

Command2的

Click事件的代码如下:

ThisForm.Release

3.设计步骤如下:

⑴打开窗体设计器。

⑵添加三个标签,三个文本框,一个命令按钮组,并调整其大小和位置。各对象的Name

属性取系统默认值不变。

⑶分别设置三个标签的

Caption属性为

“初值:”、“终值:”、“结果:”。

⑷利用命令按钮组生成器将其布局设为横向,个数设为

3个,每个命令按钮分别设置其

Caption属性为

“计算”、“清除”、“退出”。

⑸编写

Form1的

Init事件的代码如下:

This.Text1.Value=0

This.Text2.Value=0

This.Text3.Value=0

This.Text3.Enabled= .F.

⑹编写命令按钮组

CommamdGroup1的

Click事件的代码如下:

Do Case

Case This.Value=1

i=0

For j=Thisform.Text1.Value To Thisform.Text2.Value

i=i+j

Endfor

Thisform.Text3.Enabled= .T.

Thisform.Text3.Value=i

Case This.Value=2 Thisform.Text1.Value=0 Thisform.Text2.Value=0 Thisform.Text3.Value=0 Thisform.Text3.Enabled= .F.

Case

This.Value=3

Thisform.Release Endcase

4.设计步骤如下:

⑴打开窗体设计器。

⑵打开数据环境设计器,将jsgl数据库中的

jsqk.dbf添加到其中。

⑶使用表单菜单中的快速表单命令,打开表单生成器,将该数据表中的所有字段全部添加到选定字段中,关闭生成器,选定字段绑定的相关控件出现在表单中,调整其位置。

⑷添加一个命令按钮组,利用命令按钮组生成器将其布局设为纵向,个数设为

3个,每

个命令按钮设置其

Caption属性为“上一条

”、“下一条”、“退出”。

⑸各对象的

Name属性取系统默认值不变。

⑹编写命令按钮组

CommandGroup1的

Click事件的代码如下:

Do Case

Case This.Value =1

If Bof( )

Go Bott

Endif

Skip -1

Thisform.Refresh

Case This.Value =2

If Eof( )

Go Top

Endif

Skip 1

Thisform.Refresh

Case

This.Value =3

Thisform.Release

Endcase

5.设计步骤如下:

⑴打开窗体设计器。

⑵打开数据环境设计器,将

student.dbf添加到其中。

⑶添加一个命令按钮组,一个选项按钮组,两个文本框,一个命令按钮,一个表格,并调整其大小和位置。各对象的

第3章 面向对象程序设计基础

第3章面向对象程序设计基础

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? 答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。 在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。 【2】如何定义方法?在面向对象程序设计中方法有什么作用? 答:方法的定义由两部分组成:方法声明和方法体。 方法的声明如下: 返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){ 程序代码; 返回值; } 在面向对象程序设计中,方法的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) {

studentNo=no; studentName=name; return no; } 答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象; 特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student 首字母S改成小写s. 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 class Student { String id; String name; String sex; int age; void talk(){

面向对象程序设计考前复习题及答案

简答题 1、传统的结构化程序设计的优点和缺点是什么? 优点: (1)这种程序设计方法力求算法描述准确。 (2)对每一子过程模块容易进行程序正确性证明。 缺点: (1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。 (2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。 (3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。 2、什么是对象? 每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。 3、什么是消息? 在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。4、什么是多态性? 所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。 5、什么是面向对象的程序设计方法? 这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。 在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。 6、面向对象方法的特点是什么? (1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。 (2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承。 (3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事半功倍的效果。 7、面向对象的程序设计方法与结构化程序设计方法的比较 (1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难。

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

面向对象程序设计 复习资料

1.对象 (1)从概念层面讲,对象是某种拥有责任的抽象。 (2)从规格层面讲,对象是一系列可以被其他对象使用的公共接口。 (3)从语言实现层面讲,对象封装了代码和数据。 2.软件开发中的经典阶段:需求、分析、设计、规范、实现、测试、部署、维护。 3.设计7原则:开闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、 迪M特原则、接口隔离原则、单一职责原则。 4.面向对象的方法学:UML(统一建模语言)、RUP(统一软件开发过程)、XP(极限 编程)。 开发方法:Booch、Coad、OMT、UML、OOSE、Wirfs—Brock 5.OOA——运用面向对象方法进行需求分析。 OOD——运用面向对象方法进行系统设计。 OOP——运用面向对象方法进行程序设计。 6.OOA的基本任务:是运用面向对象的方法,对问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及系统责任所需的类及对象,定义这些类和对象的属性和操作,以及它们之间所形成的结构、静态联系和动态联系。最终目的:是产生一个符合用户需求,并能够直接反映问题域和系统责任的OOA模型及其详细说明。 优点:(1)加强了对问题域和系统责任的理解。(2)改进与分析有关的各类人员之间的交流。(3)对需求的变化具有较强的适应性。(4)支持软件复用。 OOA的三大策略是:属性策略、方法策略、对象策略。 7.(1)封装:是指对象在其操作中隐藏属性。它是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分开,使对象的定义和实现分开。 例如:要从同事那里借钱,在商店购买食物,就不会抢夺同事的钱包,大翻一通,看看里 面是否有足够的钱。而应该询问他们是否可以借你一些钱,他们就会自己翻钱包。 以表示圆的一个对象作为封装的例子。圆的操作应能计算出半径、直径、周长和面积。假定选择存储直径,要访问直径的程序员都会选择存储直径属性,而不是通过“获取直径”的操作来访问。如果在软件的后续版本中要存储的是半径,就必须找出系统中直接访问直径的所有代码,并更正它们,有了封装,就不会有问题。 (2)继承:可以指定类从父类中获取一些特性,再添加它自己的独特特性。继承是类间的 基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承父类的属性和操作,也可以对父类中的操作重新定义其实现方法。 例如:在面向对象中,我们可以把洗衣机、电冰箱、微波炉、收音机看成是家用电气类的 子类,也可以说家用电器类是这些类的超类。家用电器类具有的属性OnOffSwitch和electricWire,具有turnOn()和turnOff()操作。因此,如果你知道某物是家用电器,那么就会立即知道它 具有家用电器类的属性和操作,这种关系就是继承。每个家用电器类的子类都继承了家用电器类的特征。同时,每个子类都增加了自己的属性和操作。 (3)多态:是指同一操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如:“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形;作用在“圆”对象上, 则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同对象时,每个对象将根据自1 / 9

(完整版)《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

c++面向对象课程设计报告

课程设计报告 课程名称面向对象程序设计 课题名称学生成绩管理系统 专业计算机科学与技术 班级计算机 1001 学号 01 姓名 指导教师李珍辉陈淑红李杰军 2011年 12 月 28 日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题学生成绩管理系统 专业班级计算机1001 学生姓名 学号 01 指导老师李珍辉陈淑红李杰军 审批 任务书下达日期 2011 年 11 月 15 日 任务完成日期 2011 年 12 月 28 日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 1)公司库存管理系统 2)高校学籍管理系统 3)高校工资管理系统 4)高校人事管理系统 5)通讯录程序设计 6)学生成绩管理系统 7) 图书管理系统 8)文本编辑器的设计与实现 9)学生考勤管理系统 10)公司人员管理系统 3.设计要求: ⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相 应题号的课题。随意换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。⑥关键源程序(带注释)

面向对象程序设计期末综合练习一(单选题)

22. 下列的符号常量定义中,错误的定义是()。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 40. 函数重载是指()。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是()。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列()的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值

43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。 A. 内联函数 B.重载函数 C.递归函数 D.函数模板 44. 函数原型语句正确的是()。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a); 45. C++中函数返回值的类型是由()决定的。 A. return语句中表达式的类型 B.该函数定义时的类型 C.调用函数时的调用语句 D.系统根据结果 56. 采用重载函数的目的是()。 A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 58. 以下叙述中正确的是( )。 A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B. 使用const定义的常量,其值在程序运行时是不可改变的 C. 在程序中使用内联函数使程序的可读性变差 D. 在定义函数时可以在形参表的任何位置给出缺省形参值 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。 A. int *p=new a[10]; B. int *p=new float[10];

面向对象程序设计的基本思想

课题:面向对象程序设计的基本思想 (一)教学设计思想与理论依据: 《算法与程序设计》模块的教学强调通过该模块的学习,学生应该体验客 观世界的计算机对象化表征和算法思维,掌握几种基本算法;能运用面向对 象的方法,设计解决简单问题的算法,并能初步使用一种面向对象的程序设 计语言,编制程序实现算法解决该问题。 (二)教学内容分析 教材以广东教育出版社出版的信息技术(选修一)《算法与程序设计》第五章第一节内容为结构框架,本节主要介绍面向对象思想产生的必然性和面向对象思想的机制,以及通过对同一个问题采取面向过程和面向对象两种不同思想解决的区别,让学生感受到面向对象程序设计的优越性。 (三)学生情况分析: 学生已学完教材前四章内容,基本掌握了传统的面向过程结构化程序设计方法,有一定的程序设计基础。 (四)教学策略与模式: 采用讲解、任务驱动、实践和学生自主学习相结合的教学方式 (五)教学资源: 硬件:多媒体电脑教室,投影仪,广播系统 软件:学生机安装vb6.0 (六)教学目标: 知识与技能 1.了解面向对象程序设计的基本思想和面向对象思想的由来,并能够举例说 明现实世界与面向对象系统之间的对应关系。 2.了解面向对象程序设计的优越性并初步理解其实现的机制。 过程与方法 经历分析、调试解决同一问题的两种不同实现思想的程序,初步理解面向对象程序设计的优势及面向过程程序设计的缺陷。 情感态度和价值观 (1)关注传统结构化程序设计存在的问题。 (2)产生学习面向对象程序设计技术的愿望。 (3)关注面向对象技术是当前程序设计的重要发展方向。 (七)重点难点 教学重点 (1)传统结构化程序设计存在的问题 (2)面向对象程序设计所具有的优点。 教学难点 (1)面向对象思想的产生。 (2)传统结构化程序设计与面向对象程序设计的基本点比较。 (3)实现面向对象程序设计的基本机制。 教学过程:

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

面向对象程序设计第12章在线测试

《面向对象程序设计》第12章在线测试剩余时间:59:56 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、面向对象的程序设计语言必须具备的关键要素是( ) A、抽象和封装 B、抽象和多态性 C、抽象、封装、继承和多态性 D、抽象、封装和继承性 2、封装性应具有的条件是() A、有一个清晰的边界 B、有确定的接口 C、受保护的内部实现 D、以上所有 3、OOD的作用是() A、提取需求 B、逻辑建模 C、求解域建模 D、分析用例 4、按钮与电梯按钮的关系是() A、部分与整体 B、一般与特殊 C、实例连接 D、消息连接 5、面向对象模型不包括() A、静态模型 B、对象模型 C、功能模型 D、动态模型 第二题、多项选择题(每题2分,5道题共10分) 1、部分与整体的关系有()方式 A、组合 B、联合 C、聚合 D、整合

2、对象之间存在的关系包括() A、部分与整体 B、一般与特殊 C、实例连接 D、消息连接 3、关于多态的说法正确的是() A、不同类型的对象接收相同的消息产生不同的行为 B、多态的成员函数需要定义为虚函数 C、在C++中通过基类指针调用虚函数实现多态 D、多态是指对象的多种表现形式 4、关于软件生命周期的说法正确的是() A、开发程序就是直接编码 B、在程序设计之前需要先进行软件设计 C、软件投入使用后软件生命周期结束 D、软件维护也是软件生命周期的一个阶段 5、下面关于面向对象的特征说法正确的是() A、每一个对象都具有唯一的标识 B、任何类的划分都是客观的,程序员必须遵守其规定 C、继承性是子类自动共享父类数据结构和方法的机制 D、多态是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的 结果 第三题、判断题(每题1分,5道题共5分) 1、面向对象开发技术分三个阶段:面向对象分析,面向对象设计和面向对象实现。 正确错误 2、面向对象的要素包括抽象、封装。

面向对象程序设计试题

《面向对象程序设计》试题(补考) (闭卷考试) 班级:学号:姓名: 1. 单项选择题(每小题3分,共60分) 1)C++语言对C语言做了很多改进。C++语言相对于C语言的最根本的变化是 ( )。 A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念 2)下列描述中,不属于面向对象思想主要特征的是( )。 A.封装性B.跨平台性 C.继承性D.多态性 3)每个C++程序中都必须有且仅有一个( )。 A. 类 B. 预处理命令 C. 主函数 D. 语句 4)sizeof(float)是( )。 A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用 D. 一个不合法的表达式 5)设有int x=11;,则表达式(x++*2/3)的值是( )。 A. 7 B. 8 C. 11 D. 12 6)在下面的二维数组定义中,正确的是( )。 A. int a[5][]; B. int a[][5]; C. int a[][3]={{1,3,5},{2}}; D. int a[](10);

7)设有程序代码: int k=10; while(k=0) k=k-1; 则下面描述中正确的是( )。 A. 循环执行10次 B. 无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 8)对表达式for(表达式1; ; 表达式3)可理解为( )。 A. for(表达式1; 0; 表达式3) B. for(表达式1; 1; 表达式3) C. for(表达式1 ; 表达式3;) D. for( ; ; 表达式3) 9)下面的哪个选项不能作为函数的返回类型? ( )。 A.void B.int C.new D.long 10)有如下说明: int a[ ]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a; 则下面哪一个表达式的值为9 ( )。 A. *p+9 B. *(p+8) C. (*p += 9) D. p+8 11)有如下函数定义: void func(int a, int &b) {a++; b++;} 若执行代码段: int x=0, y=1; func(x, y); 则变量x和y值分别是( )。 A.0和1 B.1和1 C.0和2 D.1和2 12)下列写法正确的是( )。 A. int *p = 15; B. const int a; a=15; C. int& b; D. int b = 15; int* a = &b; 13)下列选项中,与实现运行时多态性无关的是( )。 A.重载函数B.虚函数C.指针D.引用 14)拷贝构造函数的参数一般是( )。 A. 某对象名 B. 某对象成员名 C. 某对象的引用名 D. 指向对象的指针名 15)对类的构造函数和析构函数描述正确的是( )。 A.构造函数可以重载,析构函数不能重载

面向对象程序设计教程答案

面向对象程序设计教程(C++语言描述)题解与课程设计指导 第1章 面向对象程序设计概论 一、名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 二、填空题 (1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。 (2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。 (5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、选择题(至少选一个,可以多选) (1)面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 (2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。 A. 抽象 B. 继承 C. 封装 D. 多态 (3)在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 (4)面向对象程序设计中,对象与对象之间的通信机制是(C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与C语言的关系的描述中,(D )是错误的。 A. C语言是C++的一个子集 B. C语言与C++是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 【结果分析】 C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。 (6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

面向对象程序设计教程答案

面向对象程序设计教程(C++吾言描述)题解与课程设计指导 面向对象程序设计概论 一、 名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公 共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的 单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对 象要求另一个对象实施某种操作的一个请求。 二、 填空题 ( 1) 目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种 重要的程序设计方法。 (2) 结构化程序设计方法中的模块由顺序、选择和循环 3 种基本结构组成。 ( 3) 在结构化程序设计方法中,程序可表示为程序 =数据结构 +算法; 而面向 对象的程序设计方法,程序可表示为程序 =对象 +消息。 ( 4) 结构化程序设计方法中的基本模块是过程; 而面向对象程序设计方法 中的基本模块是类。 ( 5) 面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、 选择题(至少选一个,可以多选) ( 1) 面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 ( 2) 面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制 叫做( C )。 A. 抽象 B. 继承 C. 封装 D. 多态 ( 3) 在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 ( 4) 面向对象程序设计中,对象与对象之间的通信机制是( C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与 C 语言的关系的描述中,(D )是错误的。 A. C 语言是C++勺一个子集 B. C 语言与C++是兼容的 C. C++对C 语言进行了一些改进 D. C++和C 语言都是面向对象的 【结果分析】 C 语言是面向过程的。C++吾言是一种经过改进的更为优化的 C 语言,是一种混 合型语言,既面向过程也面向对象。 ( 6) 面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依 存、不可分割的整体来处理。 A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象 第1

面向对象程序设计复习题及参考答案

网络教育课程考试复习题及参考答案 面向对象程序设计 一、填空题: 1.创建类的对象时,使用运算符___________给对象分配内存空间。 2.Java通过来区分重载函数。 3.在子类中使用保留字_ _可调用被子类覆盖的父类中的方法。 4.使用保留字可以从一个构造方法中调用同一个类的另一个构造方法。 5.抽象类用修饰符定义。 6.类的数据成员的访问权限修饰符一般为 7.访问权限修饰符按照访问权限的大小从大到小分别为、、 、。 8.定义类的构造方法不能有,其名称与名相同。 9.抽象方法是的特征是。 10.Java中的所有异常都是从继承来的。 11.对象引用中存储的内容是。 12.下列程序段执行后, String str1 = new String("Java"); String str2 = new String("Java"); if (str1.equals(str2)) { System.out.println("They are equal"); } else { System.out.println("They are not equal"); } 输出结果为:。 13.下面循环执行后的sun值为 int count =0, sum = 0; while ( count <10 ) { sum += count; count ++; } 14.Java语言中关键字_ _表示双精度类型。 15.保留字_ _用于导入包中的类到程序中,供程序中使用。 16.Java语言中继承是用保留字表示。 17.面向对象程序设计中,类是指。 18.对象包含和。 19.若有类定义: class B extends A{ … } 则类B是类A的_ 。 20.Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_ 块来捕 获和处理异常。 21.多态是指。 22.声明常量时使用修饰符。 23.Java中异常抛出使用保留字。 24.一个类成员或者方法前面加上了修饰符,那说明该数据成员和方法可以直接通过类名 来访问和调用。

面向对象程序设计完整版

Object- Orien ted Programmi ng C++ 主讲成长生 东华大学计算机科学与技术学院

第一章概述 § 1.1 面向对象程序设计的基本思想 C++是基于C语言发展的,又冲破C语言局限的面向对象的程序设计语言。它与Java 语言都作为当前计算机科学的主流语言, 越来越受到用户的欢迎。 要弄清楚什么是面向对象的程序设计, 首先了解和回顾传统的 ( Pascal(或C))结构化程序设计方法及其设计思想、程序结构及特点。SP(Structure Programming)是60 年代诞生的针对当时爆发的所谓”软件危机” , 为此发展形成了现代软件工程学的基础。 SP的总的设计思想是: . 自顶向下、层次化 . 逐步求精、精细化 程序结构是按功能划分基本模块的树型结构, 使模块间的关系尽可能简单独立。因此SP的程序的基本特点是: . 按层次组织模块(战略上划分战役) . 每一模块只有一个入口, 一个出口 ?代码和数据分离(程序=数据结构+算法) 归纳得到: SP 把数据和过程(代码、函数)分离为相互独立的实体, 用数据代表问题空间中的客体借以表示实际问题中的信 息; 程序代码则用来处理加工这些数据。程序员在编程时 必须时刻考虑所要处理的数据结构和类型。对不同的数据格式即使要作同样

的处理计算, 或者要对相同的数据格式作不同的处理都必须编写不同的程序(如两个整型数和两个浮点数相加)。这样的编程方法,即传统的SP方法设计出来的程序或系统其可重用的成分很少。其次把数据和代码作为不同的分离实体时, 总存在着用错误的数据调用正确的程序模块, 或用正确的数据调用错误的程序模块的危险, 从而使数据与程序始终保持兼容, 已成为程序员 的一个沉重的负担。在开发一个大型软件课题中, 当工程进入到 后期若用户改变了方案要求, 很容易使技术人员的前期工作受到摧毁性的打击,使其前功尽弃。为克服以上的弊端或者该SP方法难以控制处理的矛盾而产生了面向对象程序设计方法, 即Object —Oriented Programming ----------- OOP从二十世纪六十年代提出对象 的雏形, 到七十年代美国国防部的专用语言Ada 语言, 直到当前国际上流行的高品味的Java 和C++(Tc++,Balandc++ 及Vc++), , 应该讲OOP方法与技术吸取了SP的一切优点,同时又正视和顺应现实世界由物质和意识二部分组成。映射到面向对象的解空间就是: 具体事物—对象; 抽象概念—类。 OOP的基本原理是用问题领域的模型来模拟大千世界,从而设计出尽可能直接、自然地表示问题求解方法的软件, 这样的软件由对象组成, 而对象则是完整反映客观世界事物具有不可分割的静态属性(”数据结构” )与动态行为(”方法” )的。而且它们是既有联系又

面向对象程序设计课后答案完整版

第二章2-4 #include using namespace std; Add(int a,int b); int main() { int x,y,sum; cout<<"please input x and y:"; cin>>x>>y; sum = add(x,y); cout < using namespace std; int main() {

int *p,*init; int countp=0; int countn=0; p = new int[20]; init = p; for(int i=0;i<20;i++) { cin>>*p; p++; } p = p-20; for( i=0;i<20;i++) { if(*p>0) countp++; if(*p<0) countn++; cout<<*p<<" "; p++; } cout<<"正数有:"< //#include using namespace std; void checkagescore(string name,int age) { if (name == "exit") throw name; if(age<0||age>50) throw age;

《面向对象程序设计C 》期末试卷及标准答案(A)

一、选择题(每小题2分,共40分) 1、C++是()。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言 2、面向对象程序设计思想的主要特征中不包括()。 A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精 3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入: Microsoft Visual Studio 6.0! 所得的结果是str=()。 A. Microsoft Visual Studio 6.0! B. Microsoft C. Microsoft Visual D. Microsoft Visual Studio 6.0 4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A. testDefaulParam(5); B. testDefaulParam(5,8); C. testDefaulParam(5,'#'); D. testDefaulParam(0,0,'*'); 5、下列语句中,将函数int sum(int x, int y)正确重载的是()。 A. float sum(int x, int y); B. int sum(int a, int b); C. float sum(float x, float y); D. double sum(int y, int x); 6、下列表示引用的方法中,()是正确的。 已知:int a=1000; A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a; 7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。 A. 内联函数 B. 重载函数 C. 递归调用 D. 嵌套调用 8、下列有关C++类的说法中,不正确的是()。 A. 类是一种用户自定义的数据类型 B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员 C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的 D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的 9、已知X类,则当程序执行到语句:X array[3];时,调用了()次构造函数。 A. 0 B. 1 C. 2 D. 3 10、下面说法中,正确的是() A. 一个类只能定义一个构造函数,但可以定义多个析构函数 B. 一个类只能定义一个析构函数,但可以定义多个构造函数 C. 构造函数与析构函数同名,只要名字前加了一个求反符号(~) D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以 11、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。

相关主题
文本预览
相关文档 最新文档