视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
面向对象分析与设计试题B卷及答案
2025-09-26 21:57:05 责编:小OO
文档
   面向对象分析与设计试题(2011.12)

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号写在答题纸上。每小题 1 分,共 20 分 ) 

1.下列活动中,__C___ 属于面向对象设计阶段。

A.构建用例模型   B.识别分析类 C.用例动态建模   D.绘制组件图

2.面向对象方法认为客观世界是由各种各样的事物或实体组成,每个事物或实体都可用一个___D__来表示。

A. 实例        B. 类         C. 类模板       D. 对象

3. __B___可作为一种用户自定义类型来创建对象。

A. 实体        B. 实例       C. 类         D. 类模板

4. __B___是对象之间的通信机制。

A. 成员函数         B. 消息         C. 参数表    D. 友元函数

5._D_____是实现“一种接口,多种方法” 的机制。

A. 抽象       B. 封装          C. 多态           D. 继承 

6. 下列原则中,__B____不是类的设计应遵循的三条基本原则之一。

A. 封装原则                  B. 开放/封闭原则

C. 最小惊讶原则              D. 单一功能原则

7. 一个类的友元函数可以访问该类中的__B____。

A. 私有成员                   B. 受保护性成员  

C. 公有成员                   D. 所有成员

8. 当要创建对象时,__D____将被调用来为对象做初始化。

A. 静态成员函数     B. 友员函数    C. 构造函数     D.析构函数

9. ___C___是实现“一种接口,多种方法”的技术。

A. 抽象       B. 封装          C. 多态           D. 继承 

10. 如果某基类的一个成员函数被说明为___D___,则该成员函数在派生类中可以有不同的函数实现。

A. 内联函数      B. 静态函数        C. 友元函数   D. 虚函数

11. 在二进制模式下,可利用文件输入/输出流类中定义的__C____函数将所有数据以字符形式存储到文件里。

A. load           B. save            C. write       D. read

12. 基类中的public 成员,通过protected派生,其在派生类中的可见性为 ___D___。 

 A. private        B. 不可访问         C. public     D. protected

13. __D____是数据类型抽象化或参数化的类。

A.抽象类        B.基类            C.组件     D.类模板

14. __D____是UML中用来描述用户对系统的功能需求的有效模型图。

    A.类图         B. 对象图         C. 组件图      D. 用例图  

15. 基于UML的__B____不但能对数据建模,而且能对行为建模。

A.组件图       B. 类图           C. 配置图      D. 序列图

16. 用来描述为完成某项行为操作所涉及的对象和这些对象之间传递消息的时间顺序的UML模型图叫做_D_____。

    A.活动图      B. 协作图         C. 状态图       D. 序列图

17. UML的___C___用于描述系统业务流程,它由一系列的动作状态构成, 动作的状态控制可以从一个状态流向另一个与之相邻的状态。 

 A.状态图      B. 序列图         C. 活动图     D. 协作图

18. UML的__D____是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。

A. 组件图       B.类图        C. 协作图       D. 配置图

19. UML的___D___用于表示系统的软件体系结构。

    A.类图          B. 对象图     C. 组件图       D. 组件图

20. 使用UML进行关系数据库的( C )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

 A. 业务Use Case模型设计                B. 逻辑数据模型设计

C. 物理数据模型设计                      D. 物理实现设计

二、填空题 ( 每空 1 分,共 20 分 )

1. 在面向对象技术中,用_对象_来抽象地表示客观实体,用(类)来抽象描述具有相同属性和行为的对象集合,用_类模板_来抽象地描述一组数据属性相似但某些数据类型不同的类。

