200811软设下午真题

第 1 题

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 
【说明】 
希赛公司拟开发一个销售管理系统,其主要功能描述如下: 
1.接受客户订单,检查库存货物是否满足订单要求。如果满足,进行供货处理:即修改库存记录文件,给库房开具备货单并且保留客户订单至订单记录文件;否则进行缺货处理:将缺货订单录入缺货记录文件。 
2.根据缺货记录文件进行缺货统计,将缺货通知单发给采购部门。 
3.根据采购部门提供的进货通知单进行进货处理:即修改库存记录文件,并从缺货记录文件中取出缺货订单进行供货处理。 
4.根据保留的客户订单进行销售统计,打印统计报表给经理。 
  现采用结构化方法对销售管理系统进行分析与设计,获得如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。

【问题1】(4 分) 
使用说明中的词语,给出图1-1的外部实体E1~E4的名称。 
【问题2】(3 分) 
使用说明中的词语,给出图1-2的数据存储D1~D3的名称。 
【问题3】(8 分) 
数据流图1-2缺少了四条数据流,根据说明及数据流图1-1提供的信息,分别指出这四条数据流的起点和终点。 

 

答案与解析

  • 试题难度:较难
  • 知识点:
  • 试题答案:

    【问题1】(4分,各1分)  
    E1:客户 E2:采购部门 E3:库房 E4:经理
    【问题2】(3分,各1分)
    D1:缺货记录文件 D2:库存记录文件 D3:订单记录文件
    【问题3】(8分,每条数据流2分)
      
      (注:数据流之间没有顺序关系;每条数据流的起点和终点全部答对可给分)

  • 试题解析:

    【问题1】(4分,各1分)  
    E1:客户 E2:采购部门 E3:库房 E4:经理
    【问题2】(3分,各1分)
    D1:缺货记录文件 D2:库存记录文件 D3:订单记录文件
    【问题3】(8分,每条数据流2分)
      
      (注:数据流之间没有顺序关系;每条数据流的起点和终点全部答对可给分)

第 2 题

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。 
【说明】
希赛公司拟开发一个宾馆客房预订子系统,主要是针对客房的预订和入住等情况进行管理。 
【需求分析结果】 
1.员工信息主要包括:员工号、姓名、出生年月、性别、部门、岗位、住址、联系电话和密码等信息。岗位有管理和服务两种。岗位为“管理”的员工可以更改(添加、删除和修改)员工表中的本部门员工的岗位和密码,要求将每一次更改前的信息保留;岗位为“服务”的员工只能修改员工表中本人的密码,且负责多个客房的清理等工作。 
2.部门信息主要包括:部门号、部门名称、部门负责人、电话等信息;一个员工只能属于一个部门,一个部门只有一位负责人。 
3.客房信息包括:客房号、类型、价格、状态等信息。其中类型是指单人间、三人间、普通标准间、豪华标准间等;状态是指空闲、入住和维修。   
4.客户信息包括:身份证号、姓名、性别、单位和联系电话。 
5.客房预定情况包括:客房号、预定日期、预定入住日期、预定入住天数、身份证号等信息。一条预定信息必须且仅对应一位客户,但一位客户可以有多条预定信息。 
【概念模型设计】 
根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示:


【逻辑结构设计】 
逻辑结构设计阶段设计的部分关系模式(不完整)如下: 
员工(   (4)  ,姓名,出生年月,性别,岗位,住址,联系电话,密码) 
权限(岗位,操作权限) 
部门(部门号,部门名称,部门负责人,电话) 
客房(   (5)  ,类型,价格,状态,入住日期,入住时间,员工号) 
客户(   (6)  ,姓名,性别,单位,联系电话) 
更改权限(员工号,(7) ,密码,更改日期,更改时间,管理员号) 
预定情况(  (8)  ,预定日期,预定入住日期,预定入住天数)

