private:
intpubls;
};
voidmain(void)
{Person*p;
Personx(“Zhang〞);
Studenty(“Wang〞,4,2);
Professorz(“Liu〞,5);
p=&x;p->print();
p=&y;p->print();
p=&z;p->print();}
【运行结果:
MynameisZhang
MynameisWang
MynameisLiuandIhave5publications.
四.简答题〔每题5分,共20分〕
1.简述面向对象软件开发方法的优点。
2.简述面向对象技术的三大机制。
答:
〔1〕封装性(encapsulation)
所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。
〔2〕继承性
如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。
前一个类称为父类,新产生的类叫做子类。
通过继承关系可形成一种类层次构造,叫做继承构造。
〔3〕多态性
在类层次构造的不同类中,可用一样的函数名实现功能不同的函数。
3.简述OOA模型的层次构造。
答:
OOA模型采用五层次构造,它们分别是:
〔1〕对象-类层
划分待开发系统及其环境信息的根本构造单位,标出反映问题域的对象和类,并用符号进展规的描述,用信息提供者熟悉的术语为对象和类命名。
〔2〕属性层
定义对象和某些构造中的数据单元,继承构造中所有类的公共属性可放于通用类中。
标识对象类必需的属性并放在适宜的继承层次上,属性的特殊限制和实例连接关系也应标识出来。
〔3〕效劳层
表示对象的效劳或行为,即是要定义类上的操作。
〔4〕构造层标识现实世界中对象之间的关系。
当一个对象是另一个对象的一局部时,用"整体-局部"关系表示;当一个类属于另一个类时,用类之间继承关系表示。
〔5〕主题层
可将相关类或对象划分为一个主题。
4.简述OOD模型的总体构造,并画图表示。
【4】
答案:
OOD体系构造的各个局部容:
(1)问题论域局部,在OOA模型的根底上,细化分析结果,设计一组构成底层应用模型的类和对象。
〔2〕人机交互局部:
设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。
用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。
〔3〕任务管理局部:
建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。
〔4〕数据管理局部:
提供数据管理系统中存储和检索对象的根本构造,包括对永久性数据的访问和管理。
数据管理设计包括:
—数据存放设计:
数据存放设计选择数据存放的方式〔文件存放、关系数据库表格存放或面向对象的数据库存放〕。
—设计相应的操作。
为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
}
五.试用UML对教学管理系统及相关的数据库系统进展分析和设计。
学生选课系统一般包括
(1)选课管理功能;
(2)成绩管理功能。
试完成以下工作:
〔1〕建立系统静态构造模型—画出系统用例图和类图;〔10分〕
(2)建立系统动态构造模型—画出系统序列图和协作图;〔10分〕
〔3〕建立关系数据库逻辑模型。
〔10分〕
【答案:
(1)系统用例图如下
对象类图如下:
〔2〕把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:
学生〔学生号、、出生日期、性别、籍贯、地址、、入学时间、专业、班级备注〕
教师〔教师号、、出生日期、性别、籍贯、地址、、职称、专长、备注〕
课程〔课程号、课程名、描述、学分、学时、性质、备注〕
开设课程〔课程号、学期、授课日期、授课时间、地点、选修人数、备注〕
】
----------------------------------------------------------------------------------------------------------------------
面向对象分析与设计试题C卷
一、单项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号。
每题1分,共20分)
1.面向对象技术的最重要的根本特征是〔〕。
A.抽象性B.封装性C.多态性D.继承性
2.面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象
3.关于面向对象方法的优点,以下不正确的表达是〔〕。
A.与人类习惯的思维方法比拟一致B.可重用性好
C.以数据操作为中心D.可维护性好
4.C++对C语言作了很多改良,即从面向过程变成为面向对象的主要原因是()。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念
5.以下不属于类的成员函数的是()。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数
6.继承机制的作用是()。
A.信息隐藏B.数据封装C.派生新类D.数据抽象
7.类模板经过实例化而生成具体()
A.对象B.模板函数
C.函数模板D.类
8.类的析构函数是在()调用的。
A.类创立时B.创立对象时
C.删除对象时D.不自动调用
9.在公有继承的情况下,基类成员在派生类中的访问权限()
A.受限制B.保持不变C.受保护D.不受保护
10.C++语言通过()来建立类族。
A.类的嵌套B.类的继承C.虚函数D.抽象类
11.在UML中,有3种根本构造块,分别是〔A〕
A.事物、关系和图 B.注释、关系和图
C.事物、关系和构造 D.注释、关系和构造
12.在UML中,有四种关系,下面哪个不是〔B〕
A.依赖关系 B.继承关系 C.泛化关系D.实现关系
13.下面哪个不是UML中的静态视图〔〕 A.状态图 B.用例图 C.对象图 D.类图
14.在用例之间,会有三种不同的关系,以下哪个不是它们之间可能的关系〔 D 〕
A.包含〔include〕 B.扩展〔extend〕 C.泛化〔generalization〕 D.关联〔connect〕
15.以下关于活动图的说法错误的选项是〔 〕
A.一活动图从本质上说是一个流程图,显示从活动到活动的控制流
B.活动图用于对业务过程中顺序和并发的工作流程进展建模。
C.活动图的根本要素包括状态、转移、分支、分叉和集合、泳道、对象流。
D.活动图是UML中用于对系统的静态方面建模的五种图中的一种
16.用例〔Use-case〕用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统〞中,创立新订单和更新订单都需要检查用户是否正确。
那么,用例“创立新订单〞、“更新订单〞与用例“检查用户〞之间是〔 〕关系
A.扩展〔extend〕 B.包含〔include〕
C.分类〔classification〕 D.聚集〔aggregation〕
17.UML中类的有三种,下面哪个不是其中之一〔〕
A.实体类 B.抽象类 C.控制类 D.边界类
18.阅读图例,判断以下哪个说法是错误的。
〔 〕
A.读者可以使用系统的还书用例 B.每次执行还书用例都要执行图书查询用例 C.每次执行还书用例都要执行交纳罚金用例 D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例
19.关于协作图的描述,以下哪个不正确〔B〕
A.协作图作为一种交互图,强调的是参加交互的对象的组织;
B.协作图是顺序图的一种特例
C.协作图中有消息流的顺序号;
D.在ROSE工具中,协作图可在顺序图的根底上按“F5”键自动生成;
20.在UML中,〔〕把活动图中的活动划分为假设干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。
A.组合活动 B.同步条 C.活动 D.泳道
二、填空题(每空1分,共20分)
1.对象是客观实体的抽象表示,是由___________和___________两局部组成。
而___________是对具有一样属性和行为的一组对象的抽象描述。
因此,它可作为一种用户自定义类型和创立对象的样板,而按照这种样板所创立的一个个具体对象就是类的___________。
通过___________关系又可形成一种类层次构造。
在类层次构造的不同类中,可用一样的函数名实现功能不同的函数,面向对象技术的这种特性叫做___________。
2.UML从不同的视角为系统架构建模,可产生九种视图:
________________、_________________、_________________、
________________、________________、_________________、
________________、_________________、_________________。
3.________________是用来反映假设干个对象之间动态协作关系的一种交互图。
它主要反映对象之间已发送消息的先后次序和对象之间的交互过程。
________________是用来描述实现某些效劳所涉及的对象及其相互之间的关系(包括消息通信)的动态视图。
建模者可以选择______________________________来反映对象之间的协作关系;如果需要强调时间和序列,最好选择________________;如果需要强调上下文相关,最好选择________________。
三、写出以下程序的输出结果。
(总分值10分)
#include
#include
classPerson
{
public:
Person(char*s)
{
name=newchar[strlen(s)+1];
strcpy(name,s);
}
virtualvoidprint()
{cout<<〞Mynameis〞<protected:
char*name;
};
classStudent:
publicPerson
{public:
Student(char*s,floatg):
Person(s){avg=g;}
voidprint(char*s)
{cout<
private:
floatavg;
};
classprofessor:
publicPerson
{public:
Professor(char*s,intn):
Person(s){publs=n;}
voidprint()
{cout<<〞Mynameis〞<<<〞publication.〞<private:
intpubls;
};
voidmain(void)
{Person*p;
Personx(“Zhang〞);
Studenty(“Wang〞,4,2);
Professorz(“Liu〞,5);
p=&x;p->print();
p=&y;p->print();
p=&z;p->print();}
四.简答题〔每题4分,共20分〕
1.简述统模语言UML的优点。
2.简述面向对象技术的三大机制。
3.简述面向对象分析的根本步骤。
4.简述OOD模型的总体构造,并画图表示。
5.应用UML进展系统分析和设计所需建立视图有那几种?
五.试用UML对图书管理系统及相关的数据库系统进展分析和设计。
图书管理系统应实现
(1)借书;
(2)还书;〔3〕图书资料和借阅信息查询;〔4〕系统维护。
试完成以下工作:
〔1〕建立系统静态构造模型—画出系统用例图和类图;〔10分〕
〔2〕建立系统动态构造模型—画出序列例图和协作图;〔10分〕
〔2〕建立关系数据库逻辑模型。
〔10分〕
---------------------------------------------------------------------------------------------------------------------
面向对象分析与设计试题D卷
一、单项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号。
每题1分,共20分)
1.到20世纪末,面向对象软件工程已经逐渐开展成熟,特别是〔〕的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A.Simula67语言B.Smalltalk语言
C.Java语言D.统模语言(UML)的标准
2.以下不属于面向对象技术的根本特征的是〔〕。
A.封装性B.模块性C.多态性D.继承性
3.面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象
4.C++对C语言作了很多改良,即从面向过程变成为面向对象的主要原因是()。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念
5.以下不属于类的成员函数的是()。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数
6.继承机制的作用是()。
A.信息隐藏B.数据封装C.派生新类D.数据抽象
7.通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定符()
A.公有的B.受保护的C.友员的D.私有的
8.类模板经过实例化而生成具体()
A.对象B.模板函数C.函数模板D.类
9.类的构造函数是在()调用的。
A.类创立时B.创立对象时
C.删除对象时D.不自动调用
10在公有继承的情况下,基类成员在派生类中的访问权限()
A.受限制B.保持不变C.受保护D.不受保护
11.C++语言通过()来建立类族。
A.类的嵌套B.类的继承C.虚函数D.抽象类
12.UML提供了4种构造图用于对系统的静态方面进展可视化、详述、构造和文档化。
其中〔 〕是面向对象系统建模中最常用的图,用于说明系统的静态设计视图
A.用例图B.类图C.对象图D.序列图
13.当需要描述体系构造的静态实施视图时,应该选择〔 〕。
A.对象图B.组件图C.类图D.配置图
14.用例〔Use-case〕用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统〞中,创立新订单和更新订单都需要检查用户是否正确。
那么,用例“创立新订单〞、“更新订单〞与用例“检查用户〞之间是〔 〕关系。
A.扩展〔extend〕 B.包含〔include〕
C.分类〔classification〕 D.聚集〔aggregation〕
15.〔 〕是描述系统中在某一时刻,一组对象以及它们之间关系的图形,其可以看作是类图在系统某一时刻的实例。
A.组件图 B.类图 C.对象图 D.部署图
16.顺序图是强调消息随时间顺序变化的交互图,下面哪个不是用来描述顺序图的组成局部〔 〕
A.状态 B.生命线 C.激活期 D.类角色
17.下面哪个选项中有不是活动图中的根本元素()
A.状态、分支B.状态、集合
C.泳道、转移D.信号、转移
18.以下是图书管理系统中的相关类,属于边界类的是()
A.书类B.借书操作界面类C.书籍管理类D.读者类
19.在用UML进展数据库的分析与设计过程中,()就是进展数据库的需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。
A.逻辑数据模型设计B业务UseCase模型设计
C.物理数据模型设计D.物理实现设计
20.使用UML进展关系数据库的〔〕时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表〔Table)、视图(View)等。
A.业务UseCase模型设计B.逻辑数据模型设计
C.物理数据模型设计C.物理实现设计
二、填空题(每空1分,共20分)
1.UML中用于描述系统的静态建模的视图称为静态视图,包括________、
____