面向对象分析与设计练习题含答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. UML 中用于描述系统的静态建模的视图称为静态视图,包括___用例图___、 ____类图____、___对象图______、__组件图________和_____配置图_____。
三、写出下列程序的输出结果。 ( 满分 10 分 ) #include <iostream.h> #include <string.h> class Person {
2. 对象是客观实体的抽象表示,是由____数据_________和______对数据的操作______ 两部分组成。而 _类___是对具有相同属性和行为的一组对象的抽象描述。因此,它 可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对 象就是类的__实例____。通过___继承__关系又可形成一种类层次结构。
(3)服务层:表示对象的服务或行为,即是要定义类上的操作。 (4)结构层:标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,
用"整体-部分"关系表示;当一个类属于另一个类时,用类之间继承关系 表示。
(5)主题层:可将相关类或对象划分为一个主题。 4. 简述 OOD 模型的总体结构,并画图表示。
5. 关于面向对象方法的优点,下列不正确的叙述是 ( C )。
A. 与人类习惯的思维方法比较一致
B. 可重用性好
C. 以数据操作为中心
D.可维护性好
6.(D )是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图
B. 对象图
C. 序列图
D. 用例图
7. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图
Student(char *s, float g):Person(s) { avg=g; } void print(char *s) { cout<<s<<”My name is “<<name<<”and my grade is”<<avg<<endl; } private: float avg; }; class professor:public Person { public: Professor(char *s, int n):Person(s) { publs=n; } void print() { cout<<”My name is”<<name<<” and I have”<<publs
图1.5 OOD模型的总体结构
主题
五. 试用 UML 对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包 括(1)选课管理功能;(2) 成绩管理功能。试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10 分)
查询课程信息
查询学生成绩
老师
老师
选课注册
查询课程成绩
A. Smalltalk B. Eiffel
C. C++
D. Java
3.下列不属于面向对象技术的基本特征的是( B )。
A. 封装性 B. 模块性 C. 多态性
D. 继承性
4. 面向对象程序设计将描述事物的数据与 ( C ) 封装在一起,作为一个相互依存、不可分割
的整体来处理。
A. 信息
B. 数据隐藏 C. 对数据的操作 D. 数据抽象
明符必须用原型 D. 引进了类和对象的概念
5. 下列不属于类的成员函数的是 (C )。
A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数
面向对象分析与设计试题 B 卷
一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号 填在题干的括号内。每小题 2 分,共 20 分 )
/* 上个世纪 80 年代开始至今还盛行的以 Smalltalk,C++等为代表的面向对象软件开发方法
(00)*/ 1.到 20 世纪末,面向对象软件工程已经逐渐发展成熟,特别是( D )的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据 的访问和管理。数据管理设计包括:
— 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存 放或面向对象的数据库存放)。
— 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在 类和对象的定义中加以描述。
(2) 建立系统动态结构模型—画出系统序列图和协作图;(10 分) (3)建立关系数据库逻辑模型。(10 分)
学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备 注)
教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注) 课程(课程号、课程名、描述、学分、学时、性质、备注) 开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)
C. 物理数据模型设计 D. 物理实现设计
二、填空题 ( 每空 1 分,共 20 分 ) 1. 面向对象开发方法一改过去传统的以____功能分析和供能分解_为基础的____面向 过程_____的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问 题,把系统视为一系列_对象 _的集合,其___面向对象的设计__又将分析的结果映射 到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、 设计者和编程者都可使用相同的__概念___,从而使面向对象的软件开发能比较自然地 模拟客观世界的活动,使问题 _描述空间_与_解空间__在结构上尽可能一致。因此, 采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的___封装___、_ 继承__、_多态___等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现 软件系统的柔性制造,更好地克服_____软件危机__。因此,它已成为成熟的广为采用 的软件开发方法。
统中软件和硬件的物理架构。
A. 组件图(用来反映代码的物理结构) B. 协作图(显示对象和他们之间的关系) C. 状态图(对所描述实物的补充说明,他显示了类的所有对象可能具有的状态) D. 配置图(显示系统中软件和硬件的物理架构)
10. 使用 UML 进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系, 并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务 Use Case 模型设计(一种描述系统功能需求的方法。表示用户使用系统的一种情 况) B. 逻辑数据模型设计
3. 关于面向对象方法的优点,下列不正确的叙述是 ( C)。
A. 与人类习惯的思维方法比较一致
B. 可重用性好
C. 以数据操作为中心
D.可维护性好
4. C++ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是 ( D )。
A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数 C. 规定函数说
问人任数 题机务据 论交管管 域互理理 部部部部 分分分分 class & object layer (类及对象层)
attribute layer (类及对象层)
service layer (服务层)
struct layer (结构层)
类边界 实例边界 实例连接
属性 消息
服务
subject layer (主题层)
学生
学生
管理老师信息 管理学生信息源自学生成绩管理管理员
管理课程信息
管理开设课程
(a)选课管理的用例图
管理员
成绩统计
(b)成绩管理的用例图
教师
编号 姓名 地址 电话
1..*
0..*
开设课程
课程名 授课日期 授课时间 地点
指定老师() 学生满否()
课程
课程名 描述 学时
加入课程()
1..*
0..*
选修课程
填在题干的括号内。每小题 1 分,共 20 分 )
1.面向对象技术的最重要的基本特征是 (D )。
A. 抽象性 B. 封装性
C. 多态性
D. 继承性
2. 面向对象程序设计将描述事物的数据与 ( C) 封装在一起,作为一个相互依存、不可分割
的整体来处理。
A. 信息
B. 数据隐藏 C. 对数据的操作 D. 数据抽象
(1)问题论域部分,在 OOA 模型的基础上,细化分析结果,设计一组构成底层应用模型的类和 对象。 (2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操 作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及 其它与特定平台有关的问题。
public: Person(char *s) { name=new char[strlen(s)+1]; strcpy(name, s); } virtual void print() { cout<<”My name is”<<name<<endl; }
protected:
char *name; }; class Student:public Person { public:
四. 简答题(每小题 5 分,共 20 分) 1. 简述面向对象软件开发方法的优点。
(1)把软件系统看成是各种对象的集合,这更接近人的思维 (2)软件需求的变动往往是功能的变动,而功能的执行者一对象一般不会有太大 的变化。这使得按照对象设计出来的系统结构比较稳定 (3)对象包括属性和方法。对象把属性和方法的具体实现方式一起封装起来,这使得方 法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高软件的可维护性。 (4)支持封装,继承,多态,和抽象,提高了软件的可重用性,维护性和可扩展性 2. 简述面向对象技术的三大机制。
<<” publication.”<<endl; } 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(); }
和其他图的基础。
A.对象图 B. 组件图
C. 类图
D. 配置图
**8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象
之间传递消息的时间顺序。
A.对象图
*B. 协作图
C. 状态图
*D. 序列图
9.(D )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系
封装、继承、多态 3. 简述 OOA 模型的层次结构。
(1)对象-类层: 划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对 象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对 象和类命名。
(2)属性层:定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于 通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的 特殊限制和实例连接关系也应标识出来。
学生
编号 姓名 地址 电话
学生名 课程名 学期
增加记录() 选课统计()
(a)选课对象类图
开设课程
课程名 授课日期 授课时间 地点
指定老师() 学生满否()
学生成绩登记
学生名 学期 课程名 成绩 加入成绩() 打印()
成绩统计
学期 课程名 成绩 按课程统计() 按学生统计() 打印()
(b)成绩管理对象类图
----------------------------------------------------------------------------------------------------------------------
面向对象分析与设计试题 C 卷
一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号
A. Simula67 语言(20 世纪 70 年代的 Simula-67 是第一个面向对象的语言) B. Smalltalk 语言(80 年代初的 Smalltalk 语言) C. Java 语言 (对流行的语言进行面向对象的扩充得到的语言或 C++) D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中( C )是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰 富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
相关文档
最新文档