【问题1】(3 分) 
根据问题描述,填写图2-1中(1)~(3)处联系的类型。联系类型分为一对一、一对多和多对多三种,分别使用1 : 1,1 : n 或  1 : *,m : n 或  * : *表示。 
【问题2】(2 分) 
补充图2-1中的联系并指明其联系类型。 
【问题3】(7 分) 
根据需求分析结果和图2-1,将逻辑结构设计阶段生成的关系模式中的空(4)~(8)补充完整。(注:一个空可能需要填多个属性) 
【问题4】(3 分) 
若去掉权限表,并将权限表中的操作权限属性放在员工表中(仍保持管理和服务岗位的操作权限规定),则与原有设计相比有什么优缺点(请从数据库设计的角度进行说明)?  

答案与解析

  • 试题难度:较难
  • 知识点:
  • 试题答案:

    【问题1】(3分,各1分)  
    (1)n,或m,或* (2)n,或m,或* (3)n,或m,或*
    【问题2】(2分)
    需要增加员工和权限之间的m:1的联系(联系1分,联系类型1分,共2分)。
      或者
     

    注:若考生解答中增加了服务员与客户之间的联系,则不扣分。
    【问题3】(7分)
    (4)员工号,部门号 (2分)
    (5)客房号 (1分)
    (6)身份证号 (1分)
    (7)岗位 (1分)
    (8)客房号,身份证号 (2分)
    【问题4】(3分)
    若将权限表中的操作权限属性放在员工表中,则相同岗位的操作权限在员工表中重复存储(1.5分),存在数据冗余(1.5分)。

  • 试题解析:

    【问题1】(3分,各1分)  
    (1)n,或m,或* (2)n,或m,或* (3)n,或m,或*
    【问题2】(2分)
    需要增加员工和权限之间的m:1的联系(联系1分,联系类型1分,共2分)。
      或者
     

    注:若考生解答中增加了服务员与客户之间的联系,则不扣分。
    【问题3】(7分)
    (4)员工号,部门号 (2分)
    (5)客房号 (1分)
    (6)身份证号 (1分)
    (7)岗位 (1分)
    (8)客房号,身份证号 (2分)
    【问题4】(3分)
    若将权限表中的操作权限属性放在员工表中,则相同岗位的操作权限在员工表中重复存储(1.5分),存在数据冗余(1.5分)。

第 3 题

()(共15 分) 
  阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。 
【说明】 
  在线会议审稿系统(ORS:Online Reviewing  System)主要处理会议前期的投稿和审稿事务,其功能描述如下: 
  1. 用户在初始使用系统时,必须在系统中注册(register)成为作者或审稿人。 
  2. 作者登录(login)后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要、选择稿件所属主题类型、选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。 
  3. 审稿人登录后可设置兴趣领域、审阅稿件给出意见以及罗列录用和(或)拒绝的稿件。 
  4. 会议委员会主席是一个特殊审稿人,可以浏览提交的稿件、给审稿人分配稿件、罗列录用和(或)拒绝的稿件以及关闭审稿过程。其中关闭审稿过程须包括罗列录用和(或)拒绝的稿件。 
  系统采用面向对象方法开发,使用 UML 进行建模。在建模用例图时,常用的方式是先识别参与者, 然后确定参与者如何使用系统来确定用例,每个用例可以构造一个活动图。参与者名称、用例和活动名称分别参见表3-1、表3-2和表3-3。系统的部分用例图和提交稿件的活动图分别如图3-1和图3-2所示。 

【问题1】(4 分)

  根据【说明】中的描述,使用表3-1中的英文名称,给出图3-1中A1~A4所对应的参与者。 
【问题2】(3 分)   
  根据【说明】中的描述,使用表3-2中的英文名称,给出图3-1中U1~U3所对应的用例。 
【问题3】(4 分)
  根据【说明】中的描述,给出图3-1中(1)和(2)所对应的关系。 
【问题4】(4 分)  
  根据【说明】中的描述,使用表3-2和表3-3中的英文名称,给出图3-2中Action1~Action4对应的活动。  

 

答案与解析

  • 试题难度:较难
  • 知识点:
  • 试题答案:

    【问题1】(4分,各1分)  A1:User A2:Author A3:Reviewer A4:PCChair

    【问题2】(3分,各1分)
      U1:list accepted/rejected papers U2:browse submitted papers
      U3:assign paper to reviewer
      注:U2和U3的答案可互换
    【问题3】(4分,各2分)
      (1):<<extend>> (2):<<include>>
    【问题4】(4分,各1分)
      Action1:enter title and abstract
      Action2:select subject group
      Action3:select paper location
      Action4:upload paper

     

  • 试题解析:

    【问题1】(4分,各1分)  A1:User A2:Author A3:Reviewer A4:PCChair

    【问题2】(3分,各1分)
      U1:list accepted/rejected papers U2:browse submitted papers
      U3:assign paper to reviewer
      注:U2和U3的答案可互换
    【问题3】(4分,各2分)
      (1):<<extend>> (2):<<include>>
    【问题4】(4分,各1分)
      Action1:enter title and abstract
      Action2:select subject group
      Action3:select paper location
      Action4:upload paper

     

第 4 题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 
【说明】 
  希赛公司供应各种标准的营养套餐。假设菜单上共有n项食物m1,m2,…,mn,每项食物mi的营养价值为vi,价格为pi,其中i=1,2,…,n,套餐中每项食物至多出现一次。客人常需要一个算法来求解总价格不超过M的营养价值最大的套餐。 

【问题1】(9 分)  
  下面是用动态规划策略求解该问题的伪代码,请填充其中的空缺(1)、(2)和(3)处。 
  伪代码中的主要变量说明如下: 
  n: 总的食物项数; 
  v: 营养价值数组,下标从1到n,对应第1到第n项食物的营养价值; 
  p: 价格数组,下标从1到n,对应第1到第n项食物的价格; 
  M:总价格标准,即套餐的价格不超过M; 
  x: 解向量(数组),下标从1到n,其元素值为0或1,其中元素值为0表示对应的食物不出现在套餐中,元素值为1表示对应的食物出现在套餐中;
  nv:n+1行M+1列的二维数组,其中行和列的下标均从0开始,nv[i][j]表示由前i项食物组合且价格不超过 j 的套餐的最大营养价值。问题最终要求的套餐的最大营养价值为nv[n][M]。 
  伪代码如下: 
   
【问题2】(4 分)  
  现有5项食物,每项食物的营养价值和价格如表4-1所示。 

 
  若要求总价格不超过100的营养价值最大的套餐,则套餐应包含的食物有(4)(用食物项的编码表示),对应的最大营养价值为 (5)。 
 【问题3】(2 分)  
  【问题1】中伪代码的时间复杂度为(6)(用Ο符号表示)。  
  从下列的3道试题(试题五至试题七)中任选1道解答。
  如果解答的试题数超过1道,则题号小的1道解答有效。

答案与解析

  • 试题难度:较难
  • 知识点:
  • 试题答案:

     

    【问题1】(共9分,各3分)  
           (1)nv[i-1][j]≥nv[i-1][j-p[i]]+v[i]
      (2)nv[i][j]=nv[i-1][j]
      (3)j=j-p[i]
    【问题2】(共4分,各2分)
      (4)m2,m3,m4(注:答案中食物编码无前后顺序关系)
      (5)605
    【问题3】(共2分)
      (6)O(nM),或O(n×M),或O(n*M)

     

  • 试题解析:

     

    【问题1】(共9分,各3分)  
           (1)nv[i-1][j]≥nv[i-1][j-p[i]]+v[i]
      (2)nv[i][j]=nv[i-1][j]
      (3)j=j-p[i]
    【问题2】(共4分,各2分)
      (4)m2,m3,m4(注:答案中食物编码无前后顺序关系)
      (5)605
    【问题3】(共2分)
      (6)O(nM),或O(n×M),或O(n*M)

     

第 5 题

阅读下列说明和C函数,将应填入(n)处的字句写在答题纸的对应栏内。 
【说明】 
  已知集合A和B的元素分别用不含头结点的单链表存储,函数Difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},如图5-1(a)所示,运算完成后的结果如图5-1(b)所示。  


  链表结点的结构类型定义如下: 
  typedef struct Node{ 
      ElemType elem; 
  struct Node *next; 
  }NodeType; 
 

 【C 函数】 

  

