[计算机类试卷]2013年下半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析.doc
《[计算机类试卷]2013年下半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2013年下半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、2013年下半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和图,回答以下问题,将解答填入答题纸的对应栏内。【说明】某大学欲开发一个基于 Web的课程注册系统,该系统的主要功能如下: 1验证输入信息 (1)检查学生信息:检查学生输入的所有注册所需信息。如果信息不合法,返回学生信息不合法提示;如果合法,输出合法学生信息。 (2)检查学位考试结果:检查学生提供的学位考试结果。如果不合法,返回学位考试结果不合法提示;如果合法,检查 该学生注册资格。 (3)检查学生注册资格:根据合法学生信息和合法学位考试结果,检
2、查该学生对欲选课程的注册资格。如果无资格,返回无注册资格提示;如果有注册资格,则输出注册学生信息 (包含选课学生标识 )和欲注册课程信息。 2处理注册申请 (1)存储注册信息:将注册学生信息记录在学生库。 (2)存储所注册课程:将选课学生标识与欲注册课程进行关联,然后存入课程库。 (3)发送注册通知:从学生库中读取注册学生信息,从课程库中读取所注册课程信息,给学生发送接受提示;给教务人员发送所注册课程信息和已注册学生信息。现采用结构化方法 对课程注册系统进行分析与设计,获得如图 1-1所示的 0层数据流图和图 1-2所示的 1层数据流图。1 使用说明中的词语,给出图 1 1中的实体 E1和 E
3、2的名称。 2 使用说明中的词语,给出图 1 2中的数据存储 D1和 D2的名称。 3 根据说明和图中术语,补充图 1 2中缺失的数据流及其起点和终点。 4 根据补充完整的图 1-1和图 1 2,说明上层的哪些数据流是由下层的哪些数据流组合而成。 4 阅读下列说明,回答以下问题,将解答填入答题纸的对应栏内。【说明】 某快递公司为了方便管理公司物品运送的各项业 务活动,需要构建一个物品运送信息管理系统。【需求分析结果】 (1)快递公司有多个分公司,分公司信息包括分公司编号、名称、经理、办公电话和地址。每个分公司可以有多名员工处理分公司的日常业务,每名员工只能在一个分公司工作。每个分公司由一名经理
4、负责管理分公司的业务和员工,系统需要记录每个经理的任职时间。 (2)员工信息包括员工号、姓名、岗位、薪资、手机号和家庭地址。其中,员工号唯一标识员工信息的每一个元组。岗位包括经理、调度员、业务员等。业务员根据客户提交的快件申请单进行快件受理事宜,一个业务员可以受理多个客户的 快件申请,一个快件申请只能由一个业务员受理。调度员根据已受理的申请单安排快件的承运事宜,例如:执行承运的业务员、运达时间等。一个业务员可以执行调度员安排的多个快件的承运业务。 (3)客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银行账号。其中,客户号唯一标识客户信息的每一个元组。当客户要寄快件时,先要
5、提交快件申请单,申请号由系统自动生成。快件申请信息包括申请号、客户号、发件人、发件人电话、快件名称、运费、发出地、收件人、收件人电话、收件地址。其中,一个申请号对应唯一的一个快件申请,一个 客户可以提交多个快件申请,但一个快件申请由唯一的一个客户提交。【概念模型设计】 根据需求阶段收集的信息,设计的实体联系图 (图 2 1)和关系模式 (不完整 )如下: 【关系模式设计】 分公司 (分公司编号,名称,经理,办公电话,地址 ) 员工 (员工号,姓名, (a),岗位,薪资,手机号,家庭地址 ) 客户 (客户号,单位名称,通信地址,所属省份,联系人,联系电话,银行账号 ) 申请单 (b),发件人,发
6、件人电话,发件人地址,快件名称,运费,收件人,收件人电话,收件地址,受理标志,业务员 ) 安排承运 ( (c),实际完成时 间,调度员 ) 5 根据问题描述,补充五个联系,完善图 2-1的实体联系图。联系名可用联系 1、联系 2、联系 3、联系 4和联系 5代替,联系的类型分为 1: 1、 1: n和 m: n(或1: 1、 1: *和 *: *)。 6 (1)根据实体联系图,将关系模式中的空 (a) (c)补充完整。 (2)给出员工、申请单和安排承运关系模式的主键和外键。 7 (1)客户关系的通信地址可以进一步分为邮编、省、市、街道,那么该属性是否属于简单属性,为什么 ?请用 100字以内的
7、文字说明。 (2)假设分公司需要增设一位经理的职位,那么分公司与经 理之间的联系类型应修改为 (d),分公司的主键应修改为 (e) 7 阅读下列说明和图,回答以下问题,将解答填入答题纸的对应栏内。【说明】某航空公司会员积分系统 (CFrequent Flyer)的主要功能描述如下:乘客只要办理该航空公司的会员卡,即可成为普卡会员 (CBasic)。随着飞行里程数的积累,可以从普卡会员升级到银卡会员 (CSilver)或金卡会员 (CGold)。非会员 (CNon Member)不能累积里程数。 每年年末,系统根据会员在本年度累积的里程数对下一年会员等级进行调整。 普卡会员在一年内累积的 里程数
8、若满 25,000英里但不足 50,000英里,则自动升级为银卡会员;若累积的里程数在 50,000英里以上,则自动升级为金卡会员。银卡会员在一年内累积的里程数若在 50,000英里以上,则自动升级为金卡会员。 若一年内没有达到对应级别要求的里程数,则自动降低会员等级。金卡会员一年内累积的里程数若不足 25,000英里,则自动降级为普卡会员;若累积的里程数达到 25,000英里,但是不足 50,000英里,则自动降级为银卡会员。银卡会员一年内累积的里程数若不足 25,000英里,则自动降级为普卡会员。 采用面向对象方法对会员积分系统进行分析与设计,得到如图 3-1所示的状态图和图 3-2所示的
9、类图。8 根据说明中的描述,给出图 3 1中 S1-$3处所对应的状态以及 T1 T3处所对应的迁移的名称。 9 根据说明中的描述,给出图 3 2中 C1 C4所对应的类名 (类名使用说明中给出的英文词汇 )。 10 图 3-2所示的类图中使用了哪种设计模式 ?在这种设计模式下,类CFrequentFlyer必须具有的属性是什么 ?C1 C4中的 travel方法应具有什么功能 ? 10 阅读下列说明和 C代码,回答以下问题,将解答写在答题 纸的对应栏内。【说明】 某工程计算中要完成多个矩阵相乘 (链乘 )的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法
10、运算的次数决定。采用标准的矩阵相乘算法,计算 Amn*Bnp,需要 m*n*p次乘法运算。 矩阵相乘满足结合律,多个矩阵相乘,不同的计算顺序会产生不同的计算量。以矩阵A110100, A21005, A3550三个矩阵相乘为例,若按 (A1*A2)*A3计算,则需要进行10*100*5+10*5*50=7500次乘法运算;若按 A1*(A2* A3)计算,则需要 进行100*5*50+10*100*50=75000次乘法运算。可见不同的计算顺序对计算量有很大的影响。 矩阵链乘问题可描述为:给定 n个矩阵,矩阵 Ai的维数为 pi-1pi,其中i=1, 2, , n。确定一种乘法顺序,使得这 n
11、个矩阵相乘时进行乘法的运算次数最少。 由于可能的计算顺序数量非常庞大,对较大的 n,用蛮力法确定计算顺序是不实际的。经过对问题进行分析,发现矩阵链乘问题具有最优子结构,即若A1*A2*An 的一个最优计算顺序从第 k个矩阵处断开,即分为 A1*A2*Ak 和Ak+1*Ak+2*An 两个 子问题,则该最优解应该包含 A1*A2*Ak 的一个最优计算顺序和 Ak+1*Ak+2*An 的一个最优计算顺序。据此构造递归式, 其中, costij表示 Ai+1*Ai+2*Aj+1 的最优计算的计算代价。最终需要求解cost0n-1。【 C代码】 算法实现采用自底向上的计算过程。首先计算两个矩阵相乘的计
12、算量,然后依次计算 3个矩阵、 4个矩阵 n 个矩阵相乘的最小计算量及最优计算顺序。下面是该算法的 C语言实现。 (1)主要变量说明 n:矩阵数 seq:矩阵维数序列 cost:二维 数组,长度为 n*n,其中元素 costiD表示Ai+1*Ai+2*Aj+1 的最优计算的计算代价 trace:二维数组,长度为 n*n,其中元素 tmceiU表示 Ai+1*Ai+2*Aj+1 的最优计算对应的划分位置,即 k (2)函数 cmnl #define N 100 int costNN; int traceNN; int cmm(int n, int seq) int tempCost; int t
13、empTrace; int i , j , k, p; int temp; for(i=0;itemp) tempCost=temp; (4); costiJ=tempCost; traceiJ=tempTrace; return cost0n-1; 11 根据以上说明和 C代码,填充 C代码中的空 (1) (4)。 12 根据以上说明和 C代码,该问题采用了 (5)算法设计策略,时间复杂度为 (6)(用0符号表示 )。 13 考虑实例 n=6,各个矩阵的维数: A1为 5*10, A2为 10*3, A3为 3*12, A4为12*5, A5为 5*50, A6为 50*6,即维数序列为 5
14、, 10, 3, 12, 5, 50, 6。则根据上述 C代码得到的一个最优计算顺序为 (7)(用加括号方式表示计算顺序 ),所需要的乘法运算次数为 (8)。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 14 阅读下列说明和 C+代码,将应填入 (n)处的字句写在答题纸的对应栏内。【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表 5-1所示。该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接 (B
15、ridge)模式来实现上述要求,得到如图 5-1所示的类图。 【 C+代码】 class DP1 public: static void draw_a_line(double x1, double y1, double x2, double y2) *代码省略 * static void draw a circle(double x, double y, double r) *代码省略 * ) ; clasS DP2 public: static void drawline(double xl, double x2,double y1, double y2) *代码省略 * ) static
16、void drawcircle(double X, double y,double r) *代码省略 * ; class Drawing public: (1) ; (2) ; ; class ViDrawing: public Drawing pblic: void drawLine(double x1, double y1, double x2, double y2) *代码省略 * void drawCircle(double x, double Y, double r) (3) ; ) ; class V2Drawing: public Drawing public: void dra
17、wLine(double xl,double yl, double x2, double y2) *代码省略 * void drawCircle(double x,double y, double r)( (4) ; ) ; clasS Shape public: (5) ; Shape(Drawing*dp)_dp=dp; ) voiddrawLine(double x1, double y1, double x2,double y2) _dp-drawLine(xl, y1, x2, y2); void drawCircle(double X, double y, double r)_dp
18、-drawCircle(x, y, r); private: Drawing*_dp; ; clasS Rectangle: publlC Shape public: void draw() *代码省略 * 其余代码省略 ; clasS Circle: public Shape private: double_x, _y, _r; public: Circle(Drawing*dp, double x, double y, double r): (6) _x=x; _y=y; _r=r; void draw()drawCircle(_x, _y, _r); ; 15 阅读下列说明和 Java代
19、码,将应填入 (n)处的字句写在答题纸的 对应栏内。【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表 6 1所示。该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接 (Bridge)模式来实现上述要求,得到如图 6 1所示的类图。 【 Java代码】 (1)Drawing (2) ; (3) ; clasS DP1 static public void draw_a_line(double x1,double y1, double x2, doubley2) *代码省略 * static p
20、ublic void draw_a_circle(double x, double y, double r) *代码省略 * clas S DP2 static public void drawline(double x1, double y1, double x2, double y2) *代码省略 * static public void drawcircle(double x, double y, double r) *代码省略 * class V1Drawing implements Drawing public void drawLine(double x1, double y1,
21、double x2, double y2) *代码省略 * public void draw Circle(double X, double Y,double r) (4) ; clasS V2Drawing implements Drawing public void drawLine(double xl, double yl, double x2, double y2) *代码省略 * public void drawCircle(double X, double Y, double r) (5) ; abstract class Shape private Drawing_dp; (6)
22、 ; Shape(Drawing dp)_dp=dp; publ ic void drawLine(double x1, double y1, double x2, double y2) dp drawLine(x1, y1, x2, y2); public void drawCirle(double x, double y, double r)_dp draw Circle(x, y, r); clas S Rectangle extends Shape private double_x1, _x2, _y1, _y2; publ ic Rectangle(Drawing dp, doubl
23、e x1, double y1, double x2, doubley2) *代码省略 * ) public void draw() *代码省略 * clas S Circle extends Shape private double X,一 Y,一 r; public Circle(Drawing dp, double X, double Y, double r) *代码省略 * public void draw()drawCirle(_x, _y, _r); ) 2013年下半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷答案与解析 一、必答题(共 4道大题,每道大题 15分
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2013 年下 半年 软件 水平 考试 中级 设计师 下午 应用技术 试题 答案 解析 DOC

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