publicPeron{public:
Profeor(char某,intn):
Peron(){publ=n;}voidprint()
{cout<
<
private:
intpubl;};
voidmain(void){Peron某p;Peron某(“Zhang”);Studenty(“Wang”,4,2);Profeorz(“Liu”,5);p=&某;p->print();p=&y;p->print();p=&z;p->print();}
四.简答题(每小题5分,共20分)1.简述面向对象软件开发方法的优点。
(1)把软件系统看成是各种对象的集合,这更接近人的思维
(2)软件需求的变动往往是功能的变动,而功能的执行者一对象一般不会有太大的变化。
这使得按照对象设计出来的系统结构比较稳定
(3)对象包括属性和方法。
对象把属性和方法的具体实现方式一起封装起来,这使得方法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高软件的可维护性。
(4)支持封装,继承,多态,和抽象,提高了软件的可重用性,维护性和可扩展性2.简述面向对象技术的三大机制。
封装、继承、多态3.简述OOA模型的层次结构。
(1)对象-类层:
划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对
象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。
(2)属性层:
定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于
通用类中。
标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。
(3)服务层:
表示对象的服务或行为,即是要定义类上的操作。
(4)结构层:
标识现实世界中对象之间的关系。
当一个对象是另一个对象的一部分时,
用\整体-部分\关系表示;当一个类属于另一个类时,用类之间继承关系表示。
(5)主题层:
可将相关类或对象划分为一个主题。
4.简述OOD模型的总体结构,并画图表示。
(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。
(2)人机交互部分:
设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。
用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。
(3)任务管理部分:
建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。
(4)数据管理部分:
提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。
数据管理设计包括:
—数据存放设计:
数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。
—设计相应的操作。
为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
cla&objectlayer(类及对象层)attributelayer(类及对象层)ervicelayer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务tructlayer(结构层)ubjectlayer(主题层)主题图1.5OOD模型的总体结构五.试用UML对教学管理系统及相关的数据库系统进行分析和设计。
学生选课系统一般包括
(1)选课管理功能;
(2)成绩管理功能。
试完成下列工作:
(1)建立系统静态结构模型—画出系统用例图和类图;(10分)
查询课程信息老师老师查询学生成绩选课注册学生学生查询课程成绩管理老师信息学生成绩管理管理学生信息管理员管理课程信息管理开设课程管理员成绩统计(b)成绩管理的用例图
(a)选课管理的用例图
(2)建立系统动态结构模型—画出系统序列图和协作图;(10分)(3)建立关系数据库逻辑模型。
(10分)
开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)
----------------------------------------------------------------------------------------------------------------------
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分)1.面向对象技术的最重要的基本特征是(D)。
A.抽象性B.封装性C.多态性D.继承性
2.面向对象程序设计将描述事物的数据与(C)封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象3.关于面向对象方法的优点,下列不正确的叙述是(C)。
A.与人类习惯的思维方法比较一致B.可重用性好C.以数据操作为中心D.可维护性好
4.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念5.下列不属于类的成员函数的是(C)。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数6.继承机制的作用是(C)。
A.信息隐藏B.数据封装C.派生新类D.数据抽象7.类模板经过实例化而生成具体(D)
A.对象B.模板函数C.函数模板D.类8.类的析构函数是在(C)调用的。
A.类创建时B.创建对象时C.删除对象时D.不自动调用9.在公有继承的情况下,基类成员在派生类中的访问权限(B)
A.受限制B.保持不变C.受保护D.不受保护10.C++语言通过(B)来建立类族。
A.类的嵌套B.类的继承C.虚函数D.抽象类11.在UML中,有3种基本构造块,分别是(A)
A.事物、关系和图B.注释、关系和图C.事物、关系和结构D.注释、关系和结构
某某12.在UML中,有四种关系,下面哪个不是(B)
A.依赖关系B.继承关系C.泛化关系D.实现关系
13.下面哪个不是UML中的静态视图(A)静态视图(用例图类图对象图组件图配置图)动态视图(序列图协作图状态图活动视图)
A.状态图B.用例图C.对象图D.类图
14.在用例之间,会有三种不同的关系,下列哪个不是他们之间可能的关系(D)A.包含(include)B.扩展(e某tend)C.泛化(generalization)D.关联(connect)
15.下列关于活动图的说法错误的是(D)
A.一张活动图从本质上说是一个流程图,显示从活动到活动的控制流B.活动图用于对业务过程中顺序和并发的工作流程进行建模。
C.活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流。
D.活动图是UML中用于对系统的静态方面建模的五种图中的一种
16.用例(Ue-cae)用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是(B)关系A.扩展(e某tend)B.包含(include)C.分类(claification)D.聚集(aggregation)17.UML中类的有三种,下面哪个不是其中之一(B)
A.实体类B.抽象类C.控制类D.边界类18.阅读图例,判断下列哪个说法是错误的。
(C)
A.读者可以使用系统的还书用例
B.每次执行还书用例都要执行图书查询用例C.每次执行还书用例都要执行交纳罚金用例
D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例19.关于协作图的描述,下列哪个不正确(B)
A.协作图作为一种交互图,强调的是参加交互的对象的组织;B.协作图是顺序图的一种特例
C.协作图中有消息流的顺序号;
D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成;
20.在UML中,(D)把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。
A.组合活动B.同步条C.活动D.泳道
二、填空题(每空1分,共20分)
1.对象是客观实体的抽象表示,是由___数据___和___对数据的操作___两部分组成。
而
_____(类)______是对具有相同属性和行为的一组对象的抽象描述。
因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___实例________。
通过___继承________关系又可形成一种类层次结构。
在类层次结构的不同类中,可用相同的函数名实现功能不同的函数,面向对象技术的这种特性叫做______多态_____。
2.UML从不同的视角为系统架构建模,可产生九种视图:
______用例图__________、____类图_____________、____对象图_____________、_______组件图_________、_____配置图___________、____序列图_____________、________协作图________、___状态图______________、_____活动图____________。
3.____________序列图____是用来反映若干个对象之间动态协作关系的一种交互图。
它主
要反映对象之间已发送消息的先后次序和对象之间的交互过程。
________________是用来描述实现某些服务所涉及的对象及其相互之间的关系(包括消息通信)的动态视图。
建模者可以选择_______协作图_______________________来反映对象之间的协作关系;如果需要强调时间和序列,最好选择____序列图____________;如果需要强调上下文相关,最好选择____________协作图____。
三、写出下列程序的输出结果。
(满分10分)#include#includeclaPeron{public:
Peron(char某){
name=newchar[trlen()+1];trcpy(name,);}
virtualvoidprint()
{cout<
};
claStudent:
publicPeron{public:
Student(char某,floatg):
Peron(){avg=g;}voidprint(char某)
{coutpublicPeron{public:
Profeor(char某,intn):
Peron(){publ=n;}voidprint()
{cout<
<
private:
intpubl;};
voidmain(void){Peron某p;Peron某(“Zhang”);Studenty(“Wang”,4,2);Profeorz(“Liu”,5);p=&某;p->print();p=&y;p->print();p=&z;p->print();}
四.简答题(每小题4分,共20分)1.简述统一建模语言UML的优点。
UML是一种统一的建模语言。
它综合了面向对象领域中多种优秀方法的特点和长处而提出的,消除了过去多种面向对象建模语言在概念上的差异、语义上的混淆和符号表达上的不同,成为了国际统一的建模语言。
(2)UML是一种标准的面向对象建模语言。
它支持面向对象技术的概念,提供了一套标准的模型元素,能简洁明了表达面向对象建模的的各种概念,适合于各种系统的面向对象建模。
因此在软件业界获得了广泛的应用。
(3)UML是一种可视化建模语言,,即UML采用图形方式来描述待开发的软件系统,可以把复杂问题简单化和直观化,帮助软件设计人员理解和认识系统,抓住问题的本质,忽略非本质因素,促进问题的解决。
2.简述面向对象技术的三大机制。
A封装性B继承性C多态性
3.简述面向对象分析的基本步骤。
1分析问题域,明确用户需求2确定对象和类
3确定系统各部分的分类和组成结构
5进一步协调和优化模型中各个组成部分(包括类/对象)的性能和相互关系,精炼侯选的类/对象,使系统成为由不同部分组成的最小集合。
6分析和设计模型中每个组成部分(包括类/对象)的功能实现细节,检查分析模型的一致性和完整性。
4.简述OOD模型的总体结构,并画图表示。
OOD体系结构的各个部分内容:
(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。
(2)人机交互部分:
设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。
用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。
(3)任务管理部分:
建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。
(4)数据管理部分:
提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。
数据管理设计包括:
—数据存放设计:
数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。
—设计相应的操作。
为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
cla&objectlayer(类及对象层)attributelayer(类及对象层)ervicelayer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务tructlayer(结构层)ubjectlayer(主题层)主题图1.5OOD模型的总体结构
5.应用UML进行系统分析和设计所需建立视图有那几种?
---------------------------------------------------------------------------------------------------------------------
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分)
1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A.Simula67语言B.Smalltalk语言C.Java语言D.统一建模语言(UML)的标准2.下列不属于面向对象技术的基本特征的是(B)。
A.封装性B.模块性C.多态性D.继承性
3.面向对象程序设计将描述事物的数据与(C)封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象
4.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念5.下列不属于类的成员函数的是(C)。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数6.继承机制的作用是(C)。
A.信息隐藏B.数据封装C.派生新类D.数据抽象
7.通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定符(C)
A.公有的B.受保护的C.友员的D.私有的8.类模板经过实例化而生成具体(D)
A.对象B.模板函数C.函数模板D.类9.类的构造函数是在(B)调用的。
A.类创建时B.创建对象时C.删除对象时D.不自动调用10在公有继承的情况下,基类成员在派生类中的访问权限(B)
A.受限制B.保持不变C.受保护D.不受保护
11.C++语言通过(B)来建立类族。
A.类的嵌套B.类的继承C.虚函数D.抽象类
12.UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。
其中
(B)是面向对象系统建模中最常用的图,用于说明系统的静态设计视图A.用例图B.类图C.对象图D.序列图13.当需要描述体系结构的静态实施视图时,应该选择(D)。
A.对象图B.组件图C.类图D.配置图
类图。
类图显示了一组类、接口、协作以及它们之间的关系。
在面向对象系统建模中类图是最常用的图,用于说明系统的静态设计视图。
.对象图。
对象图显示了一组对象以及它们之间的关系。
用对象图说明在类图中所发现的事物实例的数据结构和静态快照。
.组件图。
组件图显示了一组构件以及它们之间的关系。
用组件图说明系统的静态实现视图。
.配置图。
配置图显示了一组节点以及它们之间的关系。
用配置图说明体系结构的静态实施视图。
14.用例(Ue-cae)用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关
性的。
在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是(B)关系。
A.扩展(e某tend)B.包含(include)C.分类(claification)D.聚集(aggregation)
15.(C)是描述系统中在某一时刻,一组对象以及它们之间关系的图形,其可以看作是类图在系统某一时刻的实例。
A.组件图B.类图C.对象图D.部署图
16.顺序图是强调消息随时间顺序变化的交互图,下面哪个不是用来描述顺序图的组成部分(A)
A.状态B.生命线C.激活期D.类角色17.下面哪个选项中有不是活动图中的基本元素(D)//没有信号
A.状态、分支B.状态、汇合C.泳道、转移D.信号、转移18.以下是图书管理系统中的相关类,属于边界类的是(B)
A.书类B.借书操作界面类C.书籍管理类D.读者类
19.在用UML进行数据库的分析与设计过程中,(B)就是进行数据库的需求分析,使用用
例图、类图、顺序图、活动图等建立业务模型。
A.逻辑数据模型设计B业务UeCae模型设计C.物理数据模型设计D.物理实现设计
二、填空题(每空1分,共20分)
1.UML中用于描述系统的静态建模的视图称为静态视图,包括__用例图______、___类图______、__对象图_______、____组件图______和___配置图_______。
用于描
述系统的
动态建模的视图称为动态视图,包括_____序列图___、___协作图______、_______活动
图___
和_____状态图_____。
2.对象是客观实体的抽象表示,是由________数据_________________和
______对数据的操作__________________两部分组成。
而____类_是对具有相同属性和行为的一组对象的抽象描述。
因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的__实例____通过___继承_____关系又可形成一种类层次结构。
3.________是美国Rational公司的面向对象建模工具,利用这个工具可以建立用_______描述的________的模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码。
____________的界面分为三个部分——___________窗口、_________窗口和__________窗口。
三、写出下列程序的输出结果。
(满分10分)#include#includeclaBae{protected:
};
claDerived