ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:266.50KB ,
资源ID:507190      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-507190.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷24及答案与解析.doc)为本站会员(rimleave225)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷24及答案与解析.doc

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 24及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读下列说明和数据流图,回答问题 1至问题 3。 【说明】 某供销系统接受顾客的订货单,当库存中某配件的数量小于订购量或库存量低于一定数量时,向供应商发出采货单;当某配件的库存量大于或等于订购量时,或者收到供应商的送货单时并更新了库存后,向顾客发出提货单。该系统还可随时向总经理提供销售和库存情况表。 以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图 9-8是顶层数据流图,图 9-9所示是第 0层数据流图,图 9-10是第 1层数

2、据流图,其中 (A)是加工 1的子图, (B)是加工 2的子图。【数据字典】 (1)数据流条目 订货单 =配件号 +配件名 +规格 +数量 +顾客名 +地址 提货单 =订货单 +金额 采货单 =配件号 +配件名 +规格 +数量 +供应商名 +地址 送货单 =配件号 +配件名 +规格 +数量 +金额 (2)文件说明 文件名:配件库存 组成: 配件号 +配件名 +规格 +数量 +允许的最低库存量 1 根据题意,图 9-9中哪个文件可不必画出。 2 根据题意,指出图 9-10(A)中缺失 的数据流的名称,并指出该数据流的起点和终点。 3 根据题意,指出图 9-10(B)中缺失的数据流的名称,并指出该

3、数据流的起点和终点。 4 阅读下列说明和图,回答问题 1至问题 3。 【说明】 某学校的教学系统描述如下。 学生信息包括:学号 (Sno)、姓名 (Sname)、性别 (Ssex)、年龄 (Sage)、入学年份 (Syear)、主修专业 (Smajor),其中学号是入学时唯一编定的。 教师信息包括:教工号 (Tno)、姓名 (Tname)、性别 (Tsex)、年龄 (Tage)、职称 (Ttitle),其中教工号是唯一 编定的。 课程信息包括:课程号 (Cno)、课程名称 (Cname)、学时 (Cperiod)、学分(Ccredit),其中课程号是唯一编定的。 每个专业每个年级只有一个班级,

4、这样班级就可用入学年份标识。 每位教师只教授特定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所不同。注意:一门课程至少有一位教师教授,否则这门课程就视为不存在。 每位学生可以同时选修多门不同的课程,一门课程至少要有 10位学生选修,否则就取消这门课程的开设。注意:选修课程时要指定任课教师,不能重复选修同一门课程。课 程结束后,任课教师给选修该课程的学生一个成绩 (Grade)。注意:教师不能给没有选修他所教授课程的学生成绩,即使选修了其他教师教授的同一门课也不行。 如图 9-11所示是经分析得到的 E-R图。4 根据题意,给出联系的属性。实体间的联系有 “一对一 ”

5、、 “一对多 ”和 “多对多 ”,指出各联系分别属于哪一种。 5 按照 “有关模式名 (属性,属性, .)”的格式,将此 E-R图转换为 5个关系模式,指出每个关系模式中的主键和外键,其中模式名根据需要取实体名或联系名。 6 若用 Student表存储学生信息, Teacher表存储教师信息, Course表存储课程信息, Study表存储学生选修课程情况。教务处想要 “查询 2006年入学的计算机专业(CS)的学生中平均成绩在 85分以上的学生信息 ”。请将以下 SQL语句补充完整。注:用对应英文表示。 SELECT *FROM Student WHERE Smajor=“CS“ AND S