答案与解析

  • 试题难度:较难
  • 知识点:
  • 试题答案:

        (1)pa=*LA (2分)
        (2)pb&&pb->elem!=pa->elem,或其等价表示 (3分)
        (3)pb (2分)
        (4)pa->next,或(*pa).next,或其等价表示 (3分)
         若考生解答为*pa.next,则给2分
        (5)pre->next,或(*pre).next,或其等价表示 (2分)
        若考生解答为*pre.next,则给1分
        (6)pre=pa (3分)

  • 试题解析:

        (1)pa=*LA (2分)
        (2)pb&&pb->elem!=pa->elem,或其等价表示 (3分)
        (3)pb (2分)
        (4)pa->next,或(*pa).next,或其等价表示 (3分)
         若考生解答为*pa.next,则给2分
        (5)pre->next,或(*pre).next,或其等价表示 (2分)
        若考生解答为*pre.next,则给1分
        (6)pre=pa (3分)

第 6 题

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 
【说明】  
  已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如图6-1所示,其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。 

 
  当开发一个具体的应用程序时,开发者需要分别创建自己的 Application 和 Document子类,例如图6-1中的类 MyApplication 和类 MyDocument,并分别实现 Application 和Document类中的某些方法。 
  已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示: 
  1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回; 
  2.创建文档对象; 
  3.通过文档对象打开文档; 
  4.通过文档对象读取文档信息; 
  5.将文档对象加入到Application的文档对象集合中。 
 

()(共15分) 
  阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 
【说明】  
  已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如图6-1所示,其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。 

 
  当开发一个具体的应用程序时,开发者需要分别创建自己的 Application 和 Document子类,例如图6-1中的类 MyApplication 和类 MyDocument,并分别实现 Application 和Document类中的某些方法。 
  已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示: 
  1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回; 
  2.创建文档对象; 
  3.通过文档对象打开文档; 
  4.通过文档对象读取文档信息; 
  5.将文档对象加入到Application的文档对象集合中。 
 【C++代码】  
  

答案与解析

  • 试题难度:较难
  • 知识点:
  • 试题答案:

        (1)Document* (2分)
        (2)aDocument (1分)
        (3)!canOpenDocument(docName) (2分)
        (4)Document* (2分)
        (5)doCreateDocument() (2分)
        (6)adoc->open(docName) (2分)
        (7)adoc->read(docName) (2分)
        (8)addDocument(adoc) (2分)

  • 试题解析:

        (1)Document* (2分)
        (2)aDocument (1分)
        (3)!canOpenDocument(docName) (2分)
        (4)Document* (2分)
        (5)doCreateDocument() (2分)
        (6)adoc->open(docName) (2分)
        (7)adoc->read(docName) (2分)
        (8)addDocument(adoc) (2分)

第 7 题

下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 
【说明】  
  已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如图7-1所示,其中,Application 类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。 
 


  当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如图7-1中的类MyApplication和类MyDocument,并分别实现Application和Document类中的某些方法。 
  已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示: 
  1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回; 
  2.创建文档对象; 
  3.通过文档对象打开文档; 
  4.通过文档对象读取文档信息; 
  5.将文档对象加入到Application的文档对象集合中。 
 

【Java 代码】  

  

答案与解析

  • 试题难度:较难
  • 知识点:
  • 试题答案:

        (1)Document (2分)
        (2)aDocument (1分)
        (3)!canOpenDocument(docName) (2分)
        (4)Document (2分)
        (5)doCreateDocument() (2分)
        (6)adoc.open(docName) (2分)
        (7)adoc.read(docName) (2分)
        (8)addDocument(adoc) (2分)

  • 试题解析:

        (1)Document (2分)
        (2)aDocument (1分)
        (3)!canOpenDocument(docName) (2分)
        (4)Document (2分)
        (5)doCreateDocument() (2分)
        (6)adoc.open(docName) (2分)
        (7)adoc.read(docName) (2分)
        (8)addDocument(adoc) (2分)

results matching ""

    No results matching ""