面向对象分析与设计练习题含答案资料.docx
- 文档编号:2009609
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:36
- 大小:81.83KB
面向对象分析与设计练习题含答案资料.docx
《面向对象分析与设计练习题含答案资料.docx》由会员分享,可在线阅读,更多相关《面向对象分析与设计练习题含答案资料.docx(36页珍藏版)》请在冰点文库上搜索。
面向对象分析与设计练习题含答案资料
面向对象分析与设计试题B卷
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2分,共20分)
/*上个世纪80年代开始至今还盛行的以Smalltalk,C++等为代表的面向对象软件开发方法(00)*/
1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的
形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A.Simula67语言(20世纪70年代的Simula-67是第一个面向对象的语言)
B.Smalltalk语言(80年代初的Smalltalk语言)
C.Java语言(对流行的语言进行面向对象的扩充得到的语言或C++)
D.统一建模语言(UML)的标准
2.面向对象的运动产生了多种面向对象的语言,其中(C)是一种混合性面向对象语言,既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A.SmalltalkB.EiffelC.C++D.Java
3.下列不属于面向对象技术的基本特征的是(B)。
A.封装性B.模块性C.多态性D.继承性
4.面向对象程序设计将描述事物的数据与(C)封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象
5.关于面向对象方法的优点,下列不正确的叙述是(C)。
A.与人类习惯的思维方法比较一致B.可重用性好
C.以数据操作为中心D.可维护性好
6.(D)是从用户使用系统的角度描述系统功能的图形表达方法。
A.类图B.对象图C.序列图D.用例图
7.(C)是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图B.组件图C.类图D.配置图
**8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图*B.协作图C.状态图*D.序列图
9.(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A.组件图(用来反映代码的物理结构)
B.协作图(显示对象和他们之间的关系)
C.状态图(对所描述实物的补充说明,他显示了类的所有对象可能具有的状态)
D.配置图(显示系统中软件和硬件的物理架构)
10.使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
A.业务UseCase模型设计(一种描述系统功能需求的方法。
表示用户使用系统的一种情况)
B.逻辑数据模型设计
C.物理数据模型设计
D.物理实现设计
二、填空题(每空1分,共20分)
1.面向对象开发方法一改过去传统的以____功能分析和供能分解_为基础的____面向过程_____的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_对象_的集合,其___面向对象的设计__又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的__概念___,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题_描述空间_与_解空间__在结构上尽可能一致。
因此,采用面向对象方法可以更有效地开发大型软件系统。
面向对象方法的___封装___、_继承__、_多态___等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服_____软件危机__。
因此,它已成为成熟的广为采用的软件开发方法。
2.对象是客观实体的抽象表示,是由____数据_________和______对数据的操作______两部分组成。
而_类___是对具有相同属性和行为的一组对象的抽象描述。
因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的__实例____。
通过___继承__关系又可形成一种类层次结构。
3.UML中用于描述系统的静态建模的视图称为静态视图,包括___用例图___、
____类图____、___对象图______、__组件图________和_____配置图_____。
三、写出下列程序的输出结果。
(满分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();} 四.简答题(每小题5分,共20分) 1.简述面向对象软件开发方法的优点。 (1)把软件系统看成是各种对象的集合,这更接近人的思维 (2)软件需求的变动往往是功能的变动,而功能的执行者一对象一般不会有太大 的变化。 这使得按照对象设计出来的系统结构比较稳定 (3)对象包括属性和方法。 对象把属性和方法的具体实现方式一起封装起来,这使得方法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高软件的可维护性。 (4)支持封装,继承,多态,和抽象,提高了软件的可重用性,维护性和可扩展性 2.简述面向对象技术的三大机制。 封装、继承、多态 3.简述OOA模型的层次结构。 (1)对象-类层: 划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。 (2)属性层: 定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。 标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。 (3)服务层: 表示对象的服务或行为,即是要定义类上的操作。 (4)结构层: 标识现实世界中对象之间的关系。 当一个对象是另一个对象的一部分时,用"整体-部分"关系表示;当一个类属于另一个类时,用类之间继承关系表示。 (5)主题层: 可将相关类或对象划分为一个主题。 4.简述OOD模型的总体结构,并画图表示。 (1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。 (2)人机交互部分: 设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。 用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分: 建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。 (4)数据管理部分: 提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。 数据管理设计包括: —数据存放设计: 数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。 —设计相应的操作。 为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。 五.试用UML对教学管理系统及相关的数据库系统进行分析和设计。 学生选课系统一般包括 (1)选课管理功能; (2)成绩管理功能。 试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2)建立系统动态结构模型—画出系统序列图和协作图;(10分) (3)建立关系数据库逻辑模型。 (10分) 学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注) 教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注) 课程(课程号、课程名、描述、学分、学时、性质、备注) 开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注) ---------------------------------------------------------------------------------------------------------------------- 面向对象分析与设计试题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 #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的优点。 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)数据管理部分: 提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。 数据管理设计包括: —数据存放设计: 数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。 —设计相应的操作。 为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。 5.应用UML进行系统分析和设计所需建立视图有那几种? 五.试用UML对图书管理系统及相关的数据库系统进行分析和设计。 图书管理系统应实现 (1)借书; (2)还书;(3)图书资料和借阅信息查询;(4)系统维护。 试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2)建立系统动态结构模型—画出序列例图和协作图;(10分) (2)建立关系数据库逻辑模型。 (10分) --------------------------------------------------------------------------------------------------------------------- 面向对象分析与设计试题D卷 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。 每小题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.创建对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 练习题 答案 资料