6、year=“2006“ AND(1) (SELECT Sno FROM Study GROUP BY Sno HAVING(2) 7 阅读下列说明和图,回答问题 1至问题 3。 【说明】 某大型旅店为了便于管理,欲开发一个客房管理系统。希望实现客房预订、入住登记、账务结算、退房,以及将服务项目记入客人账单。 旅客包括散客和团体,散客预订或入住时需要提供姓名、性别、身份证和联系电话,团体则提供团体名称、负责人的姓名、性别、身份证和联系电话,以及团体人数。对于散客,还要提供换房。 旅店还提供了很多服务项目,比如早餐。对每一个入住客人,服务列表记录了住宿期间的各项服务,包括服务类型、日期、数量等。当

7、 然,客人也可以不要任何服务。 旅店的客房有一个唯一的房间号,分为不同的类别,不同的房间床位数和价格不同。 为了有效的管理,需要记录每天的客房状态。客房的状态有:空闲、占用、已预订和维修。 . 客人入住后,客房处于占用状态。 . 客人退房后,客房处于空闲状态。 . 客人预订后,客房处于已预订状态。 . 预订客人入住后,客房处于占用状态。 . 预订客人取消预订后客房处于空闲状态。 . 需要维修时客房处于维修状态。 . 维修完成后客房处于空闲状态。 该系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图 表示,如图 9-12所示是该系统的类图的一部分,图 9-13描述了客房状态的转变情况

8、。7 请用如图 9-12所示的属性和方法的名称给出客人类的属性和方法 (注意;团体类中的负责人姓名等与散客的对应属性含义相同,不必区分 )。 8 在 UML中,重复度 (Multiplicity)定义了某个类的一个实例可以与另一个类的多少个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。例如图 9-12中的类客人和住宿,客人端的 “1”表示:一个住宿类的实例只能与一个客人类的实例相关联;住宿类端的 “0*”表示 :一个住宿类的实例可以与 0个或多个客人类的实例相关。请指出图 9-12中 (1)到 (4)处的重复度分别为多少 ? 9 根据题意,请指出图 9-13中状态 A、 B

9、分别是什么状态,事件 C、 D分别是什么事件。 10 阅读下列函数说明、图和 C代码,将应填入 (n)处的字句写在对应栏内。 【说明】 当一元多项式 aixi中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和对应系数。 为了便于进行运算,用带头节点的单链表存储,头节点中存储多项式中的非零项数,且各节点按指数递减顺序存储。例如:多项式 8x5-2x2+7的存储结构为: 函数中使用的预定义符号如下: #define EPSI le-6 struct Node( /*多项式中的一项 */ double c; /*系数 */ int e; /*指数 */ struct Node

10、*next; ; typedef struct /*多项式头节点*/ int n; /*多项式不为零的项数 */ struct Node *head; POLY; 【函数】 void Del(POLY *C, struct Node *p) /*若 p是空指针则删除头节点,否则删 除 p节点的后继 */ struct Node *t; /*C是空指针或 C没有节点 */ if(C=NULL|C-head=NULL)return; if(1)/*删除头节点 */ t=C- head; C- head=t- next; return; /*if*/ t=p- next; p- next=t- ne

11、xt; ;/*Del*/ void Insert(POLY *C, struct Node *pC) /*将 pC节点按指数降序插入到多项式 C中 */ /*若 C中存在 pC对应的指数项,则 将系数相加;若其结果为零,则删除该节点 */ struct Node *t, *tp; /*pC为空指针或其系数近似为零 */ if(pC=NULL | fabs(pC- c) EPSI)return; if(C-head=NULL) /*若 C为空 , 作为头节点插入 */ C- head=pC; pC- next=NULL; C- n+; return; /*if*/ /*若 pC的指数比头节点的还

12、大 , 插入到头节点之前 */ if(pC- e C- head- e) (2); C- head=pC; C- n+; return; /*if*/ (3); t=C- head; while(t!=NULL) if(t- e pC- e) tp=t; t=t- next; else if(t- e=pC- e)/*C中已经存在该幂次项 */ t- c+=pC- c;/*系数相加 */ if(fabs(t- c) EPSI)/*系数之和为零 */ (4);/*删除对应节点 */ C- n-; (5); else t=NULL;/*C中已经不存在该幂次项 */ /*while*/ if(t=N

13、ULL)/*适当位置插入 */ pC- next=tp- next; tp- next=pC; C- n+; /*if*/ ;/*Insert*/ 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 11 阅读以下函数说明和 Java代码,将应填入 (n)处的字句写在对应栏内。 【说明】 现要编写一个画矩形的程序,目前有两个画图程序: DP1和 DP2, DP1用函数draw_a_line(x1, y1, x2, y2)画一 条直线, DP2则用 drawline(x1, x2, y1, y2)画一条直线。

14、当实例画矩形时,确定使用 DP1还是 DP2。 为了适应变化,包括 “不同类型的形状 ”和 “不同类型的画图程序 ”,将抽象部分与实现部分分离,使它们可以独立地变化。这里, “抽象部分 ”对应 “形状 ”, “实现部分 ”对应 “画图 ”,与一般的接口 (抽象方法 )与具体实现不同。这种应用称为 Bridge(桥接 )模式。图 9-6显示了各个类间的关系。 这样,系统始终只处理 3个对象: Shape对象、 Drawing对象、 DP1或 DP2对象。以下是 Java语言实现,能够 正确编译通过。 【 Java代码】 /DP1.java文件 public class DP1 static pu

15、blic void draw_a line(double x1,double y1, double x2,double y2) /省略具体实现 /DP2.java文件 public class DP2 static public void drawline(double x1,double y1, double x2,double y2) /省略具体实现 /Drawing.java文件 (1) public class Drawing abstract public void drawLine(double x1, double y1, double x2, double y2); /V1Dr

16、awing.java文件 public class V1Drawing extends Drawing public void drawLine(double x1, double y1, double x2, double y2) DP1.draw_a_line(x1,y1,x2,y2); /V2Drawing.java文件 public class V2Drawing extends Drawing public void drawLine(double x1,double y1, double x2, double y2)(/画一条直线 (2); /Shape.java文件 abstra

17、ct public class Shape abstract public void draw(); private (3) _dp; Shape(Drawing dp) _dp=dp; protected void drawLine(double x1,double y1, double x2, double y2) (4); /Rectangle.java文件 public class Rectangle extends Shape private double_x1,_x2,_y1,_y2; public Rectangle(Drawing dp, double x1,double y1

18、, double x2,double y2) (5); _x1=x1;_x2=x2; _y1=y1;_y2=y2; public void draw() /省略具体实现 12 阅读以下说明和 c+代码,将应填入 (n)处的字句写在对应栏内。 【说明】 现要编写一个画矩形的程序,目前有两个画图程序: DP1和 DP2, DP1用函数draw_a_line(x1, y1, x2, y2)画一条直线, DF2则用 drawline(x1, x2, y1, y2)画一条直线。当实例画矩形时,确定使用 DP1还是 DP2。为了适应变化,包括 “不同类型的形状 ”和 “不同类型的画图程序 ”,将抽象部分与

19、实现部分分离,使它们可以独立地变化。这里, “抽象部分 ”对应 “形状 ”, “实现 部分 ”对应 “画图 ”,与一般的接口 (抽象方 法 )与具体实现不同。这种应用称为 Bridge(桥接 )模式。图 9-7显示了各个类间的关系。 这样,系统始终只处理 3个对象: Shape对象、 Drawing对象、 DP1或 DP2对象。以下是 C+语言实现,能够正确编译通过。 【 C+代码】 class DP1 public: static void draw_a_line(double x1, double y1,double x2, double y2) /省略具体实现 ); class DP2

20、public: static void drawline(double x1, double x2,double y1, double y2) /省略具体实现 ; class Drawing public: (1) void drawLine(double x1,double y1,double x2,double y2)=0; ; class V1Drawing:public Drawing public: void drawLine(double x1, double y1,double x2, double y2) DP1:draw_a_line(x1,y1,x2,y2); ; clas

21、s V2Drawing:public Drawing public: void drawLine(double x1, double y1, double x2, double y2) (2); ; class Shape private: (3) _dp; public: Shape(Drawing *dp); virtual void draw()=0; void drawLine(double x1, double y1, double x2, double y2); ; Shape:Shape(Drawing *dp) _dp = dp; void Shape:drawLine(dou

22、ble x1, double y1, double x2, double y2) /画一条直线 (4); class Rectangle: public Shape private: double _x1,_y1,_x2,_y2; public: Rectangle(Drawing *dp, double x1, double y1, double x2, double y2); void draw(); ; Rectangle:Rectangle(Drawing *dp, double x1, double y1, double x2, double y2) :(5) _x1=x1;_y1=

23、y1;_x2=x2;_y2=y2; void Rectangle:draw() /省略具体实现 软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 24答案与解析 一、必答题(共 4道大题,每道 大题 15分) 1 【正确答案】 采购订单 【试题解析】 分层数据流图中,只涉及单个加工的文件不必画出,可在子图中再画。 依此标准,图 9-10中文件 “采购订单 ”只与加工采购有关,故不必画出。 2 【正确答案】 起点:库存配件,终点:确定顾客订单。 起点:库存配件,终点:制作的销售及库存情况表。 提货单,起点:更新库存,终点:顾客。 到货通知,起点;采购,终点:缺到货对照。 【试题解析】

24、分层数据流图时刻牢记父图与子图平衡原则。对这种数据流缺失题目,认真对照父图与子图就可得出答案。另外 ,还要注意与文件的交互,包括错误数据流大多也是出在此。 根据题述,图 9-11A是加工 1的细化图,加工 1在图 9-10中,认真对照其输入输出数据流。发现缺失数据流 “提货单 ”和 “到货通知 ”,进一步确定数据流的起点和终点。 “提货单 ”是输出数据流,起点应为加工 “更新库存 ”,其终点自然是 “客户 ”; “到货通知 ”是输入数据流,终点应为加工 “缺到货对照 ”,起点应为加工 “采购 ”。 另外,确定顾客订单时,需要检查库存配件,因此应有文件 “配件库存 ”到加工1.2的数据流。同理,

25、也应有文件 “配件库存 ”到加工 1.4的数据流。 3 【正确答案】 采购单,起点:按供应商汇总,终点:供应商。 采购请求,起点:销售,终点:计算配件增量。 【试题解析】 同问题 2的分析,仔细对照父图与子图的输入输出数据流,并确认与文件相关的数据流。 4 【正确答案】 教授:上课地点、上课时间,一对多 选修:任课教师、成绩,多对多 【试题解析】 “每位教师只教授特定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所不同 ”,因此联系 “教授 ”的属性应有:上课地点、上课时间,是一对多联系。 “每位学生可以同时选修 多门不同的课程,一门课程至少要有 10位学生选修, 选

26、修课程时要指定任课教师, 任课教师给选修该课程的学生 个成绩 (Grade)”,因此联系 “选修 ”的属性应有:任课教师、成绩,是多对多联系。 5 【正确答案】 教师 (教工号,姓名,性别,年龄,职称 ),主键:教工号 课程 (课程号,课程名称,学时,学分 ),主键:课程号 学生 (学号,姓名,性别,年龄,主修专业,入学年份 ),主键:学号 教授 (教工号,课程号,上课地点,上课时间 ),主键: (教工号 ) 选修 (学号,课程号,任课教师,成绩 ),主键: (学号,课程号 )或 (学号,任课教师 ) 【试题解析】 E-R模型向关系模型的转换应遵循如下原则: 每个实体类型转换成一个关系模式。

27、一个 1:1的联系 (一对一联系 )可转换为一个关系模式,或与任意一段的关系模式合并。若独立转换为一个关系模式,那么两端关系的键及其联系的属性为该关系的属性;若与一段合并,那么将另一端的键及属性的属性合并到该端。 一个 1:n 的联系 (一对多联系 )可转换为一个关系模式,或与 n 段的关系模式合并。若独立转换为一个关系模式,那么两端关系的键及其联系的属性为该关系的属性,而 n端的键为关系 的键。 一个 n:m的联系 (多对多联系 )可转换为一个关系模式,两端关系的键及其联系的属性为该关系的属性,而关系的键为两端实体的键的组合。 3个或 3个以上多对多的联系可转换为一个关系模式,诸关系的键及联

28、系的属性为关系的属性,而关系的键为各实体的键的组合。 具有相同键的关系可以合并。 由于 “每位教师只教授特定的一门的课程 ( 学生 )不能重复选修同一门课程 ”,因此教授联系的主键是 “教工号 ”,修选联系的主键可以是 “(学号,课程号 )”,也可以是 “(学号,任课教师 )”。 6 【正确答案】 (1)Sno IN (2) AVG(Grade) 85 【试题解析】 SELECTALL|DISTINCT目标列表达式 ,目标列表达式 FROM表名或视图名 ,表名或视图名 WHERE条件表达式 GROUP BY列名 1 HAVING条件表达式 ORDER BY列名 2 ASC|DESC 子句顺序为

29、 SELECT、 FROM、 WHERE、 GROUPBY、 HAVING、ORDERBY,但 SELECT 和 FROM是必需的, HAVING子句只能与 GROUPBY搭配起来使用。 子查询的语意应为 “按学号分组、平均分大于 85的学生的学号 ”,可得空 (1)应填Sno IN,空 (2)应填 AVG(Grade) 85。 7 【正确答案】 属性:姓名、性别、身份证、联系电话 方法:预定、入住、结账 【试题解析】 “客人 ”类是 “散客 ”类和 “团体 ”类的泛化,具有二者的公共属性和公共方法。比对二者属性及方法得, “客人 ”类属性有:姓名、性别、身 份证、联系电话,方法有:预订、入住

30、、结账。 8 【正确答案】 (1)01(2) 1*(3) 1(4) 0* 【试题解析】 散客入住时只改变一个客房状态,而团体入住时则有可能改变多个客房状态;客房状态改变不一定是住宿导致的,客房维修同样改变客房状态。因此 (1)处应填 01, (2)处应填 1*。 客人可以有多项服务,但只需用一张 “服务列表 ”,当然也可能不需要任何服务;而一张服务列表必然属于而且只输于一个住宿。因此 (3)处应填 1, (4)处应填 01。 9 【正确答案】 A:空 闲 B:占用 C:入住 D:取消预订 【试题解析】 “维修 ”完成后客房处于 “空闲 ”状态,故状态 A为 “空闲 ”:客人入住后,客房有 “空

31、闲 ”转为 “占用 ”,故状态 B为 “占用 ”;状态 “已预订 ”经 “入住 ”转为 “占用 ”,故 C为 “入住 ”;状态 “已预订 ”经 “取消 ”转为 “空闲 ”,故 D为 “取消 ”。 10 【正确答案】 (1) p=NULL (2) pC- next=C- head- next (3) tp=NULL (4) Del(C, tp) (5) break 【试题解析】 根据注释, Del函数当 p是空指针时,删除头节点,因此易知 (1)空应填 p=NULL。 (2)空是插入头节点的特殊情况,应填 pC- next=C- head- next。 由注释可知空 (4)是删除操作,需调用 D

32、el函数,进一步确定实参。此处需要删除节点 t,结合 Del 函数的说明,实参 p 需要空指针 (NULL)或 t节点的前驱指针,由if(t- e pC- e)tp =t;t=t- next;可知, tp 正是 t节点的前驱指针,因此应填Del(C,tp)。由此也可以确定空 (3),当需要删除头节点时, tp 应是空指针,因此 空(3)应填 tp=NULL。 至于空 (5),应填 break。此时,节点 p已正确处理完毕,应该结束 while循环,而且必须终止,否则 while循环结束后 t值为 NULL,将会错误地执行插入操作。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题

33、中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 11 【正确答案】 (1) abstract (2) DP2.drawline(x1, x2, y1, y2) (3) Drawing (4) _dp.drawLine(x1, y1, x2, y2) 【试题解析】 由类 Drawing的 drawLine()方法是 abstract的,因此 Drawing要么是接口,要么是抽象类,在此为抽象类,故空 (1)应填 abstract。 空 (2)是调用 DP2系统的相应方法,可参照 DP1的对应函数的函数体,但要注意参数不完全相同,应填 DP2.drawline(x1,

34、 x2, y1, y2)。 _dP属性是用来存储 Drawing对象的,参照 Shape的构造函数可确认这一点,空(3)应填 Drawing。 Shape类的 drawLine方法是通过调用 Drawing对应的方法来实现所需要的功能,因此空 (4)应填 _dp.drawLine(x1, y1, x2, y2)。 空 (5)显然是基类构造函数,应填 super(dp)。 (5) super(dp) 12 【正确答案】 (1) virtual (2) DP2:drawline(x1, x2, y1, y2) (3) Drawing (4) _dp- drawLine(x1, y1, x2, y2

35、) (5) Shape(dp) 【试题解析】 由函数 drawLine()结尾的 “=0”易知,空 (1)应填 virtual。 空 (2)是调用 DP2系统的相应方法,可参照 DP1的对应函数的函数体,但要注意参数不完全相同,应填 DP2:drawline(x1, x2, y1, y2)。 _dp 属性是用来存储 Drawing对象的,参照 Shape的构造函数可确认这一点,空(3)应填 Drawing*。 Shape类的 drawLine方法是通过调用 Drawing对应的方法来实现所需要的功能,因此空 (4)应填 _dp- drawLine(x1, y1, x2, y2)。 空 (5)显然是基类构造函数,应填 Shape(dp)。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1