[计算机类试卷]2015年下半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc
《[计算机类试卷]2015年下半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2015年下半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、2015年下半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和图,回答问题 1至问题 4,将解答填入答题纸的对应栏内。【说明】某慕课教育平台欲添加在线作业批改系统,以实现高效的作业提交与批改,并进行统计。学生和讲师的基本信息已经初始化为数据库中的学生表和讲师表。系统的主要功能如下。 (1)提交作业。验证学生标识后,学生将电子作业通过在线方式提交,并进行存储。系统给学生发送通知表明提交成功,通知中包含唯一编号;并通知讲师有作业提交 。 (2)下载未批改作业。验证讲师标识后,讲师从系统中下载学生提交的作业。下载的
2、作业将显示在屏幕上。 (3)批改作业。讲师按格式为每个题目进行批改打分,并进行整体评价。 (4)上传批改后的作业。将批改后的作业 (包括分数和评价 )返回给系统,进行存储。 (5)记录分数和评价。将批改后的作业的分数和评价记录在学生信息中,并通知学生作业已批改。 (6)获取已批改作业。根据学生标识,给学生查看批改后的作业,包括提交的作业、分数和评价。 (7)作业抽检。根据教务人员标识抽取批改后的作业样本,给出抽检意见,然后形成抽检报告给讲师。现 采用结构化方法对在线作业批改系统进行分析与设计,获得如图 1-1所示的上下文数据流图和图 1-2所示的 0层数据流图。 1 【问题 1】 使用说明中的
3、词语,给出图 1-1中的实体 E1 E3的名称。 2 【问题 2】 使用说明中的词语,给出图 1-2中的数据存储 D1 D4的名称。 3 【问题 3】 根据说明和图中术语,补充图 1-2中缺失的数据流及其起点和终点。 4 【问题 4】 若发送给学生和讲师的通知是通过第三方 Email系统进行的,则需要对图 1-1和图1-2进行哪些修改 ?用 100字以内文字加以说明。 4 阅读下列说明,回答问题 1至问题 3,将解答填入答题纸的对应栏内。【说明】 某企业拟构建一个高效、低成本、符合企业实际发展需要的办公自动化系统。工程师小李主要承担该系统的公告管理和消息管理模块的研发工作。公告管理模块的主要功
4、能包括添加、修改、删除和查看公告。消息管理模块的主要功能是消息群发。 小李根据前期调研和需求分析进行了概念模型设计,具体情况分述如下。【需求分析结果】 (1)该企业设有研发部、财务部、销售部等多个部门,每个部门只有一名部门经理,有多名员工,每名员工只属于一个部门。部门信息包括:部门号、 名称、部门经理和电话,其中部门号唯一确定部门关系的每一个元组。 (2)员工信息包括:员工号、姓名、岗位、电话和密码。员工号唯一确定员工关系的每一个元组;岗位主要有经理、部门经理、管理员等,不同岗位具有不同的权限。一名员工只对应一个岗位,但一个岗位可对应多名员工。 (3)消息信息包括:编号、内容、消息类型、接收人
5、、接收时间、发送时间和发送人。其中 (编号,接收人 )唯一标识消息关系中的每一个元组。一条消息可以发送给多个接收人,一个接收人可以接收多条消息。 (4)公告信息包括:编号、标题、名称、内容、发布部门、发布 时间。其中编号唯一确定公告关系的每一个元组。一份公告对应一个发布部门,但一个部门可以发布多份公告;一份公告可以被多名员工阅读,一名员工可以阅读多份公告。【概念模型设计】 根据需求分析阶段收集的信息,设计的实体联系图 (不完整 )如图 2-1所示。【逻辑结构设计】 根据概念模型设计阶段完成的实体联系图,得出如下关系模式 (不完整 ): 部门 (_(a),部门经理,电话 ) 员工 (员工号,姓名
6、,岗位号,部门号,电话,密码 ) 岗位 (岗位号,名称,权限 ) 消息 (_(b),消息类型,接收时间,发送时间,发送人 ) 公告 (_(c),名称,内容,发布部门,发布时间 ) 阅读公告 ( _(d),阅读时间 ) 5 【问题 1】 根据问题描述,补充四个联系,完善图 2-1所示的实体联系图。联系名可用联系1、联系 2、联系 3和联系 4代替,联系的类型分为 1: 1、 1: n和 m: n(或 1: 1、1: *和 *: *)。 6 【问题 2】 (1)根据实体联系图,将关系模式中的空 (a) (d)补充完整。 (2)给出 “消息 ”和 “阅读公告 ”关系模式的主键与外键。 7 【问题 3
7、】 消息和公告关系中 都有 “编号 ”属性,请问它是属于命名冲突吗 ?用 100字以内文字说明原因。 7 阅读下列说明和图,回答问题 1至问题 3,将解答填入答题纸的对应栏内。 【说明】 某出版社拟开发一个在线销售各种学术出版物的网上商店 (ACShop),其主要的功能需求描述如下: (1)ACShop在线销售的学术出版物包括论文、学术报告或讲座资料等。 (2)ACShop的客户分:为两种:未注册客户和注册客户。 (3)未注册客户可以浏览或检索出版物,将出版物添加到购物车中。未注册客户进行注册操作之后,成为 ACShop注册客户。 (4)注 册客户登录之后,可将待购买的出版物添加到购物车中,并
8、进行结账操作。 结账操作的具体流程描述如下: 从预先填写的地址列表中选择一个作为本次交易的收货地址。如果没有地址信息,可以添加新地址信息。 选择付款方式。 ACShop支持信用卡付款或银行转账两种方式。注册客户可以从预先填写的信用卡或银行账号中选择一个付款,若没有付款方式信息,则可以添加新付款方式。 确认提交购物车中待购买的出版物, ACShop会自动生成与之相对应的订单。 (5)管理员负责维护在线销售的出版物目录,包括添加新出版物或者更新在售出版物信息 等操作。 现采用面向对象方法分析并设计该网上商店 ACShop,得到如图 3-1所示的用例图和图 3-2所示的类图。 8 【问题 1】 根据
9、说明中的描述,给出图 3-1中 (1) (4)所对应的用例名。 9 【问题 2】根据说明中的描述,分别说明用例 “添加新地址 ”和 “添加新付款方式 ”会在何种情况下由图 3-1中的用例 (3)和 (4)扩展而来 ? 10 【问题 3】根据说明中的描述,给出图 3-2中 (1) (7)所对应的类名。10 阅读下列说明和 C代码,回答问题 1至问题 3,将解答写在答题纸的对应栏内。【说明】 计算两 个字符串 x和 y的最长公共子串 (Longest Common Substring)。 假设字符串 x和字符串 y的长度分别为 m和 n,用数组 c的元素 cij记录 x中前 i个字符和 y中前 j
10、个字符的最长公共子串的长度。 cij满足最优子结构,其递归定义为: 计算所有cij(Oim, 0jn)的值,值最大的 cij即为字符串 x和 y的最长公共子串的长度。根据该长度即 i和 j,确定一个最长公共子串。【 C代码】 (1)常量和变量说明 x y:长度分别为 m和 n的字符串。 cij:记录 x中前 i个字符和 y中前 j个字符的最长公共子串的长度。 max: x和 y的最长公共子串的长度。 maxi, maxj:分别表示 x和 y的某个最长公共子串的最后一个字符在 x和 y中的位置 (序号 )。 (2)C程序 #include #include int c5050; int maxi
11、; int maxj; int 1cs(char *x, int m,char *y, int n) int i, j; int max=0; maxi=0; maxj=0; for(i=0; i =m; i+) ci0=0; for(i=1; i =n; i+) C0i=0; for(i=1; i =m; i+) for(j=1; j=n; j+) if(_(1) cij=Ci1j一 1+1; if(maxcij) _(2); maxi=i; maxj=j; else _(3); return max; void printLCS(int max, char *x) int i=0; if(
12、max=0) return; for(_(4); i maxi; i+) printf(“ c“, xi); void main() char*x=“ABCADAB“; cnar*y=“BDCABA“; int max=0; int m=strlen(x); int n=strlen(y); max=lcs(x, m, y, n); printLCS(max, x); 11 【问题 1】 根据以上说明和 C代码,填充 C代码中的空 (1) (4)。 12 【问题 2】 根据题干说明和以上 C代码,算法采用 了 _(5)设计策略。 分析时间复杂度为 _(6)(用 O符号表示 )。 13 【问题
13、3】 根据题干说明和以上 C代码,输入字符串 x=“ABCADAB“, y=“BDCABA“,则输出为 _(7)。 14 阅读下列说明和 C+代码,将应填入 _(n)处的字句写在答题纸的对应栏内。【说明】某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利 (例如,满 300返 100)等。现采用策略 (Strategy)模 式实现该要求,得到如图 5-1所示的类图。【 C+代码】 #include using namespace std; enum TYPENORMAL, CASH DISCOUNT, CASH RETURN; class Cas
14、hSuper public: _(1); ; class CashNormal: public CashSuper 正常收费子类 public: double acceptCash(double money) return money; ; class CashDiscount: public CashSuper private: double moneyDiscount; 折扣率 public: CashDiscount(double discount) moneyDiscount=discount; ) double acceptCash(double money) return mone
15、y*moneyDiscount; ) ; class CashReturn:public CashSuper 满额返利 private: double moneycondition; 满额数额 double moneyReturn; 返利数额 public: CashReturn(double moneyCondition,double moneyReturn) this moneyCondition=moneyCondition; thismoneyReturn=moneyReturn; double acceptCash(double money) double result=money;
16、 if(money=moneyCondition) result=money (int)(moneymoneyCondition ) *moneyReturn; return result; ; Class CashContext private: CashSuper*cs; public: CashContext(int type) switch(type) case NORMAL: 正常收费 _(2); break; case CASH_RETURN: 满 300返 100 _(3); break; case CASH_DISCOUNT: 打 8折 _(4); break; double
17、GetResult(double money) _(5); ; 此处略去 main()函数 15 阅读下列说明和 Java代码,将应填入 _(n)处的字句写在答题纸的对应栏内。【说明】 某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利 (例如,满 300返 100)等 。现采用策略 (Strategy)模式实现该要求,得到如图 6-1所示的类图。 Java、代码 import java util *; enum TYPENORMAL, CASH DISCOUNT, CASH RETURN); interface CashSuper public
18、 _(1); class CashNormal implements CashSuper 正常收费子类 public double acceptCash(double money) return money; class CashDiscount implements CashSuper private double moneyDiscount; 折扣率 public CashDiscount(double moneyDiscount) this moneyDiscount=moneyDiscount; public double acceptCash(double money) return
19、 money*moneyDiscount; class CashReturn implements CashSuper 满额返利 private double moneyCondition; private double moneyReturn; public CashReturn(double moneyCondition, double moneyReturn) this moneycondition=moneyCondition; 满额数额 this moneyReturn=moneyReturn; 返利数额 public double acceptCash(double money)
20、double result=money; if(money =moneyCondition) result=money-Math floor(money moneyCondition)*moneyReturn; return result; Class CashContext private CashSuper cs; private TYPE t; public CashContext(TYPE t) switch(t) case NORMAL: ”正常收费 ” _(2); break; case CASH DISCOUNT: “打 8折 “ _(3); break; case CASH R
21、ETURN: “满 300返 100“ _(4); break; public double GetResult(double money) _(5); 此处略去 main()函数 2015年下半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷答案与 解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 E1:学生 E2:讲师 E3:教务人员 【试题解析】 本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较传统的题目,考点与往年类似,要求考生细心分析题目中所描述的内容。 DFD是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻
22、辑模型的重要组成部分。上下文 DFD(顶层 DFD)通常用来确定系统边界,将待开发系统看作一个大的加工 (处理 ),然后根据系统从哪些外部实体接收数据流, 以及系统将数据流发送到哪些外部实体,建模出的上下文数据流图中只有唯一的一个加工和一些外部实体,以及这两者之间的输入输出数据流。 0层: DFD在上下文确定的系统外部实体以及与外部实体的输入输出数据流的基础上,将上下文 DFD中的加工分解成多个加工,识别这些加工的输入输出数据流,使得所有上下文 DFD中的输入数据流经过这些加工之后变换成上下文 DFD的输出数据流。根据 0层DFD中加工的复杂程度进一步建模加工的内容。 在建分层 DFD时,根据
23、需求情况可以将数据存储建模在不同层次的 DFD中,注意,在绘制下层数据流图时 要保持父图与子图平衡。父图中某加工的输入输出数据流必须与其子图的输入输出数据流在数量和名字上相同,或者父图中的一个输入 (或输出 )数据流对应于子图中几个输入 (或输出 )数据流,而子图中组成这些数据流的数据项的全体正好是父图中的这一个数据流。 本问题考查上下文 DFD,要求确定外部实体。通过考查系统的主要功能不难发现,系统中涉及到学生、讲师和教务人员,没有提到其他与系统交互的外部实体。根据描述 (1)中 “学生将电子作业通过在线的方式提交 ”, (2)中 “讲师从系统中下载学生提交的作业 ”, (7)中 “根据教务
24、人员标识 抽取批改后的作业样本,给出抽检意见 ”等信息,从而即可确定 E1为 “学生 ”实体, E2为 “讲师 ”实体, E3为 “教务人员 ”实体。 2 【正确答案】 D1:提交的作业表 D2:学生表 D3:讲师表 D4:批改后的作业表 【试题解析】 本问题要求确定 0层数据流图中的数据存储。分析说明中和数据存储有关的描述,说明 (1)中 “验证学生标识后,学生将电子作业通过在线的方式提交,并进行存储 ”,说明 (2)中 “讲师从系统中下载学生提交的作业 ”,可知 Dl为提交的作业表;说明 (2)中 “验证讲师标识后 ”,可知 D3为讲师表;说明 (4)中 “将批改后的作业 (包括分数和评价
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2015 年下 半年 软件 水平 考试 中级 设计师 下午 应用技术 答案 解析 DOC

链接地址:http://www.mydoc123.com/p-493245.html