1 / 12
文档名称:

最新中级软件设计师下半年下午试题资料.docx

格式:docx   大小:163KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

最新中级软件设计师下半年下午试题资料.docx

上传人:maritime_4 2022/3/21 文件大小:163 KB

下载得到文件列表

最新中级软件设计师下半年下午试题资料.docx

相关文档

文档介绍

文档介绍:中级软件设计帅2016下半年下午试题
试题一
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某证券交易所为了方便提供证券交易服务,欲开发一证券交易平台,该平台的主要功能如下:
开户。根据客户服务助理提交货机还设有一个退币按钮,用丁退还顾客所投入的硬币。已经成功购买饮料的钱是不会被退回的。
图3・】用例图采用面向对象方法分析和设计该自动售货机的软件系统,得到如图例“购买饮料”的用例规约描述如下。参与者:顾客。主要事件流:顾客选择需要购买的饮料和数量,投入硬币;自动售货机检查顾客是否投入足够的硬币;自动售货机检查饮料储存仓中所选购的饮料是否足够;自动售货机推出饮料;自动售货机返回找零。各选事件流:
3-1所示的用例图,其中,用
精品文档
,则给出提示并退回到1;
,则给出提示并退回到
“购买饮料”得到自动售货机的4个状态:
“饮料出售”状态,
根据用例买”状态以及
1。
“空闲”状态、“准备服务”状态、“可购所示。所设计的类图如图3-3所示。
对应的状态图如图3-2
即3-;软志序
限43类图
(6分)
问题:
根据说明中的描述,使用说明中的术语,
给出图
3-2
中的S1〜S4所对应的状态名。
问题:(4分)
根据说明中的描述,使用说明中的术语,
给出图
3-2
中的E1〜E4所对应的事件名
问题:(5分)
根据说明中的描述,使用说明中的术语,
给出图
3-3
中C1〜C5所对应的类名。
试题四阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
模式匹配是指给定主申t和子申s,在主申t中寻找子申s的过程,其中s称为模式。如果匹配成功,返回s在t中的位置,否则返回-1。
KM所法用next数组对匹配过程进行了优化。KMPJJ法的伪代码描述如下:
.在申t和申s中,分别设比较的起始下标i=j=0。
.如果申t和申s都还有字符,则循环执行下列操作:
(1)如果j=-l或者t[i]=s[j],则将i和j分别加1,继续比较t和s的下一个字符;(2)否则,将j向右滑动至jnext[j]的位置,即j=next[j]
1开始);否则返回-1.
,则返回匹配的起始位置(从精品文档
其中,next数组根据子申s求解。求解next数组的代码已由get_next函数给出。
【C代码】
常量和变量说明t,s:长度为悯钳Is的字符申next:next数组,长度为Is
C程序
#include<>
#include<>
#include<>
/*求next[]的值*/
voidget_next(int*next,char*s,intIs){
inti=0,j=-1;
next[0]=-1;/*初始化next[0]*/
while(i<ls){/*还有字符*/
if(j==-1lls[i]==s[j]){/*匹配*/
j++;
i++;
if(s[i]==s[j])
next[i]=next[j];
else
Next[i]=j;
}
else
j=next[j];
}
}
intkmp(int*next,char*t,char*s,intlt,intIs)
{
Inti=0,j=0;
while(i<lt&&(1)){
if(j==-1||(2)){
i++;
j++;
}else;
}
if(j>=ls)
return(4);
else
return-1;
}问题:(8分)根据题十说明,填充C代码中的空(1)〜(4).
问题:(2分)根据题十说明和C代码,分析出kmp算法的时间复杂度为(5)(主申和子申的长度分别为It和Is,用Ot号表示)。
问题:(5分)根据C代码,字符申"BBABBCAC'的next数组元素值为(6)(直接写素值,之间用逗号隔开)。
若主申为“AABBCBBABBCACCD,子申为“BBABBCAC,贝U函数Kmp的返回值是(7)。
试题五
阅读下歹0说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某发票(Invoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰
(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。
S54美图问题:【C++代码】
#include<iostream>
usingnamespacestd;
classInvoic