中级软件设计师2007下半年下午试题_第1页
中级软件设计师2007下半年下午试题_第2页
中级软件设计师2007下半年下午试题_第3页
中级软件设计师2007下半年下午试题_第4页
中级软件设计师2007下半年下午试题_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

试题

中级设计师2007下半年下午试阅读以下说明和图,回答问题1至问题4,将解答填入对应栏内【说明某高校欲开一个成管理系,记录并管理所有选修课程的学生的平时成绩和考成绩,其主要功能描述如下;每门课程都有到个单元构成,每个单元结束后会行一次,其成作为这门课程的千成绩。程结束后进行期末考试,其成绩作程的考成绩。学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统在记录学生成之前,系需要些成是否有效。首先,根据学生信息文件来确认该学生是否修这门课程,若没有,那么这些成是无效的:如果他的确选修了这门课程,再根据课程信息文件和程单元信息文件来验证平时成绩是否与这门课程所包含的单元相,如果是,那么这些成足有效的,否无效。对于有效成绩,系统将其保存在程成绩文件中。于无效成,系会单独将其保存在无效成绩文件中,并将详细情况提交教务处。在教务处没有给出具体处理意之前,系统不会理这些成绩。若一门程的所有有效的平时成绩和考试成都已被系统记录,系会发送课程完成通知教务处,告知该程的成绩已经齐全。教处根据需要,求系统生成相应的成列表,用来提交考试 。在生成成绩列表之前,系会生成一份成告给主教师,以便核是否存在。主教师须将核对之后的成绩报告返还系。会进行。考试在之后,上交一份成绩结果给系统。对于所有通过现采用结构化方法个系行分析与设计,得到如图11所示的顶层数据流图和图1-2所示的层数据流图。1、【问题1使用说明中的词语,给山图l-1中的外部实体E1~E4的名称2、【问题2使用说明中的词语,给出图1-2中的数据D1~D5的名称3问题3 终4、【问题4数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图图也是开发过程中比较常用的图形化工具。简要说明程序流程图的适用场合与作用试题阅读下列说明,回答问题1至问题4,将解答填入对应栏内【说明某汽车维修站拟开发一套小型汽车维修管理系统,对车辆的维修情况进行理对于新客户及车辆,汽车维修管理系统首先登记,包括:客户号、客名称、客户性质(个人、位)、折扣率、系人、等信息;要记录客户的车辆信息,包括:车牌号、车型、色等信息。一个客户至少有一台。客户及车辆信息如表2-1所示。表2-1客户及车辆信客客户XX公客户性单联车颜车帕萨微型记录维修车辆的故障信息。包括:维修型(普通、加急、作分类(大、中、、结算方式(自付、三包、索赔)等信息。修厂的工分为:修员和员。车辆维修首先委托。业务员对车辆进行检查和故障分析后,与客磋商,确定故障象,生成修委托。如表22所示。表2-2维修委托 登记日期:2007-07-车客维修类作业分结进厂预计完工车头损坏,漏维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择并确定个或多个具体修项目,安排相关的维修工及工时,生成维修派工单。修派工如表2-3所示。表2-3维修派工维修项维修项工维修维修员维修维修焊接补焊更换车客户车辆在车间修理完毕后,根据维修项目单价和维修派工单中的工时计车辆此次维修的总费用,记录在委托书中根据需求段收集的信息,设的实体系图(图2-1)和关系模式不完整如下所示。图2-1 务员和维修工是员工的子实体。【概念结构设计【逻辑结构设计客户((5),折扣率,联系人,车辆(车牌号,客户,车型,颜色,车辆类别委托书((6),维修类型,作业分类,结算方式,进厂时间派工单((7),工时)员工((8),工种,员工类型,级别5、【问题1根据问题描述,填写图2-1中(1)~(4)处联系的类型。联系类型分为一对一、一对多和多对三种,分别使用1:1,1:n或1:*,m:n或*:*表示6、【问题2补充图2-1中的联系并指明其联系类型。联系名可为:联系1,联系7、【问题3根据图2-1和说明,将逻辑结构设计阶段生成的关系模式中的空(5)~(8)补充完整8、【问题4根据问题描述,写出客户、委托书和派工单这三个关系的主键试题阅读下列说明和图,回答问题1至问题4,将解答填入对应栏内【说明已知某唱片器不可以唱片,而且可以接电脑并把电脑中的歌曲刻录到唱片上(同步歌曲)。接电脑的过程中可自完成充。关于唱片,还有以下描述信息每首歌曲的描述信息包括:歌曲的名字、写这首歌曲的艺术家以及演奏这首歌曲的艺术家。只有两首歌曲的三部分信息完全相同时,才认为它们是同一首歌曲。家可能是一名歌手或一支由2名或名以上的歌手所成的乐队。一名歌手可以不属于任何,也可以属于一个或多个。每由多条音轨构成;一条音中只包含一首歌曲或为空,一首歌曲可分布在多条音上;同一首歌曲在一中最多只能出现一次。每条音都有一个开始位置和持续。一上音轨的次序是非常重要的,因此对于任意一条音,器需要准确地知道,它的下一条音和上——条音轨是什么如果存在的话)。根据上述描述,采用面象方法对其进行分析与设计,得到了如表3-1所示类列表、如图3-1所示的初始类图以及如图32所示的描述器行的UML状态图。表3-1类列类说艺术音9、【问题1根据说明中的描述,使用表3-1给出的类的名称,给出图3-1中的A~F所对应的类10、【问题2根据说明中的描述,给山图3-1中(1)~(6)处的多重度11问题3图3-1中缺少了一条关联,请这条关联两端所对应的类以及每一端的多重度类12问题4 试题阅读下列说明和图,回答问题1至问题3,将解答填入对应栏内【说明某机器上需要处理n个作业.job1,job2,…,jobn,其中每个作jobi(1≤i≤n)的为i,jobi有一个收益值p[i]和最后期限d[i]机器在一个时刻只能处理一个作业,而且每个作业需要一个单位时间进行理,一旦作业开始就不可中断,每个作业的最后期限值为单位时间的正整数倍job1~jobn的收益值呈非递增顺序排列,即如果作jobi在其期限之内完成,则获得收益9[i;如果在其期限之后完成,没有收益。为获得较高的收益,采用贪心策略求解在期限之内完成的作业序列。图4*1是基于贪心策略求解的流程图。整型数J[]有个元,量k众表示在期限之内完成的作业J[1..k]所有能够在期限内完成的作业,数J[1..k]里的作按其最后期限非减排序,即d[J[1]]≤…≤d[J[k]]。业.jobi(2≤i≤n)进行判定,看其能否 组J的适当位置,J中作业按其最后期限非递减排列;否则不。job能 数组J的充要条件是:job和数组中已有作业均能在其期限之内完成。r:若.jobi能数组J,则其在数组了中的位置为q:循环控制变量,用于移动数组J中的元素13、【问题1请填充图4-1中的空缺(1)、(2)和(3)处14、【问题2假设有6个作业完成作业的收益数组每个作业的处理期限数组d[6])=(1,2,1,3,4,3)请应用试题中描述的贪心策略算法,给出在期限之内处理的作业序列 (按作业理的顺序给出),得到的总收益 (5)15、【问题3对于本题的作业处理问题,用图4-1的贪心算法策略,能否求得最高收益?(6)。用贪法求解任意给定问题时,是否一定能得到最优解?(7)试题阅读以下说明和C代码,将应填入(n)处的字句写在的对应栏内16、【说明面象思想,认为所有的点和圆都是一种图形(sh),并定义了类型shtpointt和circlet分别表示基本图形、点和圆,并且点和圆具有基本图形的所有特征。【C代码圆

typedefenumpoint,circle /*程序中的两种图typedefstruct /*基本的图形类 _typetype; /*图形中类标识:点或者圆*/void(*destroy)(); /*销毁图形操作的函数指针*/void(*draw) /*绘制图形操作的函数指针} typedefstruct _tcommon;intx;ihty;point_t;/*义点类型x,y为点坐标voiddestroyPoint(point_t*this){free(this);printf("Pointdestoryed!\n");})/*销毁点对象*/voiddrawPoint(point_t*this){printf("P(%d,%d)",this->x,this->y);} /*绘制点对象*/ _t*createPoint(va_list*ap)(/*创建点对象,并设置其属性*/point_t*p_point;if((p_point=(point_t*)malloc(sizeof(point_t)))==NULL)returnNULL;p_point->common,type=point;p_point->common,destroy=p_point->common.draw=p_point->x=va_arg(*ap,int); /*设置点的横坐标*/p_point->y=va_arg(*ap,int); /*设置点的纵坐标*/return(sh }typedefstruct{ _tcommon;point_t4center; /*圆半径}voiddestroyCircle(circle_t*free((1) printf("Circle}voiddrawCircle(circle_t*this){printf("C(");(2).draw(this->center); printf(",%d)",this->radius);} _t*createCircle(va_list4ap){ circle_t4pcircle;if((p_circle=(circle_t4)malloc(sizeof(circle_t)))==NULL)

p_circle->common.type=circle;p_circle->common.destroy=p_circle->common.draw= /*设置圆心p_circle->radius=va_arg(*ap,int); /*设置圆半径*/returnp_circle;}sh_t*createSh(sh_typest,"'){/*创建某一种具体的图形*/va_listap; sh_t4p_sh=(4)(ap,if(st==point)psh=createPoint(&ap);/*创建点对象*/if(stcirclepsh=createCircle(&ap);/*创建圆对象*/va_end(ap);returnp_sh}intmain()inti; /*循环控制变量,用于循环计数*/ _t*sh /*图形指针数组,图形的地址*/ s[0]=createSh (point,2,3); s[ii= (circle,20,40, /*圆心坐标半径为for(i=0i<2;i++){ s[i]- s[i]);printf("\n");}纵制数组中图形for(i1;i>0;i s[i]- /*数组中图形return}【运行结Circledestoryed!Pointdestoryed!试题阅读下列说明和C++代码,将应填入(n)处的字句写在对应栏内17 【说明已知某企业的采购是分级进行的,即根据采购金额的不同由不同层次的主管来,可以5万元以下(不包括5万元)的采购单,副董事长可以5万元至10万元(不包括10元)的采购单,董事长可以10万元至50万元(不包括50万元)的采购单,50万元及以上的采购就需要开会决定采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图【C++代码#include<string>#include<iostream>usingnamespacestd;classPurchaseRequest{doubleAmount; intNumber; stringPurpose; classApprover{ Approver(){successor= virtualvoidProcessRequest(PurchaseRequestif(successor!=NULL){successor-> }(2)successor;classCongress:publicApprover{voidProcessRequest(PurchaseRequestaRequest){if(aRequest.Amount>=500000){/*决定是否的代码少略*/ else(3)ProcessRequest(aRequest);}classDirector:publicApprover{voidProcessRequest(PurchaseRequestaRequest){/*此处代码省略} :publicApprover{voidProcessRequest(PurchaseRequest /*此处代码省*/classVice :publicApprover{voidProcessRequest(PurchaseRequest /*此处代码省 voidCongressMeeting;Vice Sam;DirectorLarry;Meeting.SetSuccessor(NULL); Sam.SetSuccessor((4));Tammy.SetSuccessor((5)); SetSuccessor((6)PurchaseRequestaRequest; /*构造一采购请求*/cin>> /*输入采购请求的金额 /*开始*/return;}试题阅读下列说明和Java代码,将应填入(n)处的字句写在对应栏内18、【说已知某企业的采购是分级进行的,即根据采购金额的不同由不同层次的主管来,可以5万元以下(不包括5万元)的采购单,副董事长可以5万元至10万元(不包括10元)的采购单,董事长可以10万元至50万元(不包括50万元)的采购单,50万元及以上的采购就需要开会决定采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图【Java代码classPurchaseRequestpublicdoubleAmount; //一个采购的金额publicintNumber; //采购单publicStringPurpose; //采购目的classApprover //者 Approver(){ successor=null; publicvoidProcessRequest(PurchaseRequestaRequest){if(successor!=null){ (1);}publicvoidSetSuccesser(ApproveraSuccesssor){successor=aSuccesssor;} classCongressextendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest){if(aRequest,Amount>=500000){//决定是否的代码省略}else(3) }classDirectorextendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest){此处代码省略 extendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest)此处代码class extendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest)此处代码publicclassrspublicstaticvoidmain(String[]args)throwsIOException{CongressMeeting=newCongress();ViceSam=newViceDirectorLarry=newTammy=new();构造责任Meeting.SetSuccessor(null); Sam.SetSuccessor((4));Tammy.SetSuccessor((5)); SetSuccessor((6)//构造一采购请PurchaseRequestaRequest=newPurchaseRequest();BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));aRequest.Amount=Double.parseDouble(br.readLine()); return}}试题

中级设计师2007下半年下午试题答1、E1:考试;E2:主讲教师;E3:学生或选课学生:E4:教务注:D2和D3的答案可以互换3终D4或课程成绩文4或生成成绩列D1或学生信息文5或生成最终成绩4或生成成绩列5或生成最终成绩本题考查的是DFD的应用,属于比较传统的题目,考查点也与往年类似从顶层DFD可以看出,数据流是完整的。所以只要根据数据流从题目说明的上下文中,找E1~E4所对应的外部实体,分别为考试、主讲教师、学生和教务处0层DFD中缺少的东西比较多,要求填写数据及缺失的数据流。先来确定数据。首先从说明中找出可能是数据的元素来。很明显,学生信息文件、课程信息文件、课程单元信息文件、课程成绩文件和无效成绩文件应该是数据。下面的工作就是对号入座。从说明中可知,“对于无效成绩,系统会单独将其保存在无效成绩文件中”,所以D5应该是数据“无效成绩文件”。类似地,从加工2“记录有效成绩”到D4有一条数据流,这说明D4就是数据只与加工1有关,所以它们的对应关系就是随意的了。这样5个数据就填充完整了。下面要补充首先,从说明的第5条可知,生成成绩列表时,是需要从课程成绩文件中获取信息的,“课程绩文件实际上就是图中的D4。而D4和加工4之间并没有数据流,因此这就是一条缺失的数据流。另外,前面在确定D1所对应的数据时提到过,生成成绩单时是需要学生信息的。所以,工5应该从D1中获取相应的信息,这样就找到了第二条数据流第三条数据流也比较容易找。说明的第7条告诉,只有“对于所有通过的成绩,系统将问题4实际上是为了考查大家对DFD的进一步理解,明确DFD在开发中用于描述功能试题5、*(或n或 (3)*(或n或 (4)*(或n或67、客户,客户名称,客户性委托书,维修工,维修项员工,员8、客户:客委托:委委托派工单:委托书,维修项目,维修[解析本题考查数据库设计,属于比较传统的题目,考查点也与往年类需记录对应的,并且车辆有自己的属性——车牌号,因此,“车辆”关系模式需补充属性:车根据实体联系图和表2-1中的数据,对于“员工”关系模式需补充属性:员工,员工问题4指定给定关系模式的主键,显然,管理时,应为每位客户设置唯一的编码,因试题9、 D:Musician 10、 11类Track或(1分1分Track或(1分(1分问题1属于传统的考法,要求考生根据说明将类图填充完整。实际上就是把表3-1中的类和图的A-E对号入座。针对这道题目的类图而言,完成这个问题是比较简单的,因为类图中出现了三个典型的类/对象关系结构:继承(类A、C、D)、(类B、e)和组装(类E、F)。从说明可以明显地看出,可能具有继承关系的只能是Artist、Band和Musician。这样类A、C、D看B。B和A之间两条关联的名字,已经很明确地告诉了,能够被Artist编写、演奏的只能是歌曲(Song)。这样B也确定下来了,剩下的E和F就显而易见了。音轨(Track)片是由音轨构成的。所以E应该是Track,F应该是Album。1..*。同理可以得到,(5)应该是1..*(一上有多条音轨);(6)应该为1。问题3考查的是类对象关联中的一种特殊关联:递归关联,它描述的是同一个类的不同实例之间的关系。而类Track的不同实例之间恰好具有这种关系(因此对于任意一条音轨,器需要准地知道,它的下一条音轨和上一条音轨是什么)。所以缺少的那条联系的两端都是类Track度都为0..1。下限为0,是对应不存在上一条或下一条音轨的情况。状态图是描述系统动态行为的一种模型。这里状态图的考查仅限于能够理解它所描述的行为。状态图由状态及状态之间的迁移构成,迁移可以由相关的事件触发。问题4给定了两个状态关闭”和,要求找出从关闭到的最短事件序列。这就要求能够在状态图上找到连接两个状态的最短迁移,然后将迁移上的事件记录下来就可以了。从关闭状态到状态可以选择经过迁移连接电脑、到达联机状态,再经过迁移断开连接到达状态打开,再从打开状态的初始状态歌曲待选,经过迁移选择歌曲到达播放状态。这样经过的事件序列为;连接电脑电量饱和/完成断开连接选择歌曲。显然这样的事件序列远比从关过按任意键直接到达打开”状态要长得多。所以从关闭到播放的最短事件序列是:按任意键,选择歌曲。试题1314、(4)1,2,4,5或job1、job2、job4、job515、(6)能,或可以、行及其他含义相同的词本题考查的是算法的设计和分析技术(1≤id[i]。另一方面,J[D[R]]与r的关系只有两种:J[d[r]]>r,表示还可能在J[1]与J[r] 表4-1算法执行过J数收考虑的作期操Ф01放入J12放入J1不放入J3放入J4放入J3不放入J表4-2物品信物重价单位价1625342。由于此时背包容量还剩下50-10-20=20,不足以容纳物品3,故总价值为60+100=160。试题 (4)vastart本题考查C语言中指针机

温馨提示

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

评论

0/150

提交评论