教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注) 课程(课程号、课程名、描述、学分、学时、性质、备注)
开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)
----------------------------------------------------------------------------------------------------------------------
面向对象分析与设计试题C卷
一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 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.扩展(extend) C.泛化(generalization) D.关联(connect)
15.下列关于活动图的说法错误的是( D )
A. 一张活动图从本质上说是一个流程图,显示从活动到活动的控制流 B. 活动图用于对业务过程中顺序和并发的工作流程进行建模。
C. 活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流。 D. 活动图是UML中用于对系统的静态方面建模的五种图中的一种
16.用例(Use-case)用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是( B )关系 A.扩展(extend) B.包含(include) C.分类(classification) 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
Person(char *s) {
name=new char[strlen(s)+1]; strcpy(name, s); }
virtual void print()
{ cout<<”My name is”< }; class Student:public Person { public: Student(char *s, float g):Person(s) { avg=g; } void print(char *s) { cout< Professor(char *s, int n):Person(s) { publs=n; } void print() { cout<<”My name is”< <<” publication.”< private: int publs; }; void main(void) { Person *p; Person x(“Zhang”); Student y(“Wang”, 4, 2); Professor z(“Liu”, 5); p=&x; 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确定系统各部分的分类和组成结构 4找出并建立每个对象及其相互之间的联系。 5进一步协调和优化模型中各个组成部分(包括类/对象)的性能和相互关系,精炼侯选的类/对象,使系统成为由不同部分组成的最小集合。 6分析和设计模型中每个组成部分(包括类/对象)的功能实现细节,检查分析模型的一致性和完整性。 4. 简述OOD模型的总体结构,并画图表示。 OOD体系结构的各个部分内容: (1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。 (2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。 (4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括: — 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。 — 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。 class & object layer(类及对象层)attribute layer(类及对象层)service layer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务struct layer(结构层)subject layer(主题层)主题图1.5 OOD模型的总体结构class professor:public Person { public: