首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
软件配置管理主要有5个任务:标识、版本控制、变化控制、()和报告。
查看本题答案
包含此试题的试卷
中级软件设计师《单项选择》真题及答案
点击查看
你可能感兴趣的试题
软件配置管理的活动主要有编制配置管理计划配置标识49配置状态报告配置评价发行管理和交付
配置控制
配置实现
配置测试
配置跟踪
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理1和配置报告在配置
配置组管理
配置对象管理
配置审核
配置库管理
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理______和配置
开发项目
配置管理项
子系统
软件产品
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理______和配置
配置组管理
配置对象管理
配置审核
配置库管理
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理26和配置报
配置组管理
配置对象管理
配置审核
配置库管理
实施软件配置管理主要包括制定配置管理计划确定配置标识变更控制系统整合和配置审核等活动
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理26和配置报告在配
开发项目
配置管理项
子系统
软件产品
不属于软件配置管理的活动
变更标识
变更控制
质量控制
版本控制
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理26和配置报
开发项目
配置管理项
子系统
软件产品
版本控制是软件配置管理的基本要求是指对软件开发过程中各种配置文件及说明文档等文件变化的管理
配置管理是系统工程中的重要概念它在软件工程和信息安全工程中得到了广泛的应用下列对于配置管理的解释最准
配置管理的本质是变更流程管理
配置管理是一个对系统(包括软件、硬件、文档、测试设备、开发/维护设备)的所有变化进行控制的过程
管理配置是对信息系统的技术参数进行管理
管理配置是对系统基线和源代码的版本进行管理
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理26和配置报告在配
配置组管理
配置对象管理
配置审核
配置库管理
软件配置管理的活动主要有编制配置管理计划配置标识______配置状态报告配置评价发行管理和交付
配置控制
配置实现
配置测试
配置跟踪
软件配置管理的主要思想和具体内容在于版本控制
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理1和配置报告在配置
开发项目
配置管理项
子系统
软件产品
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理和配置报告
配置组管理
配置对象管理
配置审核
配置库管理
不属于软件配置管理的活动
变更标识
变更控制
质量控制
版本控制
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理22和配置报告在配
开发项目
配置管理项
子系统
软件产品
以下不属于配置管理主要工作的是62
标识配置项
控制配置项的变更
缺陷分析
进行版本管理和发行管理
配置管理是软件质量保证的重要一环软件配置管理的基本任务包括配置标识版本管理变更管理22和配置报告在配
配置组管理
配置对象管理
配置审核
配置库管理
热门试题
更多
[说明]在数据链路层扩展局域网时使用网桥网桥工作在数据链路层它根据MAC帧的目的地址对收到的帧进行转发网桥具有过滤帧的功能当网桥收到一个帧时并不是向所有的端口转发此帧而是先检查此帧的目的MAC地址然后确认将该帧转发到哪个端口最简单的网桥有两个端口即接口网桥的每个端口与一个网段相连每当收到一个帧时通过查找转发表将收到的帧转发当一个网桥刚刚连接到局域网上时其转发表是空的此时若收到一个帧按照以下算法处理和建立自己的转发表1从端口x收到的无差错的帧如有差错即丢弃在转发表中查找目的站MAC地址2如有则查找出到此MAC地址应走的端口d然后进行3否则转到53如到这个MAC地址去的端口d=x则丢弃此帧因为这表示不需要经网桥进行转发否则从端口d转发此帧4转到65向网桥除x以外的所有端口转发此帧这样做可以保证找到目的站6如源站不在转发表中则将源站MAC地址加入转发表登记该帧进入网桥的端口号设置计时器然后转到8如源站在转发表中则执行77更新计时器8等待新的数据帧转到1这时网桥就在转发表中登记以下三个信息站地址——登记收到帧的源MAC地址端口——登记收到的帧进入该网桥的端口号时间——登记收到的帧进入该网桥的时间现有五个工作站分别连接在三个局域网上并且用两个网桥连接起来如图3-1每一个网桥的两个端口号都标明在图上在一开始两个网桥中的转发表都是空的以后有以下各站向其他的站发送了数据帧即H1发送给H5H3发送给H2H4发送给H3H2发送给H1[图3-1]
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图6-1显示了各个类间的关系以下是JAVA语言实现能够正确编译通过 [图6-1] [Java代码] //Iterator.jav__件 publicinterfaceIterator publicabstractbooleanhasNext; publicabstractObjectnext; //Aggregate.jav__件 publicinterfaceAggregate publicabstractIteratoriterator; //Book.java publicclassBook //省略具体方法和属性 //BookshelfIterator.jav__件 publicclassBookshelf工terator1Iterator privateBookShelfbookShelf; privateintindex; publicBookshelfIteratorBookShelfbookShelf this.bookShelf=bookShelf; this.index=0; publicbooleanhasNext//判断是否还有下一个元素 ifindex<bookShelf.getLength returntrue; else returnfalse; publicObjectnextf//取得下一个元素 Bookbook=bookShelf.getBookAtindex; index++; returnbook; //BookShelf.java importjava.util.Vector; publicclassBookShelf privateVectorbooks; publicBookShelfintinitialsize this.books=newVectorinitialsize; publicBookgetBookAtintindex returnBookbooks.getindex; publicintgetLength returnbooks.size; publicIteratoriterator returnnewBookShelfIterator2; //Main.jav__件 publicclassMain publicstaticvoidmainStringargs BookShelfbookShelf=newBookShelf4; //将书籍上架省略代码 Iteratorit=bookShelf.3; while4//遍历书架输出书名 Bookbook=Bookit.5; System.out.printin""+book.getName; 2处填
[说明]在某些系统中存在非常复杂的对象可以采用循序渐进的方式进行组合将小对象组合成复杂的对象以下实例展示了Builder生成器模式该实例用来建立文件文件内容包括一个标题一串字符以及一些有项目符号的项目Builder类规定组成文件的方法Director类利用这个方法产生一份具体的文件图7-1显示了各个类间的关系[图7-1]以下是C语言实现能够正确编译通过[C代码]typedefvoid1char*title;typedefvoid*fun2charitems[][10]intN;typedefchar**fun3;charbuffer[500];structBuilder//构造器fun1makeTitle;2makeString;fun2makeItems;fun3getResult;;structDirectorstructBuilderbuilder;;char*construct3director//构造文件charitems[2][10]=早安午安;director->builder.makeTitleGreeting;director->builder.makeString从早上到白天结束;director->builder.makeItemsitems2;director->builder.makeString到了晚上;strcpyitems[0]晚安;strcpyitems[1]好梦;director->builder.makeItemsitems2;returndirector->builder.getResult;voidTXTmakeTitlechar*titlestrcatbuffer『;Strcatbuffertitle;strcatbuffer』/n/n;voidTXTmakeStringchar*strstrcatbuffer■;Strcatbufferstr;strcatbuffer/n/n;voidTXTmakeItemscharitems[][10]intN//将items加入文件中forinti=0i
[说明]公司IT部门决定开发一个计算机管理系统以记录期刊的传阅情况期刊在公司内部传阅员工可以要求加入传阅队列图书室登记公司收到的期刊交给名单中的第一名员工员工应在三个工作日内完成阅读员工阅读完毕后通知系统系统提醒下一位阅读者取书下一个员工必须确认已收到期刊当传阅名单中下一位员工出差在外时将无法进行传阅此时将期刊传给再下一位而将该员工作标记再次传递此书时优先考虑该员工最后一位员工阅读完毕后将期刊交还图书室以便共用系统能在员工忘记传递期刊时发出提醒信息系统详细记录期刊传阅情况当员工阅读完后通知系统系统记录该员工员工号及日期并在备注栏注明是传出同样当员工收到期刊后给系统确认系统记录该员工员工号及日期并在备注栏注明是收到公司的员工都有一个唯一的员工号公司订阅了多种期刊为每一本期刊有唯一期刊流水号产生一份传阅名单并详细记录传阅情况员工的出差情况存储在系统主机中该系统采用面向对象方法开发系统中的类以及类之间的关系用UML类图表示图1-1是该系统的类图的一部分图1-2描述了成功传递期刊的序列图[图1-1][图1-2]根据题意将图1-2中的1~5处补充完整
[说明]某学校的教学系统描述如下学生信息包括学号Sno姓名Sname性别Ssex年龄Sage入学年份Syear主修专业Smajor其中学号是入学时唯一编定的教师信息包括教工号Tno姓名Tname性别Tsex年龄Tage职称Title其中教工号是唯一编定的课程信息包括课程号Cno课程名称Cname学时Cpeiiod学分Ccredit其中课程号是唯一编定的每个专业每个年级只有一个班级这样班级就可用入学年份标识每位教师只教授特定的一门的课程每门课程可以有多个教师教授各位老师的上课地点及上课时间有所不同注意一门课程至少有一位教师教授否则这门课程就视为不存在每位学生可以同时选修多门不同的课程一门课程至少要有10位学生选修否则就取消这门课程的开设注意选修课程时要指定任课教师不能重复选修同一门课程课程结束后任课教师给选修该课程的学生一个成绩Grade注意教师不能给没有选修他所教授课程的学生成绩即使选修了其他教师教授的同一门课也不行图2-1是经分析得到的E-R图[图2-1]根据题意给出联系的属性实体间的联系有一对一一对多和多对多指出各联系分别属于哪一种
[说明]在某些系统中存在非常复杂的对象可以采用循序渐进的方式进行组合将小对象组合成复杂的对象以下实例展示了Builder生成器模式该实例用来建立文件文件内容包括一个标题一串字符以及一些有项目符号的项目Builder类规定组成文件的方法Director类利用这个方法产生一份具体的文件图6-1显示了各个类间的关系以下是Java语言实现能够正确编译通过[Java代码]//Builder.jav__件public1classBuilderpublicabstractvoidmakeTitleStringtitle;publicabstractvoidmakeStringStringstr;publicabstractvoidmakeItemsString[]items;publicabstractObjectgetResult;//Director.jav__件publicclassDirectorprivate2builder;publicDirectorBuilderbuilderthis.builder=builder;publicObjectconstructbuilder.makeTitleGreeting;builder.makeString从早上到白天结束;builder.makeItemsnewString[]早安午安;builder.makeString到了晚上;builder.makeItemsnewString[]晚安好梦;returnbuilder.getResult;//TextBuilder.jav__件publicclassTextBuilder3BuilderprivateStringBufferbuffer=newStringBuffer;publicvoidmakeTitleStringtitlebuffer.append『+title+』/n/n;publicvoidmakeStringStringstrbuffer.append’■’+str+/n/n;publicvoidmakeItemsString[]itemsforinti=0;i
[说明]假定用一个整型数组表示一个长整数数组的每个元素存储长整数的一位数字则实际的长整数m表示为m=a[k]×10k-2+a[k-1]×10k-3++a[3]×10+a[2]其中a[1]保存该长整数的位数a[0]保存该长整数的符号0表示正数1表示负数运算时先决定符号再进行绝对值运算对于绝对值相减情况总是绝对值较大的减去绝对值较小的以避免出现不够减情况注意不考虑溢出情况即数组足够大[函数]intcmpint*LAint*LB;/*比较长整数LA与LB的绝对值大小*//*若LA绝对值较大返回正值LA较小返回负值相等则返回0*/intADDint*LAint*LBint*LC/*计算长整数LA与LB的和结果存储于LC中*//*注意正数与负数的和相当于正数与负数绝对值的差*//*数据有误返回0正常返回1*/ifLA==NULL||LB==NULL||LC==NULLreturn0;int*pA*pBiNcarryflag;flag=LA[0]+LB[0];switchflag/*根据参与运算的两个数的符号进行不同的操作*/case0:case2:Lc[0]=LA[0];/*LA与LB同号结果符号与LALB相同*/pA=LA;pB=LB;1;break;case1:/*LA与LB异号*//*比较两者的绝对值大小结果符号与较大者相同*/flag=2;ifflag>0/*LA较大*/LC[0]=LA[0];pA=LA;pB=LB;elseifflag<0/*LB较大*/LC[0]=LB[0];pA=LB;pB=LA;else/*LA与LB相等*/LC[0]=0;LC[1]=0;return1;flag=-1;break;default:return0;break;/*switch*//*绝对值相加减*//*注意对于减法pA指向较大数pB指向较小数不可能出现不够减情况*/3;N=LA[1]>LB[1]LA[1]:LB[1];fori=0;i
=pA[1]/*LA计算完毕*/carry+=flag*pB[i+2];elseifi>=pB[1]/*LB计算完毕*/carry+=pA[i+2];elsecarry+=pA[i+2]+flag*pB[i+2];LC[i+2]=carry%10;carry/=10;if4/*需要借位针对减法*/LC[i+2]+=10;carry--;/*for*/if5/*最高进位针对加法*/LC[i+2]=carry;i++;ifLC[i+1]==0i--;/*若最高位为零针对减法*/LC[1]=i;return1;;/*ADD*/
[说明] 图书管理系统详细记录图书库存情况读者信息以及读者借阅记录包括借书日期和还书日期 新书入库时要为该书编制图书卡片包括分类目录号图书流水号要保证每本书都有唯一的流水号即使同类图书也是如此书名作者内容摘要价格和购书目期同一个书名由于版次作者等不同有可能存在多“种”图书其间用“分类目录号”区分 系统为每一位合法读者编制一个唯一的借书证号读者需要提供姓名单位 一个读者最多可以同时借阅5本图书借阅图书时新添借阅记录并将对应的“归还标记”字段置为“false”表示“尚未归还”归还图书时将相应的“归还标记”字段置为“true”表示“已经归还”一本书可能供多位读者借阅同一本书读者可以重复借阅 图2-1为该系统的E-R图 [图2-1] 由于同一个分类目录号同一种图书有多个副本若用表Book图书流水号分类目录号书名作者内容摘要价格购书日期存储图书信息则有很多的冗余信息该如何分解使之满足BCNF并指出分解后的关系模式的主键
[说明] 当一元多项式中有许多系数为零时可用一个单链表来存储每个节点存储一个非零项的指数和对应系数 为了便于进行运算用带头节点的单链表存储头节点中存储多项式中的非零项数且各节点按指数递减顺序存储例如多项式8x5-2x2+7的存储结构为 函数中使用的预定义符号如下 #defineEPSI1e-6 structNode/*多项式中的一项*/ doublec;/*系数*/ inte;/*指数*/ structNode*next; ; typedefstruct/*多项式头节点*/ intn;/*多项式不为零的项数*/ structNode*head; POLY; [函数] voidDelPOLY*CstructNode*p /*若p是空指针则删除头节点否则删除p节点的后继*/ structNode*t; /*C是空指针或C没有节点*/ ifC==NULL||C->head==NULLreturn; if1/*删除头节点*/ t=C->head; C->head=t->next; return; /*if*/ t=p->next; p->next=t->next; ;/*Del*/ voidInsertPOLY*CstruetNode*pC /*将pC节点按指数降序插入到多项式C中*/ /*若C中存在pC对应的指数项则将系数相加若其结果为零则删除该节点*/ structNode*t*tp; /*pC为空指针或其系数近似为零*/ ifpC==NULL||fabspC->c<EPSIreturn; ifC->head==NULL/*若C为空作为头节点插入*/ C->head=pC; pC->next=NULL; C->n++; return; /*if*/ /*若pC的指数比头节点的还大插入到头节点之前*/ ifpC->e>C->head-e 2; C->head=pC; C->n++; return; /*if*/ 3; t=C->head; whilet!=NULL ift->e>pC->e tp=t; t=t->next; elseift->e==pC->e/*C中已经存在该幂次项*/ t->c+=pC->c;/*系数相加*/ iffabst->c<EPSI/*系数之和为零*/ 4;/*删除对应节点*/ C->n--; 5; elset=NULL;/*C中已经不存在该幂次项*/ /*while*/ ift==NULL/*适当位置插入*/ pC->next=tp->next; tp->next=pC; C->n++; /*if*/ ;/*Insert*/ 4处填
[说明]图3-1描述某超市销售数据的部分处理流程超市中有若干台收款机和若干名收款员这里我们把一个收款员开始使用一台收款机到离开这台收款机称为该收款员的一次作业作业开始时收款员先在收款机上输入收款员号和作业前金额作业前金额是为了销售时的找零而在作业前预先放入钱柜的金额数作业结束时收款员要打开钱柜取走全部现金并把这些现金的金额数称为作业后金额输入收款机当作业前金额+本次作业售货总金额-本次作业退货总金额≠作业后金额时表示这次作业存在金额差错本流程图已作简化并作以下假定该超市只有现金交易不用信用卡和礼券一个收款员因某种原因如吃饭在一天中可以有多个作业销售方式只有售货和退货两种整个超市分成若干部门如食品部服装部系统按部门统计一个月中各类货物的销售数量和金额最后根据月销售计划文件分析各部门完成销售计划的情况系统还统计每个收款员的差错情况和退货情况图中处理4和处理8每月的最后一天执行一次营业结束后其他处理每天执行一次图中部分数据文件的记录格式如下日销售数据收款机号+收款员号+作业前金额+售货标记|退货标记+货号+数量+单价+金额+作业后金额日销售文件记录作业开始标记+收款机号+收款员号+作业前金额|售货标记|退货标记+货号+数量+金额|作业结束标记+收款机号+收款员号+作业后金额部门目销售文件记录部门号+售货标记|退货标记+货号+数量+金额部门月销售计划文件记录部门号+月计划金额收款员差错月报月份+收款员号+差错作业数+差错总金额收款员退货月报月份+收款员号+退货次数+退货总金额其中w表示w重复出现多次a|b表示a或ba+b表示a与b[图3-1]处理1能检查出日销售数据中的哪些错误
[说明] 本流程图描述了某子程序的处理流程现要求用白盒测试法对其进行测试
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图6-1显示了各个类间的关系以下是JAVA语言实现能够正确编译通过 [图6-1] [Java代码] //Iterator.jav__件 publicinterfaceIterator publicabstractbooleanhasNext; publicabstractObjectnext; //Aggregate.jav__件 publicinterfaceAggregate publicabstractIteratoriterator; //Book.java publicclassBook //省略具体方法和属性 //BookshelfIterator.jav__件 publicclassBookshelf工terator1Iterator privateBookShelfbookShelf; privateintindex; publicBookshelfIteratorBookShelfbookShelf this.bookShelf=bookShelf; this.index=0; publicbooleanhasNext//判断是否还有下一个元素 ifindex<bookShelf.getLength returntrue; else returnfalse; publicObjectnextf//取得下一个元素 Bookbook=bookShelf.getBookAtindex; index++; returnbook; //BookShelf.java importjava.util.Vector; publicclassBookShelf privateVectorbooks; publicBookShelfintinitialsize this.books=newVectorinitialsize; publicBookgetBookAtintindex returnBookbooks.getindex; publicintgetLength returnbooks.size; publicIteratoriterator returnnewBookShelfIterator2; //Main.jav__件 publicclassMain publicstaticvoidmainStringargs BookShelfbookShelf=newBookShelf4; //将书籍上架省略代码 Iteratorit=bookShelf.3; while4//遍历书架输出书名 Bookbook=Bookit.5; System.out.printin""+book.getName; 4处填
[说明]假定用一个整型数组表示一个长整数数组的每个元素存储长整数的一位数字则实际的长整数m表示为m=a[k]×10k-2+a[k-1]×10k-3++a[3]×10+a[2]其中a[1]保存该长整数的位数a[0]保存该长整数的符号0表示正数1表示负数运算时先决定符号再进行绝对值运算对于绝对值相减情况总是绝对值较大的减去绝对值较小的以避免出现不够减情况注意不考虑溢出情况即数组足够大[函数]intcmpint*LAint*LB;/*比较长整数LA与LB的绝对值大小*//*若LA绝对值较大返回正值LA较小返回负值相等则返回0*/intADDint*LAint*LBint*LC/*计算长整数LA与LB的和结果存储于LC中*//*注意正数与负数的和相当于正数与负数绝对值的差*//*数据有误返回0正常返回1*/ifLA==NULL||LB==NULL||LC==NULLreturn0;int*pA*pBiNcarryflag;flag=LA[0]+LB[0];switchflag/*根据参与运算的两个数的符号进行不同的操作*/case0:case2:Lc[0]=LA[0];/*LA与LB同号结果符号与LALB相同*/pA=LA;pB=LB;1;break;case1:/*LA与LB异号*//*比较两者的绝对值大小结果符号与较大者相同*/flag=2;ifflag>0/*LA较大*/LC[0]=LA[0];pA=LA;pB=LB;elseifflag<0/*LB较大*/LC[0]=LB[0];pA=LB;pB=LA;else/*LA与LB相等*/LC[0]=0;LC[1]=0;return1;flag=-1;break;default:return0;break;/*switch*//*绝对值相加减*//*注意对于减法pA指向较大数pB指向较小数不可能出现不够减情况*/3;N=LA[1]>LB[1]LA[1]:LB[1];fori=0;i
=pA[1]/*LA计算完毕*/carry+=flag*pB[i+2];elseifi>=pB[1]/*LB计算完毕*/carry+=pA[i+2];elsecarry+=pA[i+2]+flag*pB[i+2];LC[i+2]=carry%10;carry/=10;if4/*需要借位针对减法*/LC[i+2]+=10;carry--;/*for*/if5/*最高进位针对加法*/LC[i+2]=carry;i++;ifLC[i+1]==0i--;/*若最高位为零针对减法*/LC[1]=i;return1;;/*ADD*/
[说明]在某些系统中存在非常复杂的对象可以采用循序渐进的方式进行组合将小对象组合成复杂的大对象以下实例展示了Builder生成器模式该实例用来建立文件文件内容包括一个标题一串字符以及一些有项目符号的项目Builder类规定组成文件的方法Director类利用这个方法产生一份具体的文件图5-1显示了各个类间的关系[图5-1]以下是C++语言实现能够正确编译通过[C++代码]classBuilderpublic:virtualvoidmakeTitlestringtitle=0;virtualvoidmakestringstringstr=0;virtualvoidmakeItems1items=0;virtualstringgetResult=0;;classDirectorprivate:2builder;public:DirectorBuilder*builderthis->builder=builder;stringconstructvectoritems;items.push_back早安;items.push_back午安;builder->makeTitleGreeting;builder->makeString从早上到白天结束;builder->makeItemsitems;builder->makeString到了晚上;3;//清空items向量items.push_back晚安;items.push_back好梦;builder->makeItemsitems;returnbuilder->getResult;;classTextBuilder:public4private:stringbuffer;public:TextBuilderbuffer=;voidmakeTitlestringtitlebuffer+========================================/n;buffer+=『+title+』/n;buffer+=/n;voidmakeStringstringstrbuffer+=■+str+/n;buffer+=/n;voidmakeItemsvectoritemsvector::iteratorit;forit=items.begin;it!=items.end;it++buffer+=.+*it+/n;buffer+=/n;stringgetResultbuffer+=========================/n;returnbuffer;;intmainDirector*director=newDirectornewTextBuilder;stringresult=stringdirector-5;cout
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图5-1显示了各个类间的关系以下是C++语言实现能够正确编译通过 [图5-1] [C++代码] template
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图7-1显示了各个类间的关系以下是JAVA语言实现能够正确编译通过 [图7-1] [C代码] typedefbool*fun1; typedef1*fun2; constintBOOK_MAX=10;//最大书本数 structBook charname30; ; structBookShelf//书架 structBookbooks[BOOKMAX]; intindex;//书架上最后一本书的下标加1即下一本书的下标如0表示有0本书 ; StructBook*getBookAtstructBookShelf*BSintindex //从书架BS上取得下标为index的书 //只有当下标大于等于0且不大于当前书架上的最后一本书对应的下标才取书成功 //否则失败返回NULL ifindex>=0&&2 return&BS->books[index]; returnNULL; boolappendBookstructBookShelf*BSstructBookbook ifBS->index<BOOK_MAX BS->books[BS->index++]=book; returntrue; returnfalse; intgetLengthstructBookShelf*bookShelf returnbookShelf->index; structIterator//迭代器 fun1hasNext;//判断是否还有下一个元素 fun2next;//取得下一个元素 ; structBookshelfIteratorf//书架迭代器 intindex; struetBookShelf*bookShelf; bookShelfIterator=0NULL; boolBShasNext//判断是否还有下一本书 ifbookShelfIterator.index returntrue; else returnfalse; structBook*BSnext//取得下一本书并将index加1以便下一次正确访问 returngetBookAtbookShelfIterator.bookShelf 3; voidmain structBookShelfbookShelf; bookShelf.index=0; //将书籍上架省略代码 //将bookShelf与bookShelfIterator相关联 bookShelfIterator.bookShelf=4; structIteratoriterator; iterator.hasNext=BShasNext; iterator.next=BSnext; structBook*b; while5//遍历书架输出书名 b=iterator.next; printf"%s/n"b->name; 5处填
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图5-1显示了各个类间的关系以下是C++语言实现能够正确编译通过 [图5-1] [C++代码] template
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图7-1显示了各个类间的关系以下是JAVA语言实现能够正确编译通过 [图7-1] [C代码] typedefbool*fun1; typedef1*fun2; constintBOOK_MAX=10;//最大书本数 structBook charname30; ; structBookShelf//书架 structBookbooks[BOOKMAX]; intindex;//书架上最后一本书的下标加1即下一本书的下标如0表示有0本书 ; StructBook*getBookAtstructBookShelf*BSintindex //从书架BS上取得下标为index的书 //只有当下标大于等于0且不大于当前书架上的最后一本书对应的下标才取书成功 //否则失败返回NULL ifindex>=0&&2 return&BS->books[index]; returnNULL; boolappendBookstructBookShelf*BSstructBookbook ifBS->index<BOOK_MAX BS->books[BS->index++]=book; returntrue; returnfalse; intgetLengthstructBookShelf*bookShelf returnbookShelf->index; structIterator//迭代器 fun1hasNext;//判断是否还有下一个元素 fun2next;//取得下一个元素 ; structBookshelfIteratorf//书架迭代器 intindex; struetBookShelf*bookShelf; bookShelfIterator=0NULL; boolBShasNext//判断是否还有下一本书 ifbookShelfIterator.index returntrue; else returnfalse; structBook*BSnext//取得下一本书并将index加1以便下一次正确访问 returngetBookAtbookShelfIterator.bookShelf 3; voidmain structBookShelfbookShelf; bookShelf.index=0; //将书籍上架省略代码 //将bookShelf与bookShelfIterator相关联 bookShelfIterator.bookShelf=4; structIteratoriterator; iterator.hasNext=BShasNext; iterator.next=BSnext; structBook*b; while5//遍历书架输出书名 b=iterator.next; printf"%s/n"b->name; 1处填
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图5-1显示了各个类间的关系以下是C++语言实现能够正确编译通过 [图5-1] [C++代码] template
[说明]一个新的音像商店准备向比较广泛的人群出租录像带和光碟该商店的管理决定在计算机系统的支持下来运作音像商店在货架上存放着题材广泛的当前流行的电影库由于同一个电影片名可能有于不同的导演而有不同的版本因此电影用电影代码区分而不用电影片名同一个版本有多份拷贝因此音像制品用一个唯一的编号标识某个特定的电影可以存放在录像带或光碟上录像带和光碟的租金不同录像带要么是Beta格式要么是VHS格式光碟为DVD格式容量比较大一张光碟可以存储同一电影片名的不同版本每个电影都有特定的租用期用天表示并带有在租用期内的租金音像商店必须能够立即回答关于某个电影的库存和有多少供租用的带子或光碟音像商店的店员负责定购音像联系客户音像上架并对客户的询问给出答复该系统采用面向对象方法开发系统中的类以及类之间的关系用UML类图表示图1-1是该系统的用例图图1-2是该系统的类图的一部分[图1-1][图1-2]根据题意给出电影类的主要属性
[说明]在某些系统中存在非常复杂的对象可以采用循序渐进的方式进行组合将小对象组合成复杂的对象以下实例展示了Builder生成器模式该实例用来建立文件文件内容包括一个标题一串字符以及一些有项目符号的项目Builder类规定组成文件的方法Director类利用这个方法产生一份具体的文件图6-1显示了各个类间的关系以下是Java语言实现能够正确编译通过[Java代码]//Builder.jav__件public1classBuilderpublicabstractvoidmakeTitleStringtitle;publicabstractvoidmakeStringStringstr;publicabstractvoidmakeItemsString[]items;publicabstractObjectgetResult;//Director.jav__件publicclassDirectorprivate2builder;publicDirectorBuilderbuilderthis.builder=builder;publicObjectconstructbuilder.makeTitleGreeting;builder.makeString从早上到白天结束;builder.makeItemsnewString[]早安午安;builder.makeString到了晚上;builder.makeItemsnewString[]晚安好梦;returnbuilder.getResult;//TextBuilder.jav__件publicclassTextBuilder3BuilderprivateStringBufferbuffer=newStringBuffer;publicvoidmakeTitleStringtitlebuffer.append『+title+』/n/n;publicvoidmakeStringStringstrbuffer.append’■’+str+/n/n;publicvoidmakeItemsString[]itemsforinti=0;i
[说明]假定用一个整型数组表示一个长整数数组的每个元素存储长整数的一位数字则实际的长整数m表示为m=a[k]×10k-2+a[k-1]×10k-3++a[3]×10+a[2]其中a[1]保存该长整数的位数a[0]保存该长整数的符号0表示正数1表示负数运算时先决定符号再进行绝对值运算对于绝对值相减情况总是绝对值较大的减去绝对值较小的以避免出现不够减情况注意不考虑溢出情况即数组足够大[函数]intcmpint*LAint*LB;/*比较长整数LA与LB的绝对值大小*//*若LA绝对值较大返回正值LA较小返回负值相等则返回0*/intADDint*LAint*LBint*LC/*计算长整数LA与LB的和结果存储于LC中*//*注意正数与负数的和相当于正数与负数绝对值的差*//*数据有误返回0正常返回1*/ifLA==NULL||LB==NULL||LC==NULLreturn0;int*pA*pBiNcarryflag;flag=LA[0]+LB[0];switchflag/*根据参与运算的两个数的符号进行不同的操作*/case0:case2:Lc[0]=LA[0];/*LA与LB同号结果符号与LALB相同*/pA=LA;pB=LB;1;break;case1:/*LA与LB异号*//*比较两者的绝对值大小结果符号与较大者相同*/flag=2;ifflag>0/*LA较大*/LC[0]=LA[0];pA=LA;pB=LB;elseifflag<0/*LB较大*/LC[0]=LB[0];pA=LB;pB=LA;else/*LA与LB相等*/LC[0]=0;LC[1]=0;return1;flag=-1;break;default:return0;break;/*switch*//*绝对值相加减*//*注意对于减法pA指向较大数pB指向较小数不可能出现不够减情况*/3;N=LA[1]>LB[1]LA[1]:LB[1];fori=0;i
=pA[1]/*LA计算完毕*/carry+=flag*pB[i+2];elseifi>=pB[1]/*LB计算完毕*/carry+=pA[i+2];elsecarry+=pA[i+2]+flag*pB[i+2];LC[i+2]=carry%10;carry/=10;if4/*需要借位针对减法*/LC[i+2]+=10;carry--;/*for*/if5/*最高进位针对加法*/LC[i+2]=carry;i++;ifLC[i+1]==0i--;/*若最高位为零针对减法*/LC[1]=i;return1;;/*ADD*/
[说明]在某些系统中存在非常复杂的对象可以采用循序渐进的方式进行组合将小对象组合成复杂的大对象以下实例展示了Builder生成器模式该实例用来建立文件文件内容包括一个标题一串字符以及一些有项目符号的项目Builder类规定组成文件的方法Director类利用这个方法产生一份具体的文件图5-1显示了各个类间的关系[图5-1]以下是C++语言实现能够正确编译通过[C++代码]classBuilderpublic:virtualvoidmakeTitlestringtitle=0;virtualvoidmakestringstringstr=0;virtualvoidmakeItems1items=0;virtualstringgetResult=0;;classDirectorprivate:2builder;public:DirectorBuilder*builderthis->builder=builder;stringconstructvectoritems;items.push_back早安;items.push_back午安;builder->makeTitleGreeting;builder->makeString从早上到白天结束;builder->makeItemsitems;builder->makeString到了晚上;3;//清空items向量items.push_back晚安;items.push_back好梦;builder->makeItemsitems;returnbuilder->getResult;;classTextBuilder:public4private:stringbuffer;public:TextBuilderbuffer=;voidmakeTitlestringtitlebuffer+========================================/n;buffer+=『+title+』/n;buffer+=/n;voidmakeStringstringstrbuffer+=■+str+/n;buffer+=/n;voidmakeItemsvectoritemsvector::iteratorit;forit=items.begin;it!=items.end;it++buffer+=.+*it+/n;buffer+=/n;stringgetResultbuffer+=========================/n;returnbuffer;;intmainDirector*director=newDirectornewTextBuilder;stringresult=stringdirector-5;cout
[说明] 对多个元素的聚合进行遍历访问时需要依次推移元素例如对数组通过递增下标的方式数组下标功能抽象化一般化的结果就称为迭代器Iterator模式以下程序模拟将书籍Book放到书架BookShelf上并依次输出书名这样就要涉及到遍历整个书架的过程使用迭代器Iterator实现图7-1显示了各个类间的关系以下是JAVA语言实现能够正确编译通过 [图7-1] [C代码] typedefbool*fun1; typedef1*fun2; constintBOOK_MAX=10;//最大书本数 structBook charname30; ; structBookShelf//书架 structBookbooks[BOOKMAX]; intindex;//书架上最后一本书的下标加1即下一本书的下标如0表示有0本书 ; StructBook*getBookAtstructBookShelf*BSintindex //从书架BS上取得下标为index的书 //只有当下标大于等于0且不大于当前书架上的最后一本书对应的下标才取书成功 //否则失败返回NULL ifindex>=0&&2 return&BS->books[index]; returnNULL; boolappendBookstructBookShelf*BSstructBookbook ifBS->index<BOOK_MAX BS->books[BS->index++]=book; returntrue; returnfalse; intgetLengthstructBookShelf*bookShelf returnbookShelf->index; structIterator//迭代器 fun1hasNext;//判断是否还有下一个元素 fun2next;//取得下一个元素 ; structBookshelfIteratorf//书架迭代器 intindex; struetBookShelf*bookShelf; bookShelfIterator=0NULL; boolBShasNext//判断是否还有下一本书 ifbookShelfIterator.index returntrue; else returnfalse; structBook*BSnext//取得下一本书并将index加1以便下一次正确访问 returngetBookAtbookShelfIterator.bookShelf 3; voidmain structBookShelfbookShelf; bookShelf.index=0; //将书籍上架省略代码 //将bookShelf与bookShelfIterator相关联 bookShelfIterator.bookShelf=4; structIteratoriterator; iterator.hasNext=BShasNext; iterator.next=BSnext; structBook*b; while5//遍历书架输出书名 b=iterator.next; printf"%s/n"b->name; 3处填
[说明]一个新的音像商店准备向比较广泛的人群出租录像带和光碟该商店的管理决定在计算机系统的支持下来运作音像商店在货架上存放着题材广泛的当前流行的电影库由于同一个电影片名可能有于不同的导演而有不同的版本因此电影用电影代码区分而不用电影片名同一个版本有多份拷贝因此音像制品用一个唯一的编号标识某个特定的电影可以存放在录像带或光碟上录像带和光碟的租金不同录像带要么是Beta格式要么是VHS格式光碟为DVD格式容量比较大一张光碟可以存储同一电影片名的不同版本每个电影都有特定的租用期用天表示并带有在租用期内的租金音像商店必须能够立即回答关于某个电影的库存和有多少供租用的带子或光碟音像商店的店员负责定购音像联系客户音像上架并对客户的询问给出答复该系统采用面向对象方法开发系统中的类以及类之间的关系用UML类图表示图1-1是该系统的用例图图1-2是该系统的类图的一部分[图1-1][图1-2]根据题意补充图1-2的类图中缺失的类之间的关系用UML表示法表示要求标出重复度在UML中重复度Multiplicity定义了某个类的一个实例可以与另一个类的多少个实例相关联通常把它写成一个表示取值范围的表达式或者一个具体的值
[说明]在某些系统中存在非常复杂的对象可以采用循序渐进的方式进行组合将小对象组合成复杂的对象以下实例展示了Builder生成器模式该实例用来建立文件文件内容包括一个标题一串字符以及一些有项目符号的项目Builder类规定组成文件的方法Director类利用这个方法产生一份具体的文件图7-1显示了各个类间的关系[图7-1]以下是C语言实现能够正确编译通过[C代码]typedefvoid1char*title;typedefvoid*fun2charitems[][10]intN;typedefchar**fun3;charbuffer[500];structBuilder//构造器fun1makeTitle;2makeString;fun2makeItems;fun3getResult;;structDirectorstructBuilderbuilder;;char*construct3director//构造文件charitems[2][10]=早安午安;director->builder.makeTitleGreeting;director->builder.makeString从早上到白天结束;director->builder.makeItemsitems2;director->builder.makeString到了晚上;strcpyitems[0]晚安;strcpyitems[1]好梦;director->builder.makeItemsitems2;returndirector->builder.getResult;voidTXTmakeTitlechar*titlestrcatbuffer『;Strcatbuffertitle;strcatbuffer』/n/n;voidTXTmakeStringchar*strstrcatbuffer■;Strcatbufferstr;strcatbuffer/n/n;voidTXTmakeItemscharitems[][10]intN//将items加入文件中forinti=0i
[说明]为了有效记录交通事故情况欲设计一个交通事故记录系统一辆汽车有一个唯一的车牌号车主购买汽车时需要提供相关信息包括身份证姓名年龄性别地址等一个车主可以拥有多辆汽车而一辆汽车只有一个车主驾驶员不一定是车主因此记录交通事故时要记录驾驶员身份证号同时记录事故发生时刻图2-1描绘了人汽车交通事故三个实体类型及实体间联系的一个E-R图[图2-1]对应的关系模式为·人身份证号姓名性别年龄地址·汽车车牌号型号·事故车牌号身份证号时刻损失描述·拥有身份证号车牌号创建人表时身份证号使用INTEGER数据类型并且要求此列值不能为空值惟一姓名列不能为空请在下列用于创建表人的SQL语句空缺处填入正确的内容CREATETABLE人身份证号INTEGER姓名CHAR201性别CHAR1年龄INTEGER地址CHAR202
[说明]某学校的教学系统描述如下学生信息包括学号Sno姓名Sname性别Ssex年龄Sage入学年份Syear主修专业Smajor其中学号是入学时唯一编定的教师信息包括教工号Tno姓名Tname性别Tsex年龄Tage职称Title其中教工号是唯一编定的课程信息包括课程号Cno课程名称Cname学时Cpeiiod学分Ccredit其中课程号是唯一编定的每个专业每个年级只有一个班级这样班级就可用入学年份标识每位教师只教授特定的一门的课程每门课程可以有多个教师教授各位老师的上课地点及上课时间有所不同注意一门课程至少有一位教师教授否则这门课程就视为不存在每位学生可以同时选修多门不同的课程一门课程至少要有10位学生选修否则就取消这门课程的开设注意选修课程时要指定任课教师不能重复选修同一门课程课程结束后任课教师给选修该课程的学生一个成绩Grade注意教师不能给没有选修他所教授课程的学生成绩即使选修了其他教师教授的同一门课也不行图2-1是经分析得到的E-R图[图2-1]若用Student表存储学生信息Teacher表存储教师信息Course表存储课程信息Study表存储学生选修课程情况教务处想要查询2006年入学的计算机专业CS的学生中平均成绩在85分以上的学生信息请将以下SQL语句补充完整注用对应英文表示SELECT*FROMstudentWHERESmajor=CSANDSyear=2006AND1SELECTSnoFROMStudyGROUPBYSnoHAVING2
[说明]在某些系统中存在非常复杂的对象可以采用循序渐进的方式进行组合将小对象组合成复杂的对象以下实例展示了Builder生成器模式该实例用来建立文件文件内容包括一个标题一串字符以及一些有项目符号的项目Builder类规定组成文件的方法Director类利用这个方法产生一份具体的文件图6-1显示了各个类间的关系以下是Java语言实现能够正确编译通过[Java代码]//Builder.jav__件public1classBuilderpublicabstractvoidmakeTitleStringtitle;publicabstractvoidmakeStringStringstr;publicabstractvoidmakeItemsString[]items;publicabstractObjectgetResult;//Director.jav__件publicclassDirectorprivate2builder;publicDirectorBuilderbuilderthis.builder=builder;publicObjectconstructbuilder.makeTitleGreeting;builder.makeString从早上到白天结束;builder.makeItemsnewString[]早安午安;builder.makeString到了晚上;builder.makeItemsnewString[]晚安好梦;returnbuilder.getResult;//TextBuilder.jav__件publicclassTextBuilder3BuilderprivateStringBufferbuffer=newStringBuffer;publicvoidmakeTitleStringtitlebuffer.append『+title+』/n/n;publicvoidmakeStringStringstrbuffer.append’■’+str+/n/n;publicvoidmakeItemsString[]itemsforinti=0;i
[说明] 当一元多项式中有许多系数为零时可用一个单链表来存储每个节点存储一个非零项的指数和对应系数 为了便于进行运算用带头节点的单链表存储头节点中存储多项式中的非零项数且各节点按指数递减顺序存储例如多项式8x5-2x2+7的存储结构为 函数中使用的预定义符号如下 #defineEPSI1e-6 structNode/*多项式中的一项*/ doublec;/*系数*/ inte;/*指数*/ structNode*next; ; typedefstruct/*多项式头节点*/ intn;/*多项式不为零的项数*/ structNode*head; POLY; [函数] voidDelPOLY*CstructNode*p /*若p是空指针则删除头节点否则删除p节点的后继*/ structNode*t; /*C是空指针或C没有节点*/ ifC==NULL||C->head==NULLreturn; if1/*删除头节点*/ t=C->head; C->head=t->next; return; /*if*/ t=p->next; p->next=t->next; ;/*Del*/ voidInsertPOLY*CstruetNode*pC /*将pC节点按指数降序插入到多项式C中*/ /*若C中存在pC对应的指数项则将系数相加若其结果为零则删除该节点*/ structNode*t*tp; /*pC为空指针或其系数近似为零*/ ifpC==NULL||fabspC->c<EPSIreturn; ifC->head==NULL/*若C为空作为头节点插入*/ C->head=pC; pC->next=NULL; C->n++; return; /*if*/ /*若pC的指数比头节点的还大插入到头节点之前*/ ifpC->e>C->head-e 2; C->head=pC; C->n++; return; /*if*/ 3; t=C->head; whilet!=NULL ift->e>pC->e tp=t; t=t->next; elseift->e==pC->e/*C中已经存在该幂次项*/ t->c+=pC->c;/*系数相加*/ iffabst->c<EPSI/*系数之和为零*/ 4;/*删除对应节点*/ C->n--; 5; elset=NULL;/*C中已经不存在该幂次项*/ /*while*/ ift==NULL/*适当位置插入*/ pC->next=tp->next; tp->next=pC; C->n++; /*if*/ ;/*Insert*/ 2处填
热门题库
更多
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术