20XX年下半年软件设计师考试下午真题(参考答案)
试题部分
1.
阅读下列说明,回答问题 1至问题4,将解答填入答题纸的对应栏内。
【说明】
某证券交易所为了方便提供证券交易服务,    欲开发一证券交易平台,该平台的主要功能如下:
1) 开户。根据客户服务助理提交的开户信息,    进行开户,并将客户信息存入客户记录中, 账户信息(余额等)存入账户记录中;
2)    存款。客户可以向其账户中存款,根据存款金额修改账户余额;
3)    取款。客户可以从其账户中取款,根据取款金额修改账户余额;
4) 证券交易。客户和经纪人均可以进行证券交易    (客户通过在线方式,经纪人通过电话), 将交易信息存入交易记录中;
5 )检查交易。平台从交易记录中读取交易信息,将交易明细返回给客户。
现采用结构化方法对该证券交易平台进行分析与设计,    获得如图1-1所示的上下文数据流图
和图1-2所示的0层数据流图。
^1-1上下文数据流图
^1-2 0层数据流圉
【问题1】(3分)
1-1中的实体E1-E3的名称。
使用说明中的词语,给出图
【问题213分)
1-2中的数据存储 D1-D3的名称。
使用说明中的词语,给出图
【问题31 4分)
根据说明和图中的术语,补充图    1-2中缺失的数据流及其起点和终点。
【问题41 5分)
实际的证券交易通常是在证券交易中心完成的,因此,该平台的“证券交易”    功能需将交易
信息传递给证券交易中心。针对这个功能需求,需要对图    1-1和图1-2进行哪些修改,请用
200字以内的文字加以说明。
2.
阅读下列说明,回答问题 1至问题3,将解答填入答题纸的对应栏内。
【说明1
某宾馆为了有效地管理客房资源,    满足不同客户需求,拟构建一套宾馆信息管理系统,    以方
便宾馆管理及客房预订等业务活动。
【需求分析结果1
该系统的部分功能及初步需求分析的结果如下:
1)    宾馆有多个部门,部门信息包括部门号、部门名称、电话、经理。每个部门可以有
多 名员工,每名员工只属于一个部门;每个部门只有一名经理,负责管理本部门。
2)    员工信息包括员工号、姓名、岗位、电话、工资,其中,员工号唯一标识员工关系中
的一个元组,岗位有经理、业务员。
3)    客房信息包括客房号(如 13011302等)、客房类型、收费标准、入住状态(已入住 /未入住),其中客房号唯一标识客房关系中的一个元组,不同客房类型具有不同的收费标
准。
4)    客户信息包括客户号、单位名称、联系人、、联系地址,其中客户号唯一标 识客户关系中的一个元组。
5) 客户预订客房时,需要填写预订申请。 预订申请信息包括申请号、    客户号、入住时间、 入住天数、客房类型、客房数量,其中,一个申请号唯一标识预订申请中的一个元组;一位
客户可以有多个预订申请,但一个预订申请对应唯一的一位客户。
6)    当客户入住时,业务员根据客户的预订申请负责安排入住客房事宜。安排信息包括客 房号、姓名、性别、身份证号、入住时间、天数、电话,其中客房号、身份证号和入住时间 唯一标识一次安排。一名业务员可以安排多个预订申请,一个预订申请只由一名业务员安排, 而且可安排多间同类型的客房。
[经理1
1郃门
客户
员工
1客房
2-1所示。
【概念模型设计】 根据需求阶段收集的信息,设计的实体联系图如图
预订申请 阅读下列说明,回答问题 1至问题3,将解答填入答题纸的对应栏内。
3.
【说明】
某种出售罐装饮料的自动售货机.    (Ven di ng Machi ne )的工作过程描述如下:
(1)顾客选择所需购买的饮料及数量。
(2) 顾客从投币口向自动售货机中投入硬币    (该自动售货机只接收硬币)。硬币器收集 投入的硬币并计算其对应的价值。如果所投入的硬币足够购买所需数量的这种饮料且饮料数 量足够,则推出饮料,计算零,顾客取走饮料和回的硬币;如果投入的硬币不够或者所 选购的饮料数量不足,则提示用户继续投入硬币或重新选择饮料及数量。
(3) 一次购买结束之后,将硬币器中的硬币移走(清空硬币器)    ,等待下一次交易。自 动售货机还设有一个退币按钮, 用于退还顾客所投入的硬币。已经成功购买饮料的钱是不会 被退回的。
图用例S
图3-2状态图
顾害
C1
C3
C5
交易时间字符串是什么
C3
®3-3类图
4.
将解答写在答题纸的对应栏内。
阅读下列说明和 C代码,回答问题1至问题3,
【说明1
模式匹配是指给定主串    t和子串S,在主串t中寻子串s的过程,其中s称为模式。如
果匹配成功,返回    St中的位置,否则返回-1
KMP算法用next数组对匹配过程进行了优化。    KMP算法的伪代码描述如下:
1.在串t和串s中,分别设比较的起始下标    i=j=0
2•如果串t和串s都还有字符,则循环执行下列操作:
ts的下一个字符;
1)    如果j=-l或者t[i]=s[j],则将ij分别加1,继续比较
(从1开始);否则返回-1 get_next函数给出。
2) 否则,将j向右滑动到next[j]的位置,即j =next[j]
3•如果s中所有字符均已比较完毕,    则返回匹配的起始位置
其中,next数组根据子串s求解。求解next数组的代码已由
C代码1
(1 )常量和变量说明
t, S:长度为悯铂Is的字符串
next:next数组,长度为Is
(2) C程序 #i nclude <stdio.h>
#in elude <stdlib.h> #in elude <stri ng.h> /* next[]的值 */
void get_ next( int *n ext, char *s, int Is) int i=0 ,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。