2. 基于UML的系统分析的主要目标是为了更精确地理解_需求  _,并获得一个使用_开发人员_的语言描述的、易于维护的且能体现系统基本_结构 _的分析模型。分析模型是由一系列_类 _和_类的实例_及其相互关系构成。分析模型中的类也叫分析类,分析类可分为三类:_(边界类_、 _(实体类 _、_(控制类_。 类与类之间的联系可以分为四种:_(关联_、_(泛化/特化联系_、_(聚合/组合联系_、_( 依赖联系_。

3. 在基于UML的系统设计阶段,应该根据靠近问题域的(逻辑模型_,转化得到靠近解域的(物理模型_;在转化的过程中,对分析阶段的模型进行(扩充_和(细化 _,并用类似于编程实现的语言来描述(物理模型。这个设计模型能够比较容易地被转化成程序代码。这就是系统设计的目的。  

三、试编程实现下列类层次结构以实现对客户数据的管理。 ( 共 20 分 ) 

三、编程序

 #include

using namespace std;

class Customer                                    

{

public:                                            

    char Cust_ID[10];

    char Cust_Name[10];

    char Desc [100];

virtual void Show();

    vitual void Read(); 

};

class Corp_Cust: public Customer

{

public:

    char Off_price[10];            

    char Trust_Level[10];        

    void Show();

    void Read(); 

};

class Vip_Cust: public Customer

{

public:

    char Phone[10];            

    char Vip_Level[10];        

    void Show();

    void Read(); 

};

void Customer::Show()                    //打印出用户输入的信息

{    

cout<<"编号:"<< Cust_ID < cout<<"名字:"<< Cust_Name < cout<<"描述:"<}    

void Customer::Read()                    //提示用户需要输入的信息

cout<<"编号:"< cin>> Cust_ID;

cout<<"名字:"< cin>> Cust_Name;

cout<<"描述:"< cin>> Desc;

}

void Corp_Cust::Show()    

{  Customer::Show();

cout<<"打折价格:"<< Off_Price <cout<<"信任等级:"<< Cust_Name <}

void Corp_Cust::Read()    

{  Customer::read();

cout<<"打折价格:"<cin>> Off_Pricel;

cout<<"信任等级:"<< endl;

cin>>Cust_Name;

}

void Vip_Cust::Show()    

{  Customer::Show();

cout<<"贵宾电话:"<< Phone <cout<<"贵宾等级:"<< Vip_Level <}

void Vip_Cust::Read()    

{  Customer::read();

cout<<"贵宾电话:"<cin>> Off_Pricel;

cout<<"贵宾等级:"<< endl;

cin>> Vip_Level;

}

void main()

{ Corp_Cust C1;

  Vip_Cust: C2;

 C1.Read(); 

C1.Show();

 C2.Read(); 

C2.Show();}

四. 简答题(每小题4分,共 20 分)

1. 为什么面向对象方法能成为软件开发的主流技术?

答:面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。因此,它已成为成熟的广为采用的软件开发方法。

   到20世纪末,面向对象软件工程逐渐发展成熟,特别是统一建模语言(UML)标准的形成和广泛使用,使面向对象软件开发方法已成为软件开发的主流技术。

2. 面向对象技术包含哪些基本机制?

答:(1)封装机制; (2)继承机制; (3)多态机制 

3. 基于UML的面向对象系统开发方法包括哪几步?

基于UML的面向对象系统开发方法也可以分为如下步骤:

(1)系统需求分析—用用户能懂的语言—用例描述用户需求;

(2)系统分析—用开发人员的语言描述用户需求,获得类图和对象图,作为构造系统的分析模型;

(3)系统设计—用编程语言或接近编程语言的语言来更精确地描述类图和对象图,为后面能将类图和对象图映射到编码实现的系统做好准备。

(4)系统实现—用源代码、脚本语言、二进制代码、可执行子程序或组件实现系统。

4. 由基类生成派生类的过程可分为几个步骤?

答:派生类的生成包含三个步骤:

(1)吸收基类成员

 (2)改造基类成员

(3)添加派生类新成员

5. 在于UML的数据库系统分析和设计过程中,逻辑数据模型设计阶段的主要任务是什么?

答:逻辑数据模型设计的主要任务是确定应用系统所需要的持久数据。使用类图、顺序图、活动图、状态图等建立数据库逻辑模型。如果是关系数据库设计,则需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 

五. 分析与设计题 (共20分)

试用UML对库存管理系统及相关的数据库系统进行分析和设计。调查获知库存管理系统的主要用户是入库管理员、出库管理员、库存管理员和系统管理员:入库管理员负责登记、修改和查询入库流水账;出库管理员负责记录、、修改和查询出库流水账;库存管理员负责登记库存台帐、库存信息查询和打印库存报表;系统管理员负责用户信息管理、数据备份和产品基本信息管理。各种账目数据如下所示。

试完成下列工作:

(1)画出库存管理系统各用户的用例图;(5分)

(2)定义库存管理系统的三个基本分析类;(5分)

(3)画出库存管理系统的类图;(5分)

(4)将类图转换为关系数据库模式;(5分)

五. 分析与设计题

(1) 系统用例图如下

(2)三个基本分析类

(3)画出库存管理系统的类图:

(4)把需要持久存储的实体类及其联系,映射成为如下关系数据库模式:

入库账(pcode, unit, number, price, Total, RKDate, RKNo)

出库账(pcode, unit, number, price, Total, CKDate, CKNo)

库存账(pcode, unit, Date, RKNumber, CKNumber, KCNumber)\

入库管理员(RKAID, Name),

出库管理员(CKAID, Name),

库存管理员(KCAID, Name)。下载本文

显示全文
专题