收藏 分销(赏)

下半年软件设计师考试下午真题案例分析题.doc

上传人:快乐****生活 文档编号:9510374 上传时间:2025-03-29 格式:DOC 页数:18 大小:247.54KB
下载 相关 举报
下半年软件设计师考试下午真题案例分析题.doc_第1页
第1页 / 共18页
下半年软件设计师考试下午真题案例分析题.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述
下六个月软件设计师考试下午真题(案例分析题) 案例分析题 试题一(共15分) 阅读以下说明,回答下列问题l至问题4,将解答填入答题纸对应栏内。 【说明】 某证券交易所为了方便提供证券交易服务,欲开发一证券交易平台,该平台主要功效以下: (1)开户。依照客户服务助理提交开户信息,进行开户,并将客户信息存入客户统计中,账户信息(余额等)存入账户统计中; (2)存款。客户能够向其账户中存款,依照存款金额修改账户余额; (3)取款。客户能够从其账户中取款,依照取款金额修改账户余额; (4)证券交易。客户和经纪人均能够进行证券交易(客户经过在线方式,经纪人经过电话),将交易信息存入交易统计中; (5)检验交易。平台从交易统计中读取交易信息,将交易明细返回给客户。 现采取结构化方法对该证券交易平台进行分析与设计,取得如图1-1所表示上下文数一据流图和图1-2所表示O层数据流图。 【问题1](3分) 使用说明中词语,给出图1-1中实体E1-E3名称。 【问题2】(3分) 使用说明中词语,给出图1-2中数据存放D1-D3名称。 【问题3】(4分) 依照说明和图中术语,补充图1-2中缺失数据流及其起点和终点。 【问题4】(5分) 实际证券交易通常是在证券交易中心完成,所以,该平台“证券交易”功效需将交易信息传递给证券交易中心。针对这个功效需求,需要对图1-1和图1-2进行哪些修改,请用200字以内文字加以说明。 试题二(共15分) 阅读以下说明,回答下列问题1至问题3,将解答填入答题纸对应栏内。 【说明】 某宾馆为了有效地管理客房资源,满足不一样客户需求,拟构建一套宾馆信息管理系统,以方便宾馆管理及客房预订等业务活动。 【需求分析结果】 该系统部分功效及初步需求分析结果以下: (1)宾馆有多个部门,部门信息包含部门号、部门名称、电话、经理。每个部门能够有多名员工,每名员工只属于一个部门;每个部门只有一名经理,负责管理本部门。 (2)员工信息包含员工号、姓名、岗位、电话、工资,其中,员工号唯一标识员工关系中一个元组,岗位有经理、业务员。 (3)客房信息包含客房号(如1301、1302等)、客房类型、收费标准、入住状态(已入住/未入住),其中客房号唯一标识客房关系中一个元组,不一样客房类型具备不一样收费标准。 (4)客户信息包含客户号、单位名称、联络人、联络电话、联络地址,其中客户号唯一标识客户关系中一个元组。 (5)客户预订客房时,需要填写预订申请。预订申请信息包含申请号、客户号、入住时间、入住天数、客房类型、客房数量,其中,一个申请号唯一标识预订申请中一个元组;一位客户可烈有多个预订申请,但一个预订申请对应唯一二位客户。 (6)当客户入住时,业务员依照客户预订申请负责安排入住客房事宜。安排信息包含客房号、姓名、性别、身份证号、入住时间、天数、电话,其中客房号、身份证号和入住时间唯一标识一次安排。一名业务员能够安排多个预订申请,一个预订申请只由一名业务员安排,而且可安排多间同类型客房。 【概念模型设计】 依照需求阶段搜集信息,设计实体联络图如图2-1所表示。 【关系模式设计】 部门(部门号,部门名称,经理,电话) 员工(员工号, a ,姓名,岗位,电话,工资) 客户 b 联络人,.联络电话,联络地址. 客房(客房号,客房类型,收费标准,入住状态) 预订申请( c )入住时间,天数,客房类型,客房数量) 安排(申请号,客房号,姓名,性别,( d ) ,天数,电话,业务员) 【问题1】(4分) 依照问题描述,补充四个联络,完善图,2-1,实体联络图.联络名可用联络1、联络2、联络3和联络4代替,联络类型为1:1、1:n和m:n (或1:1,和1:*和*:*)。 【问题2】(8分) (1)依照题意、,将关系模式中空(a)~.(d)补充完整,并填入答题纸对应位置上。 (2)给出“预订申请”和“安排”关系模式主键和外键。 【问题3】(3分) 【关系模式设计】中“客房”关系模式是否存在规范性问题,请用丑100字以内文字解释你观点(若存在问题,应说明怎样修改“客房”关系模式). 试题三(共15分) 阅读以下说明,回答下列问题1至问题3,将解答填入答题纸对应栏内。 【说明】 某种出售罐装饮料自动售货机.( Vending Machine)工作过程描述以下: (l)用户选择所需购置饮料及数量。 (2)用户从投币口向自动售货机中投入硬币(该自动售货机只接收硬币)。硬币器搜集投入硬币并计算其对应价值。假如所投入硬币足够购置所需数量这种饮料且饮料数量足够,则推出饮料,计算找零,用户取走饮料和找回硬币;假如投入硬币不够或者所选购饮料数量不足,则提醒用户继续投入硬币或重新选择饮料及数量。 (3)一次购置结束之后,将硬币器中硬币移走(清空硬币器),等候下一次交易。自动售货机还设有一个退币按钮,用于退还用户所投入硬币。已经成功购置饮料 钱是不会被退回。 现采取面向对象方法分析和设计该自动售货机软件系统,得到如图3-1所表示用例图,其中,用例“购置饮料”用例规约描述以下。 参加者:用户。 主要事件流: 1.用户选择需要购置饮料和数量,投入硬币; 2.自动售货机检验用户是否投入足够硬币; 3.自动售货机检验饮料信存仓中所选购饮料是否足够; 4.自动售货机推出饮料; 5.自动售货机返回找零。 各选事件流: 2a.若投入硬币不足,则给出提醒并退回到1; 3a.若所选购饮料数量不足j?则给出提醒并退回到1 。 依照用例“购置饮料”得到自动售货机4个状态:“空闲”状态、“准备服务”状态、“可购置”状态以及“饮料出售”状态,对应状态图如图3-2所表示。 所设计类图如图3-3所表示。 【问题1】(6分) 依照说明中描述,使用说明中术语,给出图3-2中S1~S4所对应状态名。 【问题2】(4分) 依照说明中描述,使用说明中术语,给出图3-2中E1~E4所对应事件名。 【问题3】(5分) 依照说明中描述,使用说明中术语,给出图3-3中CI~C5所对应类名。 试题四(共15分) 阅读以下说明和C代码,回答下列问题1至问题3,将解答写在答题纸对应栏内。 【说明】 模式匹配是指给定主串t和子串s,在主串t中寻找子串s过程,其中s称为模式。 假如匹配成功,返回s在t中位置,不然返回-1 。 KMP算法用next数组对匹配过程进行了优化。KMP算法伪代码描述以下: 1.在串t和串s中,分别设比较起始下标i=J=O 2.假如串t和串s都还有字符,则循环执行以下操作: (1)假如j=-l或者t[i]-s[j],则将i和j分别加1,继续比较t和s下一个字符; (2)不然,将j向右滑动到next[j]位置,即j =next[J] 3.假如s中全部字符均已比较完成,则返回匹配起始位置(从1开始);不然返回一1. 其中,next数组依照子串s求解。求解next数组代码已由get_next函数给出。 【C代码】 (1)常量和变量说明 t,s:长度为悯铂Is字符串 next:next数组,长度为Is (2)C程序 #include <stdio.h> #nclude <stdliB.h> #include <string.h> /*求next【】值*/ void get_next( int *next, char *s, int Is) { int i=0,j=-1; next[0]=-1;/*初始化next[0]*/ while(i< ils){/*还有字符*/ if(j=-1l ls[i]=s[j]){/*匹配*/ j++; i++; if( s[i]一s[jl) next [i]- next[j]; else Next[i]=j; } else J= next[j]; } } int kmp( int *next, char *t ,char *s, int.lt, int Is ) { inti= 0,j =0 ; while (i<lt && ( 1 ) { if( j=-1 II 2_) { i++ ; j ++ ; } else (3) : } if (j>= ls) Retum (4) else . retum-1; 【问题1】(8分) 依照题干说明,填充C代码中空(1)~(4). 【问题2】(2分) 依照题干说明和C代码,分析出kmp算法时间复杂度为 (5)(主串和子长度分别为It和Is,用O符号表示)。 【问题3】(5分) 依照C代码,字符串“BBABBCAC”next数组元素值为 (6) (直接写素值,之间用逗号隔开)。若主串为“AABBCBBABBCACCD”,子串为“BBABBCAC则函数Kmp返回值是 (7) . 试题五(共15分) 阅读以下说明和C++-代码,将应填入 (n) 处字句写在答题纸对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分组成。现采取装饰( Decorator)模式实现打印发票功效,得到如图5-1所表示类图。 【C++代码】 #include <iostream> using namespace std; class invoice{ public: (1) { cout《 "This is the content of the invoice!"《 endl; } }; class Decorator : public invoice { Invoice *ticket; public: Decorator(lnvoice *t) { ticket = t; } void printinvoice(){ if(ticket != NULL) (2); } }; class HeadDecorator : public Decorator{ public: HeadDecorator(lnvoice*t): Decorator(t) { } void printinvoice0 { cout《 "This is the header of the invoice! "<< endl; (3) ; } }; class FootDecorator : public Decorator{ public: FootDecorator(invoice *t): Decorator(t) { } void printlnvoice() { (4) ; cout《 "This is the footnote of the invoice!"《 endl; } }; int main(void) { Invoice t; FootDecorator f(&t); HeadDecorator h(&f); H.printlnvoice(); cout< < “_____”< < endl; FootDecorator a(NULL); HeadDecorator b( (5) ); B.printinvoice(); return 0; } 程序输出结果为: This is the header of the invoice! This is the content of the invoice! This is the footnote of the invoice! ---------------------------- This is the header of the invoice! This is the footnote of the invoice! 试题六(共15分) 阅读以下说明和Java代码,将应填入 (n) 处字句写在答题纸对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分组成。现采取装饰( Decorator)模式实现打印发票功效,得到如图6-1所表示类图。 【java代码】 class invoice{ public void printInvoice(){: System.out.println ( "This is the content of the invoice!"); } } class Decorator : extends Invoice { protected Invoice ticket; public Decorator(lnvoice t){ ticket = t; } public void printinvoice(){ if(ticket != NULL) (1); } } class FootDecorator extends Decorator{ public FootDecorator(lnvoice t){ super(t); } public void printinvoice (){ Systent.out.println( "This is the header of the invoice! "); (2) ; } } class FootDecorator extends Decorator { public FootDecorator(invoice t):{ super(t); } public void printlnvoice(){ (3) ; Systent.out.println( "This is the header of the invoice! "); } } Class test { public static void main(string[] args){ Invoice t =new invioce(); Invoice ticket; Ticket= (4) ; Ticket. Printinvoice(); Systent.out.println(“--------------“) Ticket= (5) ; Ticket. Printinvoice(); } } 程序输出结果为: This is the header of the invoice! This is the content of the invoice! This is the footnote of the invoice! ---------------------------- This is the header of the invoice! This is the footnote of the invoice! 如需了解更多软件设计师真题资讯,请看希赛软考学院!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服