好文档 - 专业文书写作范文服务资料分享网站

2015下半年软件设计师考试真题及答案-下午卷

天下 分享 时间: 加入收藏 我要投稿 点赞

问题:3.1 据说明中的描述,给出图3-1中(1)~(4)所对应的用例名。

问题:3.2 根据说明中的描述,分别说明用例“添加新地址”和“添加新付款方式”会在何种情况下由图3-1中的用例(3)和(4)扩展而来?

问题:3.3 根据说明中的描述,给出图3-2中(1)~(7)所对应的类名。 3. 参考答案: 【问题1】

(1) 添加出版物到购物车 (2) 结账 (3) 选择收货地址 (4) 选择付款方式 【问题2】

当选择收货地址时,没有地址信息,则使用扩展用例“添加新地址”来完成新地址的添加。 当选择付款方式时,没有付款方式信息,则使用扩展用例“添加新付款方式”来完成新付款

11

方式的添加。 【问题3】

(1)出版物目录 (2) 待购买的出版物 (3) 学术出版物

(4) - (6) 论文、学术报告、讲座资料 (7) 订单 试题分析:

本题属于软件设计师的传统考题,问题1与问题3都有成熟的解题套路,在以前考题分析中已有非常详细的介绍。在此主要分析问题2。

问题2涉及到的是扩展关系运作机制,在扩展关系中,一个用例称为基础用例,另一个用例称为扩展用例,其中扩展用例是对基础用例的补充,扩展用例不是每次都执行,要特定条件满足才执行。

以本题中用例“添加新地址”为例,他就是一个扩展用例,什么时候他会执行呢?就是当选择收货地址时,系统检测发现没有地址信息,此时会“添加新地址”来完成新地址的添加,然后再先择收货地址。添加新付款方式 用例情况与此类似。

ht28_first 2016-05-04

请问老师: 问题1中(1)添加出版物到购物车 根据描述:未注册客户可以浏览或检索出版物,将出版物添加到购物车中,这里客户都未注册,没有一个唯一的标识如何将出版物添加到购物车中呢。系统是如何来判断是哪个未注册用户添加了哪些书到购物车呢。我的认为是客户注册登录之后,因此这里应该填:生成与之相应的订单 才能选择购买书籍。此外,我的答案(2):结账操作 (3):交易的收货地址 (4):选择付款方式 参考答案是(2) 结账(3) 选择收货地址 (4) 选择付款方式,这里我的答案和标准答案有差异,这样答题扣分吗? 还比如问题3中,参考答案为:订单,答题写成:生成与之相应的订单 扣分吗 MegumiIsh 2016-05-04

我们先来看问题1:您的理解不够全面,您在网上购物的时候没有注册也是可以加入购物车的,自己可以体会一下,这个实现的方式有很多,比如您浏览这个网页的时候浏览器会产生一个session发过去,电子商务网站可以根据session里面的编号区分开不同的未注册用户。这个地方也不是考试的考点,题目中已经明确说明了未注册用户可以添加到购物车,为什么

12

还要去考虑这样的问题呢?

再来看问题2:第三问最好写选择收货地址,写成交易的收货地址还是有点不同,可能会扣一点分

问题3:写成 生成与之相应的订单 一般不会扣分 试题四 【说明】

计算两个字符串x和y的最长公共子串(Longest Common Substring)。

假设字符串x和字符串y的长度分别为m和n,用数组c的元素c[i][j]记录x中前i个字符和y中前j个字符的最长公共子串的长度。 c[i][j]满足最优子结构,其递归定义为:

计算所有c[i][j](0≤i≤m,0≤j≤n)的值,值最大的c[i][j]即为字符串x和y的最长公共子串的长度。根据该长度即i和j,确定一个最长公共子串。 (1)常量和变量说明

x,y:长度分别为m和n的字符串。

c[i][j]:记录x中前i字符和y中前j个字符的最长公共子串的长度。 max:x和y的最长公共子串的长度。

maxi,maxj:分别表示x和y的某个最长公共子串的最后一个字符在x和y中的位置(序号)。 (2)C程序

13

问题:4.1 根据以上说明和C代码,填充C代码中的空(1)~(4)。

问题:4.2 根据题干说明和以上C代码,算法采用了(5)设计策略。 分析时间复杂度为(6)(用O符号表示)。

问题:4.3 根据题干说明和以上C代码,输入字符串x=\'y=\则输出为(7)。 4. 参考答案: 【问题1】

(1)x[i-1] == y[j-1] (2)max=c[i][j] (3)c[i][j]=0 (4)i=maxi-max 【问题2】

(5)动态规划法 (6)O(m*n) 【问题3】 (7)AB 试题分析:

首先对于C语言算法题,一般的解题思路是先解决除程序填空以外的问题,这些问题弄清楚,有利于程序填空部分的分析。

第一步,分析程序所采用的算法,常见的算法包括:分治法、动态规划法、回溯法、贪心法。

14

本题中要求的是两个串的最长公共子串,在程序中采用了数组来记录子问题的中间结果,这一特征与动态规划法的做法非常吻合,所以应选动态规划法。

第二步,解决“输入字符串x= \'y=\则输出为 (7) ”的问题,该问题相对容易解决,因为题目已告知程序的作用是求最长公共子串,而且从程序的输出函数可以看出,要输出的,只有子串,没有其它信息,所以我们只需要手动求两个串的公共子串,并写出答案即可。两个串第一个公共子串明显是“AB”,所以输出的结果为“AB”。 第三步,求时间复杂度,由于程序中最多双重循环,其中外层循环的规模为m,而内层循环的规模为n,所以时间复杂度为O(m*n)。

第四步,也是最难的一步,是解决程序填空的问题。动态规划的问题,一般都会给出递归定义式,这个式子,往往是多个空的关键点。以本题为例,前3空均与式子相关,式子中明确说明了x[i-1]=x[j-1]时c[i][j]的值是多少,而其它情况c[i][j]均等于0,此时可以了解到前3空的答案。而第4空是用于打印结果,由于maxi记录了子串末尾+1的位置信息,子串长度为max,所以用maxi-max定位至子串开始位置,以便打印子串。

18629249714 2016-04-30 最后一个空,我填的2,AB是不是错的? MegumiIsh 2016-05-01

您好,这个题题目中的算法是为了求两个字符串中最长公共字符串,输出它,题中给出的两个字符串最长的是 AB。 jihuan 2016-10-08

这个时间复杂度写成了 O(n^2) 会不会没有分 MegumiIsh 2016-10-09 应该是可以的,不应该扣分。 fivehun 2016-10-25 公共子串不包括CA吗? MegumiIsh 2016-10-27

这个地方先选择A序列,再从B序列匹配,所以先匹配到AB 试题五

15

2015下半年软件设计师考试真题及答案-下午卷

问题:3.1据说明中的描述,给出图3-1中(1)~(4)所对应的用例名。问题:3.2根据说明中的描述,分别说明用例“添加新地址”和“添加新付款方式”会在何种情况下由图3-1中的用例(3)和(4)扩展而来?问题:3.3根据说明中的描述,给出图3-2中(1)~(7)所对应的类名。3.参考答案:【问题1
推荐度:
点击下载文档文档为doc格式
7z46r99ugy4g4gh0kzl91od1e2lms500xwj
领取福利

微信扫码领取福利

微信扫码分享