1、中级软件设计师下午试题-102 及答案解析(总分:105.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明干部信息管理系统(CMIS)是用于对干部信息进行管理的特定系统。利用该系统,干部科可以对本单位干部信息进行管理,根据不同命令对信息进行增、删、改、内部调动,打印人事表格,进行统计、检索。干部科输入的系统命令需要合法性检查才能被接受、处理。系统命令可以是检索命令、统计命令、打印命令、维护命令中的任何一种。干部科的输入的干部信息数据包括输入信息、检索项、统计项、打印项、维护项等条目。一个完整的输入信息应包括干部的档号、干部的姓名、干部的性别、干部的年龄、干部的级别、干
2、部的职称、干部的政治面貌等内容。系统进行检索处理时可以根据干部的档号、姓名或年龄进行简单检索,也可以根据“档号+姓名”或者“性别+年龄”进行组合检索。系统进行统计处理时,可以根据干部的性别、年龄或职称进行简单统计,也可以根据“年龄+职称”或“性别+职称”进行综合统计。通过系统授权,用户可以对系统进行维护。当用户需要对系统进行维护时,输入维护命令,得到合法性确认后,可以对系统数据库信息进行修改维护。维护命令包括:增加命令,根据输入信息增加干部信息;修改命令,根据修改项修改干部信息;检索命令,根据检索项检索干部信息。系统可以输出统计信息、人事表格、检索信息以供干部科用户使用。干部信息管理系统的顶层
3、图如图 9-1 所示;干部信息管理系统的第 0 层 DFD 图如图 9-2 所示,其中,加工3 的细化图如图 9-3 所示。1. 问题 1数据流图 9-1 缺少了一条数据流(在图 9-2 中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。(分数:15.00)_二、试题二(总题数:1,分数:15.00)说明一个描述学校的部分关系模式的结果描述如下:1一个系有若干学生,但一个学生只能在一个系;2一个系只有一名主任;3一个学生可以选修多门课程,每门课程有若干学生选修;4每个学生所学的每门课程都有一个成绩;5“学生”和“课程表”及“选课表”的关系示例分别如表 9-1、
4、表 9-2、表 9-3 所示。Student(学生表)的字段按顺序为学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所属院系(Sdept)、系主任(Smaster);Course(课程表)的字段按顺序为课程编号(Cno)、课程名(Cname)、先行课程(Cpno)、课程学分 (Ccredit);SC(选课表)的字段按顺序为学号(Sno)、课程号(Cno)、成绩(Grade)。各表的记录如下:表 9-1 StudentSno Sname Ssex Sage Sdept Smaster95001 李勇 男 20 CS 王平95002 刘晨 女 19 IS 周言95003 王
5、明 女 18 MA 展评95004 张立 男 19 IS 周言表 9-2 Course Cno Cname Cpno Ceredit1 数据库 5 42 数学 23 信息系统 1 44 操作系统 6 35 数据结构 7 46 数据处理 27 PASCAL 6 4表 9-3 SC Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 3 801. 问题 1试分析该关系模式中的函数依赖,并指出关系模式的候地选码。(分数:15.00)_三、试题三(总题数:1,分数:15.00)说明下面是某公司开发的电梯管理系统,系统功能如下:1响应用户
6、召唤指令。当用户需要电梯时可以通过按楼层面板召唤。2进入电梯后,乘客可以通过电梯面板选择目的楼层。3当电梯到达调度楼层后,判断是否响应停止运行,开启电梯门,完成调度。4当电梯到达非调度楼层时,不作响应,继续运行。5乘客在电梯中能够知道电梯的运动状态,如运动方向、电梯运行到的楼层等。6电梯超载报警。系统采用面向对象方法进行开发。在开发过程中某设计室设计的电梯管理系统用例如表 9-4 所示。电梯管理系统用例图如图 9-4 所示。表 9-4 系统用例说明/B用例名称 描述电梯召唤 当用户需要使用电梯时,通过按楼层面板通知电梯管理系统目的地请求 进入电梯后,乘客可以通过电梯面板选择目的楼层电梯到达调度
7、楼层当电梯到达调度楼层后,判断是否响应,如果响应则停止运行,开户电梯门,完成调度,否则继续运行电梯到达非调度楼层 当电梯到达非调度楼层时,不作响应,继续运行电梯就绪 电梯不处于忙状态,但符合运行要求,随时可以召唤电梯超载 电梯所载重量超过额定载荷,给出报警信号,停止运行电梯不超载 电梯所载重量没有超过额定载荷,可以正常运行(分数:15.00)_四、试题四(总题数:1,分数:15.00)1.说明以下 C 程序实现了将字符串转化为浮点数的功能。例如字符串“1234567”转化为浮点数 1234567;字符串“100.02035”转化为浮点数 100.02035;字符串“-100.02035”转化为
8、浮点数-100.02035。程序中的部分变量的含义如表 9-5。表 9-5变量名 含 义intpart 字符串转化为浮点数后的整数部分doublepart 字符串转化为浮点数后的小数部分kdouble 记录小数部分的阶次resoult 字符串转化为浮点数后的结果psign 字符串转化为浮点数后的符号标识C 程序double StrToDouble(char*s)char hexch=“0123456789“;int i,j,psign=1;DWORD n,k,intpart=0;double doublepart=0,kdouble,resoult;char ch;if (*s=.(1) ;(
9、2) ;char*s1=s,*temp=NULL;temp=strrchr ( s1,. );if (!temp)k=1; intpart=0;for (i=strlen (s); i0;i-)ch=si-1;if (ch0x3f) chn=0;for (j=0; j10; j+)if ( ch=hexchj) n=j;intpart+= (n*k);k*=10;elses1=temp+1;kdouble=0.1;doublepart=0;for (3) )ch=s1i-1;if (ch0x3f) chn=0;for (j=0; j10; j+ )if (ch=hexchj)n=j;doubl
10、epart+= (n*kdouble);(4) ;*temp=NULL;k=1; intpart=0;for (5) ;)ch=si-1;if (ch0x3f) chn=0;for (j=0; j10; j+)if (ch=hexchj) n=j;intpart+= (n*k);k*=10;/end else(6) ;return resoult;(分数:15.00)_五、试题五(总题数:1,分数:15.00)2.说明以下 C+代码使用虚函数实现了同一基类 shape 派生出来的 Class rectangle、Class triangle、Class circle 实现了计算矩形、圆形面积的
11、计算。仔细阅读以下代码,将 (n) 处语句补充完整。代码 5-1#includeiostream.h#define PI 3.14159class shape /基类protected:(1) ;public:(2) ;(3) ;代码 5-2class rectangle: public shape public:rectangle (int x2,int y2,int r2): (4) ;double area ( ) return x*y; ;class circle: public shape public:circle (int x3,int y3,int r3): (5) ;doub
12、le area ( ) return r*r*PI; ;代码 5-3void main ( )rectangle r (10,20,0);circle c (0,0,30);shape (6) ;cout“长方形面积=“s1-area ( ) endl;cout“圆形面积=“s2-area ( ) endl;运行结果长方形面积=200圆形面积=2827.43(分数:15.00)_六、试题六(总题数:1,分数:15.00)3.说明以下 JAVA 程序实现了在接口 interface iShape2D 的定义和应用,仔细阅读代码和相关注释,将程序补充完整。代码 6-1interface iShap
13、e2D /定义接口(1) (2) (3) /实现 CRectangle 类int width, height;(4) CRectangle (int w,int h) width=w;height=h;public void area ( ) /定义 area( )的处理方式System. out.println (“area=“+width*height);(5) /实现 CCircle 类double radius;(6) CCircle (double r) radius=r;public void area ( ) /定义 area( )的处理方式System.out.println
14、(“area=“+pi*radius*radius);代码 6-2public class app10_4public static void main(String args)CRectangle rect=new CRectangle (5,10);rect.area ( ); /调用 CRectangle 类里的 area ( ) methodCCircle cir=new CCircle (2.0);cir.area ( ); /调用 CCircl 类里的 area ( ) method(分数:15.00)_七、试题七(总题数:1,分数:15.00)4.说明以下 Visual Basi
15、c 代码实现了系统登录时对用户进行合法性检查。界面如图 9-6 所示。阅读下面代码,将 (n) 处代码补充完整。(分数:15.00)_中级软件设计师下午试题-102 答案解析(总分:105.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明干部信息管理系统(CMIS)是用于对干部信息进行管理的特定系统。利用该系统,干部科可以对本单位干部信息进行管理,根据不同命令对信息进行增、删、改、内部调动,打印人事表格,进行统计、检索。干部科输入的系统命令需要合法性检查才能被接受、处理。系统命令可以是检索命令、统计命令、打印命令、维护命令中的任何一种。干部科的输入的干部信息数据包括输
16、入信息、检索项、统计项、打印项、维护项等条目。一个完整的输入信息应包括干部的档号、干部的姓名、干部的性别、干部的年龄、干部的级别、干部的职称、干部的政治面貌等内容。系统进行检索处理时可以根据干部的档号、姓名或年龄进行简单检索,也可以根据“档号+姓名”或者“性别+年龄”进行组合检索。系统进行统计处理时,可以根据干部的性别、年龄或职称进行简单统计,也可以根据“年龄+职称”或“性别+职称”进行综合统计。通过系统授权,用户可以对系统进行维护。当用户需要对系统进行维护时,输入维护命令,得到合法性确认后,可以对系统数据库信息进行修改维护。维护命令包括:增加命令,根据输入信息增加干部信息;修改命令,根据修改
17、项修改干部信息;检索命令,根据检索项检索干部信息。系统可以输出统计信息、人事表格、检索信息以供干部科用户使用。干部信息管理系统的顶层图如图 9-1 所示;干部信息管理系统的第 0 层 DFD 图如图 9-2 所示,其中,加工3 的细化图如图 9-3 所示。1. 问题 1数据流图 9-1 缺少了一条数据流(在图 9-2 中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。(分数:15.00)_正确答案:(数据流名称:“系统命令”,起点为“干部科”,终点为“干部信息系统”(或 CMIS)。)解析:解析试题一本题设计了干部信息管理系统(CMIS)。对于问题 1,已知“
18、数据流图 9-1 缺少了一条数据流”,那么分析数据流图 9-1,对比说明文档可知,干部科需要输入系统命令,才能对系统进行管理,那么数据流图 9-1 缺少的数据流名称就是“系统命令”,起点为“干部科”,终点为“干部信息系统”(或 CMIS)。(图 9-2 也缺少“系统命令”,指向“检索命令合法性 1”。)问题 2。图 9-3 是图 1-2 中加工 3“维护数据库 3”的细化,仔细对比图 9-2 和图 9-3,可知缺少的数据流名称为“维护项”;方向为流向“维护数据库 3”加工。问题 3。阅读说明可得。_正确答案:(数据流名称:“维护项”;方向:流向“维护数据库 3”加工。)解析:_正确答案:(干部
19、信息=输入信息|检索项|统计项|打印项|维护项;输入信息=档号+姓名+性别+年龄+级别+职称+政治面貌;检索项=档号|姓名|年龄|档号+姓名|性别+年龄|;统计项=性别|年龄|职称|年龄+职称|性别+职称;)解析:二、试题二(总题数:1,分数:15.00)说明一个描述学校的部分关系模式的结果描述如下:1一个系有若干学生,但一个学生只能在一个系;2一个系只有一名主任;3一个学生可以选修多门课程,每门课程有若干学生选修;4每个学生所学的每门课程都有一个成绩;5“学生”和“课程表”及“选课表”的关系示例分别如表 9-1、表 9-2、表 9-3 所示。Student(学生表)的字段按顺序为学号(Sno
20、)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所属院系(Sdept)、系主任(Smaster);Course(课程表)的字段按顺序为课程编号(Cno)、课程名(Cname)、先行课程(Cpno)、课程学分 (Ccredit);SC(选课表)的字段按顺序为学号(Sno)、课程号(Cno)、成绩(Grade)。各表的记录如下:表 9-1 StudentSno Sname Ssex Sage Sdept Smaster95001 李勇 男 20 CS 王平95002 刘晨 女 19 IS 周言95003 王明 女 18 MA 展评95004 张立 男 19 IS 周言表 9-2 Cou
21、rse Cno Cname Cpno Ceredit1 数据库 5 42 数学 23 信息系统 1 44 操作系统 6 35 数据结构 7 46 数据处理 27 PASCAL 6 4表 9-3 SC Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 3 801. 问题 1试分析该关系模式中的函数依赖,并指出关系模式的候地选码。(分数:15.00)_正确答案:(在该关系模式中,存在以下函数依赖:学号姓名 学号所在系 所在系系主任(学号,课程名)成绩系主任传递的依赖学号;该关系模式的候选码为(学号,课程名);姓名、所在系部分依赖候
22、选码。)解析:解析试题二本题考查的是基础知识,考生如果掌握对关系模式和 SQL 语言的相关知识可得出答案。_正确答案:(1)Sname, Ssex(2)Student(3)Sdept IN(IS,CS)解析:_正确答案:(1)Student.Sno,Sname,Course.Cname,SC.Grade(2)Student,SC,Course(3)Student.Sno=SC.Sno and SC.Cno=Course.Cno;)解析:三、试题三(总题数:1,分数:15.00)说明下面是某公司开发的电梯管理系统,系统功能如下:1响应用户召唤指令。当用户需要电梯时可以通过按楼层面板召唤。2进入电
23、梯后,乘客可以通过电梯面板选择目的楼层。3当电梯到达调度楼层后,判断是否响应停止运行,开启电梯门,完成调度。4当电梯到达非调度楼层时,不作响应,继续运行。5乘客在电梯中能够知道电梯的运动状态,如运动方向、电梯运行到的楼层等。6电梯超载报警。系统采用面向对象方法进行开发。在开发过程中某设计室设计的电梯管理系统用例如表 9-4 所示。电梯管理系统用例图如图 9-4 所示。表 9-4 系统用例说明/B用例名称 描述电梯召唤 当用户需要使用电梯时,通过按楼层面板通知电梯管理系统目的地请求 进入电梯后,乘客可以通过电梯面板选择目的楼层电梯到达调度楼层当电梯到达调度楼层后,判断是否响应,如果响应则停止运行
24、,开户电梯门,完成调度,否则继续运行电梯到达非调度楼层 当电梯到达非调度楼层时,不作响应,继续运行电梯就绪 电梯不处于忙状态,但符合运行要求,随时可以召唤电梯超载 电梯所载重量超过额定载荷,给出报警信号,停止运行电梯不超载 电梯所载重量没有超过额定载荷,可以正常运行(分数:15.00)_正确答案:(运行方向标识:电梯应该有这种机制,即让乘客知道电梯目前的运动方向,决定是否进电梯。电梯位置标识:电梯应该让乘客知道其的目的层是否到达,决定是否离开电梯。(注:不要求文字相同,意义相近即可)解析:解析试题三本题为 UML 建模应用题。仔细阅读文档说明和用例说明,结合平时的应用习惯,不难发现用例设计时忽
25、略了电梯运行方向标示和电梯位置标示。当然,考生如果还有更好的想法,只要合理就可认为正确,设计此题的目的在于考查考生运用 UML 建模的能力。问题 1 答案,并不惟一,合理就可得分。问题 2。根据说明文档和用例说明,可以得出状态之间的转移逻辑关系。例如,从“空闲”状态转移到“忙”状态的条件是“电梯响应目的地请求”,即(1)选 G。用同样的方法分析可得其他答案。问题 3。考查的是基本概念。_正确答案:(1(G) 2(C) 3(B) 4(D) 5(E) 6(H) 7(F) 8(A)解析:_正确答案:(根据 Steve Cook 和 John Danils 的观点,类图可以分为三个层次:概念层(Con
26、septual)、说明层 (Specification)和实现层(Implementation)。其中概念层的概念模型与实现它的软件无关,独立于程序设计语言。说明层中主要关心的是软件的类型(type,即软件接口部分),而不是软件的类(class,即实现部分)。只有在实现层才有类的概念,并说明软件的实现部分。使用类图时,要根据项目开发的不同阶段来正确绘制类图,如在软件分析阶段,应该使用概念层类图;在软件设计阶段,使用说明层类图;在考虑实现软件系统中的某部分时,则应用实现类图。)解析:四、试题四(总题数:1,分数:15.00)1.说明以下 C 程序实现了将字符串转化为浮点数的功能。例如字符串“12
27、34567”转化为浮点数 1234567;字符串“100.02035”转化为浮点数 100.02035;字符串“-100.02035”转化为浮点数-100.02035。程序中的部分变量的含义如表 9-5。表 9-5变量名 含 义intpart 字符串转化为浮点数后的整数部分doublepart 字符串转化为浮点数后的小数部分kdouble 记录小数部分的阶次resoult 字符串转化为浮点数后的结果psign 字符串转化为浮点数后的符号标识C 程序double StrToDouble(char*s)char hexch=“0123456789“;int i,j,psign=1;DWORD n,
28、k,intpart=0;double doublepart=0,kdouble,resoult;char ch;if (*s=.(1) ;(2) ;char*s1=s,*temp=NULL;temp=strrchr ( s1,. );if (!temp)k=1; intpart=0;for (i=strlen (s); i0;i-)ch=si-1;if (ch0x3f) chn=0;for (j=0; j10; j+)if ( ch=hexchj) n=j;intpart+= (n*k);k*=10;elses1=temp+1;kdouble=0.1;doublepart=0;for (3)
29、)ch=s1i-1;if (ch0x3f) chn=0;for (j=0; j10; j+ )if (ch=hexchj)n=j;doublepart+= (n*kdouble);(4) ;*temp=NULL;k=1; intpart=0;for (5) ;)ch=si-1;if (ch0x3f) chn=0;for (j=0; j10; j+)if (ch=hexchj) n=j;intpart+= (n*k);k*=10;/end else(6) ;return resoult;(分数:15.00)_正确答案:(1)psign=-1(2)s=(s+1)(3)i=1; i=strlen (
30、s1); i+(4)kdouble*=0.1; (5)i=strlen (s); i0;i-(6)resoult= (intpart+doublepart)*psign)解析:解析本题实现了数字字符串转换成浮点数的程序设计。程序中含空的语句功能分别是:(1)记录符号。如“-0.01”。(2)将字符串中的“-”号剔除;(3)转换所有小数部分;(4)记录小数点阶数;(5)转换所有整数部分;(6)整合小数和整数部分。五、试题五(总题数:1,分数:15.00)2.说明以下 C+代码使用虚函数实现了同一基类 shape 派生出来的 Class rectangle、Class triangle、Class
31、 circle 实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将 (n) 处语句补充完整。代码 5-1#includeiostream.h#define PI 3.14159class shape /基类protected:(1) ;public:(2) ;(3) ;代码 5-2class rectangle: public shape public:rectangle (int x2,int y2,int r2): (4) ;double area ( ) return x*y; ;class circle: public shape public:circle (int x3,int
32、y3,int r3): (5) ;double area ( ) return r*r*PI; ;代码 5-3void main ( )rectangle r (10,20,0);circle c (0,0,30);shape (6) ;cout“长方形面积=“s1-area ( ) endl;cout“圆形面积=“s2-area ( ) endl;运行结果长方形面积=200圆形面积=2827.43(分数:15.00)_正确答案:(1)intx,y,r;(2)shape (int x1,int y1,int r1): x(x1),y(y1),r(r1);(3)double virtual ar
33、ea ()=0;(4)shape (x2,y2,r2)(5)shape (x3,y3,r3)(6)*s1=height=h;public void area ( ) /定义 area( )的处理方式System. out.println (“area=“+width*height);(5) /实现 CCircle 类double radius;(6) CCircle (double r) radius=r;public void area ( ) /定义 area( )的处理方式System.out.println (“area=“+pi*radius*radius);代码 6-2public
34、 class app10_4public static void main(String args)CRectangle rect=new CRectangle (5,10);rect.area ( ); /调用 CRectangle 类里的 area ( ) methodCCircle cir=new CCircle (2.0);cir.area ( ); /调用 CCircl 类里的 area ( ) method(分数:15.00)_正确答案:(1)final double pi=3.14;(2)abstract void area ();(3)class CRectangle impl
35、ements iShape2D(4)public(5)class CCircle implements iShape2D(6)public)解析:解析本题 JAVA 程序实现了接口 interface iShape2D 的定义和应用。(1)和(2)定义 pi 和面积函数 area(),可从下文得到,它们位置可以互换。(3)定义 Crectangle,继承 iShape2D。(4)应该为 public 关键字。(5)定义 CCircle,继承 iShape2D。(6)应该为 public 关键字。七、试题七(总题数:1,分数:15.00)4.说明以下 Visual Basic 代码实现了系统登录
36、时对用户进行合法性检查。界面如图 9-6 所示。阅读下面代码,将 (n) 处代码补充完整。(分数:15.00)_正确答案:(1)myrs.EOF=False(2)myrs.BOF=False(3)master.Addltem (myrs.Fields (0)(4)myrs.MoveNext(5)master.ListCount0(6)myrs.NoMatch)解析:解析本题中 Visual Basic 代码实现了系统登录时对用户进行合法性检查。(1)根据满足条件后,实现“myrs.MoveLast”操作,那么,这个条件就是 myrs.EOF=False。同理(2)为 myrs.BOF=False。(3)、(4)完成用户名添加到数据库中,作为合法用户,答案分别应为 master.Addltem (myrs.Fields(0)和myrs.MoveNext。对于(5)当 master 的 ListCount 不是 0 时(当然大于 0 了),将 master 的 Listlndex 置为初始 0 位置。(6)输入用户名与数据库中的用户不匹配,即 myrs.NoMatch 时,“无此操作员!”输出报警。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1