[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷24及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷24及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷24及答案与解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
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
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 24 答案 解析 DOC
