面向对象分析与设计试题A卷.docx
- 文档编号:23297616
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:10
- 大小:134.79KB
面向对象分析与设计试题A卷.docx
《面向对象分析与设计试题A卷.docx》由会员分享,可在线阅读,更多相关《面向对象分析与设计试题A卷.docx(10页珍藏版)》请在冰豆网上搜索。
面向对象分析与设计试题A卷
面向对象分析与设计试题A卷
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分)
1.软件技术的发展经历了多代历程,第()代是80年代开始的以Smalltalk、C++等为代表的面向对象软件开发方法(OO)。
A.一B.二C.三D.四
2.面向对象的运动产生了多种面向对象的语言,其中()是一种混合性面向对象语言,既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A.SmalltalkB.EiffelC.C++D.Java
3.面向对象技术的最重要的基本特征是()。
A.抽象性B.封装性C.多态性D.继承性
4.面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象
5.关于面向对象方法的优点,下列不正确的叙述是()。
A.与人类习惯的思维方法比较一致B.可重用性好
C.以数据操作为中心D.可维护性好
6.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是()。
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念
7.下列符号不能组成标识符的是()。
A.数字字符B.下划线C.大小写字母D.连接符
8.下列不属于类的成员函数的是()。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数
9.继承机制的作用是()。
A.信息隐藏B.数据封装C.派生新类D.数据抽象
10.类模板经过实例化而生成具体()
A.对象B.模板函数
C.函数模板D.类
11.类的析构函数是在()调用的。
A.类创建时B.创建对象时
C.删除对象时D.不自动调用
12.在公有继承的情况下,基类成员在派生类中的访问权限()
A.受限制B.保持不变C.受保护D.不受保护
13..C++语言通过()来建立类族。
A.类的嵌套B.类的继承C.虚函数D.抽象类
14.()是从用户使用系统的角度描述系统功能的图形表达方法。
A.类图B.对象图C.序列图D.用例图
15.()是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图B.组件图C.类图D.配置图
16.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图B.协作图C.状态图D.序列图
17.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A.组件图B.协作图C.状态图D.配置图
18.在用UML进行数据库的分析与设计过程中,()就是进行数据库的需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。
A.逻辑数据模型设计B业务UseCase模型设计
C.物理数据模型设计D.物理实现设计
19.使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
A.业务UseCase模型设计B.逻辑数据模型设计
C.物理数据模型设计C.物理实现设计
20.UML视图有5种,其中()用于描述系统的动态行为,也称动态视图。
A.用户模型视图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();} 四.简答题(每空4分,共20分) 1.简述面向对象技术发展的动因。 2.简述面向对象技术的三大机制。 3.简述面向对象分析的基本步骤。 4.简述OOD模型的总体结构,并画图表示。 5.应用UML进行系统分析和设计所需建立视图有那几种? 五.试用UML对学生选课系统及相关的数据库系统进行分析和设计。 学生选课系统一般包括 (1)选课管理功能; (2)成绩管理功能。 试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2)建立系统动态结构模型—画出系统序列例图和协作图;(10分) (2)建立关系数据库逻辑模型。 (10分) 面向对象分析与设计试题参考答案 一、单项选择题(每小题1分,共20分) 1.C2.C3.D4.C5.C 6.D7.D8.C9.C10.D 11.C12.B13.B14.D15.C 16.D17.D18.B19.B20.C 二、填空题(每空1分,共20分) 1.功能分析,面向过程,对象,面向对象的设计,概念,解空间,封装,继承,多态,软件危机 2.描述对象属性的数据,对这些数据进行的操作行为,类,实例,继承,多态性 3.序列图,状态图,活动图,协作图 三、写出下列程序的输出结果。 MynameisZhang. MynameisWangandmygradeis2. MynameisLiuandIhave5publications. 四.简答题 1.简述面向对象技术发展的动因。 答: 传统的结构化程序设计以算法为核心,把本来密切相关的数据和对数据的操作相分离,很难保持数据和操作的一致性,其软件开发方法不同于人们的自然思维习惯,设计出来的软件系统其解空间与问题空间不一致,致使程序难以理解、修改和扩充,最终导致程序复杂性问题和软件危机。 为了超越程序复杂性障碍,克服软件危机,人们提出了面向对象软件开发方法。 面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。 因此,采用面向对象方法可以更有效地开发大型软件系统。 面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。 因此,它已成为成熟的广为采用的软件开发方法。 2.简述面向对象技术的三大机制。 答: (1)封装性(encapsulation) 所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。 (2)继承性 如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。 前一个类称为父类,新产生的类叫做子类。 通过继承关系可形成一种类层次结构,叫做继承结构。 (3)多态性 在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。 3.简述面向对象分析的基本步骤。 (1)分析问题域,明确用户需求 a.系统问题域说明: 应用系统的业务范围 b.系统边界说明: 确定系统与用户之间接口 c.系统功能说明: 系统需要实现的功能 (2)确定对象和类。 (3)确定各对象类之间的关系,画出类图。 (4)进一步协调和优化各个组成部分(即对象)的性能和相互关系,精炼侯选的类/对象,使系统成为由不同部分组成的最小集合。 (5)分析和设计每个组成部分(即对象)的功能实现细节,检查分析模型的一致性和完整性。 4.简述OOD模型的总体结构,并画图表示。 OOD体系结构的各个部分内容: (1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。 (2)人机交互部分: 设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。 用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分: 建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。 (4)数据管理部分: 提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。 数据管理设计包括: —数据存放设计: 数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。 —设计相应的操作。 为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。 5. (1)系统用例图如下 对象类图如下: (2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表: 学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注) 教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注) 课程(课程号、课程名、描述、学分、学时、性质、备注) 开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 试题