2005年5月软件设计师下午试题答案及其分析.doc_第1页
2005年5月软件设计师下午试题答案及其分析.doc_第2页
2005年5月软件设计师下午试题答案及其分析.doc_第3页
2005年5月软件设计师下午试题答案及其分析.doc_第4页
2005年5月软件设计师下午试题答案及其分析.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2005年5月软件设计师下午试题答案及其分析试题一问题1(6分) (1)数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。 答:数据流起点是房主,终点是学生住宿管理系统,数据流名称是屋主信息。(2)数据流图1-2中缺少了与“查询房屋”加工相关的数据流,请指出此数据流的起点和终点。答:从房屋文件-查询房屋信息问题2(4分)“安排会面”加工除需要写入会面文件外,还需要访问哪些文件?答:房主文件,学生文件,房屋文件问题3(5分) 请补齐下列数据字典条目:登录信息=学生ID+密码注册信息=学生姓名+学生现住址+电话号码+出生日期+性别+学生ID+密码 试题一分析:问题1:在答这类题目时要先那题目说明部分理解,然后从里面分出数据流的名称,然后在看数据流图的时候就可以做对比,这样就比较好找到缺少的数据流。本题中的屋主信息是很明显的; 从数据流图1-2中可以看到,“查询房屋”加工有请求者,有输出信息,就是没有关于房屋的信息,所以这里就缺少房屋文件这个数据存储中引出的房屋信息的数据流;问题2:会面需要的信息有“请求中包含房屋的详细信息,安排学生与房主会面的时间和地点,并将会面信息通知学生和房主”,所以我们得到需要的文件有学生、房屋和屋主;问题3:数据字典条目:“学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(ID)和密码” 试题二问题1(4分)根据述说明,请给出(1)“职员”关系模式的主键和外键。答:主键:职员号 ,外键:部门号(2)“部门”关系模式的主键和外键。答:主键:部门号 ,外键:负责人代码问题2(4分)(1) 用SQL定义“职员”关系模式,请在空缺处填入正确的内容。Create Table职员(职员号CHAR(5) (a) , 职员姓名 CHAR(8), 月工资 NUMBER(4),部门号 CHAR(1),办公室 CHAR(20)电话 CHAR(8), (b) (部门号), CHECK(月工资=1000 AND月工资=8000);答: (a)primary key,(b)foreign key(2) 针对人数大于等于2的部门创建视图D View(Dept, D num, D Totals, D Avgpay),其中,Dept为部门号,D num为部门人数,D_Totals为工资总数,D_Avgpay为平均工资,请在空缺处填入正确的内容。Create View D_View(Dept,D_num,D_Totals,D_Avgpay)As (Select部门号, (c) From职员 (d) count(*)=2 WHERE 部门号IS NOT NULL):答: (c)count(*),sum(月工资),avg(月工资)(d)group by 部门号 having问题3(3分)对于表2-1、表2-2所示的“职员”和“部门”关系,请指出下列各行是否可以插入“职员”关系,为什么?60811芦峰8001A座201688312260802李晓啸35002B座202688312360812高亚南2600答: (1)不行,工资不满足条件。(2)不行,违反主键约束,主属性不能插入重复值。(3)行问题4(4分)原来的“职员”关系模式存在什么问题?在不增加新关系模式的前提下,请给出修出改后的“职员”和“关系模式”。答: 原职员关系表中存在大量的数据冗余。解决办法:把电话和办公室从“职员”关系模式移动到部门关系模式中。试题二分析:问题1:(1)因为存在“职员”和“部门”两张表,所以“职员”表的主键是职员号,外键是部门号; (2)在部门表中主键是部门号。而外键是负责人代码,实际上负责人代码和职员号表示的是一样的内容,只是名称不同;问题2:(1)确定主键和外键,通过SQL语句完成; (2)创建视图D View(Dept, D num, D Totals, D Avgpay),D num为部门人数= count(*), D_Totals为工资总数= sum(月工资),D_Avgpay为平均工资= sum(月工资)/count(*)。 人数大于等于2的部门,则按照部门号分组,即group by 部门号 having。问题3: (1)不行,工资不满足条件。(2)不行,违反主键约束,主属性不能插入重复值。(3)行问题4: 原职员关系表中存在大量的数据冗余。解决办法:把电话和办公室从“职员”关系模式移动到部门关系模式中。 试题三供选择的答案a Foundtrue b Found = truec T = Endpos d Q.insert(T)e T Q.delete() f Curpos = Endposg i4 h Curpos Q.delete()i GridT.row,T.col = -1 j GridT.row,T.col-1参考答案(1)girdt.rowt.col = -1 (2)t= endpos (3)q.insert(t)(4)found != true (5)curpos = q.delete() 解析本题是在布线板上给定两个方格的最短布线路径,首先要理解的就是:符号含义Grid全局二维数组GridN+2,M+2,表示电路板方格阵列,初始时数组元素GridI,jr的值为-1表示当前方格可布线,为-9表示前方格不可布线。Offset一维数组offset4:offseti(0i3)的分量为r(行偏移量)和c(列偏移量),按照表3-1的内容设置其值。Startpos、Endpos、Curpos、T分别表示起始方格、目标方格、当前方格和临时方格,其位置用分量度row和col确定。Q.insert(s)将方格s 的位置信息加入队列。Q.delete()删除非空队列的队头元素,并返回该元素。Q.empty()若队列Q为空,则返回 true;否则返回false。具体思路是:从起始方格x开始,先考查距离起始方格距离为k的某一个可达方格就是目标方格y时为止,或者由于不存在从x到y的布线方案而终止。布线区域中的每一个方格与其相邻的上、下、左、右四个方格之间的距离为1,依次沿下、右、上、左这四个方向考查,并用一个队列记录可达方格的位置。(1) 判断是否当前的方格可布线,girdt.rowt.col是否等于-1(2) 判断当前的方格是否为目标方格,如果是就将Found=true;否则执行第(3)个空。(3) 如果不是目标方格,则把这个方格加入到队列中,即q.insert(t),同时继续进行偏移。(4) 判断found是否为 true,如果是则返回TRUE;否则继续判断;(5) 如果found不为 true,则判断队列是否为空,如果为空则整个查找失败,如果队列为空,则重新进行探测。试题四参考答案(1)k=N (2)taskk=0 (3) i(4)k+1 (5)workeri=0 解析 解决本题首先就是要把题目中使用的数据结构的意思理解,在这里Cij:将任务i分配给工人j的费用;Taski:值为0表示任务i未分配,值为j表示任务i分配给工人世间j;Workerk:值为0表示工人k未分配任务,值为1表示工人k已分配任务;Mincost:最小总费用。(1) k=N,判断N个任务是否已经完成,而且得到的总费用是最少;(2) 判断如果第i个个工人没有分配任务,而且第k个任务未分配;则进行分配,其中表示分配的有workeri=1;taskk=i; workeri=1表示第i个工人已经分配到任务;taskk=i表示第k个任务已经分配给第i个工人。(3) 任务k分配后,则k加1,进行下一个任务的分配;即Plan(k+1,cost+cki);(4) 同时下一个工人和任务都清0。即workeri=0; taskk = 0试题五参考答案(1)Shape (2)Xcircle (3)displayIt()(4)Shape * (5)getShapeInstance(type)(6)delete S解析本题是一个C+程序设计题目,其中给出了类的结构层次,首先我们看代码5-1,里面有一个方法display(),而在给出的抽象类和第三方类中,只有shape中有display()方法,所以在第(1)个空应该是shape;又因为在题干中说明了5-1中使用了Xcircle,所以第(2)个空就是Xcircle定义的类型。同样第(3)个空就是Xcircle中的方法调用了,所以是displayIt()。代码5-2是先生成特定的类实例,第(4)个空是对实例的返回类型,由于在主函数中Shape * s;所以在此处返回类型也应该是Shape *;第(5)个空就是实例产生方法的调用,getShapeInstance(type)。第(6)个空就是在显示功能完成后对定义的实例对象删除,即delete s 试题六参考答案(1)extends Shape (2)Xcircle (3)XCircle()(4)displayIt() (5)Shape (6)getShapeInstance(type)解析本题考察的是JAVA程序设计语言,和C+的题目一样,只是要根据语言的语法进行修改。首先我们看代码5-1,里面有一个方法display(),而在给出的抽象类和第三方类中,只有shape中有display()方法,所以在第(1)个空应该是extends Shape,这里和C+的继承语言不同;又因为在题干中说明了5-1中使用了Xcircle,所以第(2)个空就是Xcircle声明了一个类对象。同样第(3)个空就是Xcircle中对象进行实例化,所以是XCircle();第(4)个空就是对Xcircle对象调用了displayIt()方法。代码5-2是先生成特定的类实例,第(5)个空是对实例的返回类型,由于在主函数中Shape s;所以在此处返回类型也应该是Shape;第(6)个空就是实例产生方法的调用,getShapeInstance(type)。试题7参考答案(1) Private Xcir as new XCircle (2)Ishape (3) new IShape(4) Get Ishape_Color (5) Let Color (6) Xcir.DisplayIt()解析本题是VB的编程实现,题目中涉及到一个抽象的类Ishape 和一个使用到的第三方提供的类Xcircle。代码7-1是抽象类IShape的类模块内容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论