软件设计师2011年11月下午题(附答案)

合集下载

2011年11月软考网络规划设计师 真题+答案解析

2011年11月软考网络规划设计师 真题+答案解析

第10章2011下半每网络规划设计师上午前题分析与解笛试题(1)Cl)传递需要调制编码。

A.数字数据在数字信道上C.模拟数据在数字信道上试题(1)分析B.数字数据在模拟信道上D.模拟数据在模拟信道上本题考查数字传输与模拟传输和模拟数据和数字数据调制的基本概念。

按承载信息的电信号形式不同,通信可分为模拟传输和数字传输。

模拟传输是以模拟信号来传输消息的通信方式,在模拟信道上传输:数字传输是指用数字信号来传送消息的方式,在数字通道上传输。

数字数据在数字信道上传输需要将其转变为数字信号,采用相应的数字编码:数字数据在模拟信道上传输需要调制成模拟信号:模拟数据在数字{言道上传输时,需要将其通过量化编码转成数字信号:模拟数据在模拟信道上传输时,可以进行调制也可以不进行调制传输。

参考答案(1)B试题。

)某一基带系统,若传输的比特数不变,而将二电平传输改为八电平传输,如T2和TS分别表示二电平和人电平码元问隅,则它们的关系是_ill_,(2) A. T8=3T2 B.T8=2T2 C.T8=8T2 D.T8=4T2试题。

〉分析本题考查数据通信的基本概念。

数据通信系统传输的有效程度可以用码元传输速率和信息传输速率来描述。

码元传输速率表示单位时间内数据通信系统所传输的码元个数,这里的码元可以是二进制,也可以是多进制的。

信息传输速率又可称为信息速率、比特率等,表示单位时间内数据通信系统所传输的二进制码元个数。

在M电平传输系统中,信息速率Rb和码元率Rs之间的关系为:Rb=R s log,M数据通信系统传输中,若传输的比特数不变,传输电平数增加,传输周期就要展宽。

本题中,Rb=3R s,所以T8=3T2,参考答案(2) A。

2011年下半年11月下午 软件测评师 试题及答案与解析-全国软考真题

2011年下半年11月下午 软件测评师 试题及答案与解析-全国软考真题

2011年下半年下午软件测评师考试试题-案例分析-答案与解析试题一(共15分)【说明】场景法是黑盒测试中重要的测试用例设计方法,通过场景描述业务流程(包括基本流(基本业务流程)和备选流(分支业务流程)),设计测试用例遍历软件系统功能,验证其正确性。

下面是对电子不停车收费系统(ETC)的基本流和备选流的描述。

【问题1】使用场景法设计测试用例,指出所涉及到的基本流和备选流。

基本流用A字母编号表示,备选流用表1-2中对应的字母编号表示。

【参考答案】T01:AT02:A、BT01:AT02:A、BT03:A、CT04:A、DT05:A、ET06:A、B、CT07:A、B、DT08:A、B、E【问题2】针对问题1设计的测试用例,依次将初次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等信息填入下述测试用例表中。

表中行代表各个测试用例,列代表测试用例的输入值,用V表示有效数据元素,用I表示无效数据元素,n/a表示不适用,例如T01表示“成功通过”用例。

【参考答案】解析:根据问题1中设计的所有测试用例,测试人员需要设计具体的场景分析,其中应包括场景变化中系统所关心的状态信息的变化,以及测试结束后预期的结果。

这样,在测试人员进行实际测试后,可以用实际输出结果与预期结果进行比较,来评价测试的结果。

问题2中给出了系统所关心的状态,包括:次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等,因此对应的测试用例表如下所示。

试题二【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。

针对以下由C语言编写的程序,按要求回答问题。

【问题1】请给出满足100%DC(判定覆盖)所需的逻辑条件。

【参考答案】解析:本问题考查白盒测试用例设计方法中的判定覆盖法。

判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。

2011年下半年程序员下午试题答案

2011年下半年程序员下午试题答案

全国计算机技术与软件专业技术资格(水平)考试 2011年下半年 程序员 下午试卷参考答案程序员下午试题共六题,试题一至试题四为必答题,试题五至试题六选择一题解答。

每题15分,满分75分。

若解答正确给满分;若答出部分要点,可酌情给分,但不给满分。

试题一(共15分)(1)0 (3分)(2)1 (3分)(3)P*(A(i)-k)或等价表示 (3分)(4)P=0 或等价表示 (3分)(5)m+1 或等价表示 (3分)试题二(共15分)以上解答不分次序试题三(共15分)(1)j++,或++j,或其等价表示 (3分)(2)0 (3分)(3)MAXP2=MAXP1 (3分)(4)totalP+=data[M][j],或totalP+=totalP+data[M][j],或其等价表示 (3分)(5)(double)MAxP1/totalP,或(float)MAXP1/totalP,或其等价表示 (3分)其中,将(double)或(float)写在totalP之前亦可试题四(共15分)(1)i (3分)(2)m-1 (3分)(3)p=p->next (3分)(4)p->next->No (3分)(5)p->next (3分)试题五(共15分)(1):public ComputerAsset (3分)(2):public ComputerAsset, public PowerSwitchable (3分)(3)PowerSwitchable* (3分)(4)numItems++ (3分)(5)new (3分)试题六(共15分)(1)extends BuildingLight (3分)(2)extends BuildingLight implements PowerSwitchable (3分)(3)PowerSwitchable (3分)(4)numItems++ (3分)(5)new (3分)(与本参考答案对应的试题请在软考网下载。

2011年下半年11月下午 软件测评师 试题及答案与解析-全国软考真题

2011年下半年11月下午 软件测评师 试题及答案与解析-全国软考真题

2011年下半年下午软件测评师考试试题-案例分析-答案与解析试题一(共15分)【说明】场景法是黑盒测试中重要的测试用例设计方法,通过场景描述业务流程(包括基本流(基本业务流程)和备选流(分支业务流程)),设计测试用例遍历软件系统功能,验证其正确性。

下面是对电子不停车收费系统(ETC)的基本流和备选流的描述。

【问题1】使用场景法设计测试用例,指出所涉及到的基本流和备选流。

基本流用A字母编号表示,备选流用表1-2中对应的字母编号表示。

【参考答案】T01:AT02:A、BT01:AT02:A、BT03:A、CT04:A、DT05:A、ET06:A、B、CT07:A、B、DT08:A、B、E【问题2】针对问题1设计的测试用例,依次将初次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等信息填入下述测试用例表中。

表中行代表各个测试用例,列代表测试用例的输入值,用V表示有效数据元素,用I表示无效数据元素,n/a表示不适用,例如T01表示“成功通过”用例。

【参考答案】解析:根据问题1中设计的所有测试用例,测试人员需要设计具体的场景分析,其中应包括场景变化中系统所关心的状态信息的变化,以及测试结束后预期的结果。

这样,在测试人员进行实际测试后,可以用实际输出结果与预期结果进行比较,来评价测试的结果。

问题2中给出了系统所关心的状态,包括:次读取车辆信息、最终读取车辆信息、账户号码、账户余额和账户状态等,因此对应的测试用例表如下所示。

试题二【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。

针对以下由C语言编写的程序,按要求回答问题。

【问题1】请给出满足100%DC(判定覆盖)所需的逻辑条件。

【参考答案】解析:本问题考查白盒测试用例设计方法中的判定覆盖法。

判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。

2011年上半年软件设计师下午试卷

2011年上半年软件设计师下午试卷

全国计算机技术与软件专业技术资格(水平)考试2011年上半年软件设计师下午试卷(考试时间14:00~16:30 共150分钟)1. 在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。

2. 在答题纸的指定位置填写准考证号、身份证号和姓名。

3. 答题纸上除填写上述内容外只能写解答。

4. 本试卷共6道题,试题一至试题四是必答题,试题五和试题六选答1道。

每题15分,满分75分。

5. 解答时字迹务必清楚,字迹不清时,将不评分。

6. 仿照下面例题,将解答写在答题纸的对应栏内。

例题2011年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(1)月(2)日。

因为正确的解答是“5月21日”,故在答题纸的对应栏内写上“5”和“21”(参看下表)。

试题一(共15分)阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】某医院欲开发病人监控系统。

该系统通过各种设备监控病人的生命体征,并在生命体征异常时向医生和护理人员报警。

该系统的主要功能如下:(1)本地监控:定期获取病人的生命体征,如体温、血压、心率等数据。

(2)格式化生命体征:对病人的各项重要生命体征数据进行格式化,然后存入日志文件并检查生命体征。

(3)检查生命体征:将格式化后的生命体征与生命体征范围文件中预设的正常范围进行比较。

如果超出了预设范围,系统就发送一条警告信息给医生和护理人员。

(4)维护生命体征范围:医生在必要时(如,新的研究结果出现时)添加或更新生命体征值的正常范围。

(5)提取报告:在医生或护理人员请求病人生命体征报告时,从日志文件中获取病人生命体征生成体征报告,并返回给请求者。

(6)生成病历:根据日志文件中的生命体征,医生对病人的病情进行描述,形成病历存入病历文件。

(7)查询病历:根据医生的病历查询请求,查询病历文件,给医生返回病历报告。

(8)生成治疗意见:根据日志文件中的生命体征和病历,医生给出治疗意见,如处方等,并存入治疗意见文件。

中级软件设计师2011下半年下午试题

中级软件设计师2011下半年下午试题

数据流名称
起点
终点
试题二 阅读下列说明。
[说明]
某物流公司为了整合上游供应商与下游客户,缩短物流过程,降低产品库存,需要 构建一个信息系统以方便管理其业务运作活动。
[需求分析结果] (1)物流公司包含若干部门,部门信息包括部门号、部门名称、经理、电话和邮箱。 一个部门可以有多名员工处理部门的日常事务,每名员工只能在一个部门工作。每个 部门有一名经理,只需负责管理本部门的事务和人员。 (2)员工信息包括员工号、姓名、职位、电话号码和工资;其中,职位包括:经理、 业务员等。业务员根据托运申请负责安排承运货物事宜,例如:装货时间、到达时间 等。一个业务员可以安排多个托运申请,但一个托运申请只由一个业务员处理。 (3)客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银 行账号,其中,客户号唯一标识客户信息的每一个元组。每当客户要进行货物托运时, 先要提出货物托运申请。托运申请信息包括申请号、客户号、货物名称、数量、运费、 出发地、目的地。其中,一个申请号对应唯一的一个托运申请;一个客户可以有多个 货物托运申请,但一个托运申请对应唯一的一个客户号。 [概念模型设计] 根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如图2-1所示。
virtual void turnCrank21=0; //按下“出纸巾”按钮
virtual void dispense21=0;
//出纸巾
}; /*类SoldOutState、NoQuarterState、HasQuarterState、SoldState的定义省略, 每个类中均定义了私有数据成员TissueMachine* tissueMachine;*/ class TissueMachine { private:

2011年11月全国计算机技术与软件专业技术资格(水平)考试《程序员(初级)》下午考试真题及详解

2011年11月全国计算机技术与软件专业技术资格(水平)考试《程序员(初级)》下午考试真题及详解

2011年11月全国计算机技术与软件专业技术资格(水平)考试《程序员(初级)》下午考试真题及详解试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。

【说明】流程图1-1用于检查数组A[1:n]中的元素是否为自然数1~n的一个排列(含有1~n 各数)。

若是,则输出OK,否则输出所缺的自然数及其个数m。

为检查A[1:n]中是否含有k,只要判断P(k)=(A(1)-k)*(A(2)-k)*…*(A (n)-k)是否等于0即可。

【流程图】图1-1 流程图【答案】(1)0(2)1(3)P*(A(i)-k)(4)P=0(5)m+1【解析】从流程图看出,首先需要对m赋初值,然后对k=1,2,…,n循环,检查数组A中是否含k。

为此,在该循环中,需要嵌套内循环来计算P(k)。

然后判断计算结果P的值是否等于0,来决定数组A中是否含k,并采取相应的动作。

为了对i循环计算累乘的P(k),需要先在P中送初值1,因此(2)处应填1。

并在(3)处填写P*(A(i)-k)进行累乘。

内循环结束后,(4)处应判断P=0是否成立,P=0表示数组A中含k,否则表示数组A中缺k,因此(4)处应填写P=0。

如果数组A中缺k,则缺数计数m应增1,因此,(5)处应填m+1,而m的初值应为0,从而(1)处应填0。

试题二(共15分)阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。

【说明】下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字按逆序转换为字符串保存并输出。

若num为负整数,则输出字符串应有前缀“-”。

例如,将该程序修改正确后,运行时若输入“14251”,则输出“15241”;若输入“-6319870”,则输出“-0789136”。

下面给出的C程序代码中有五处错误,请指出错误代码所在的行号并给出修改正确后的完整代码行。

【C程序代码】【答案】【解析】第7行为格式化输入函数scanf的调用语句,该行丢失了变量前的取地址运算符号“&”。

2011年下半年网络工程师真题及答案

2011年下半年网络工程师真题及答案

2011年11月软考网络工程师上午题 ● 若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地址码送入(1)(1)A.PC(程序计数器) B .AR(地址寄存器) C .AC(累加器) D .ALU(算术逻辑运算单元) ● 若某计算机系统的I/O 接口与主存采用统一编址,则输入输出操作是通过 ( 2 ) 指令来完成的:(2)A .控制 B . 中断 C . 输入输出 D . 缓存● 在程序的执行过程中,CACHE 与主存的地址映像由 ( 3 )01-05 ADACB 06-10 AACDA 11-15 CABCC 16-20 BBBBB(3)A .专门的硬件自动完成 B .程序员进行调度C .操作系统进行管理D .程序员和操作系统共同协调完成● 总线复用方式可以 (4)(4)A .提高总线的传输带宽 B .增加总线的功能C .减少总线中信号线的数量D .提高CPU 利用率● 确定软件的模块划分及模块之间的调用关系是 (5) 阶段的任务(5)A .需求分析 B .概要设计 C .详细设计 D .编码● 利用结构化分析模型进行接口设计时,应以 (6) 为依据:(6)A .数据流图 B .实体-关系图 C .数据字典 D .状态-迁移图● 下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的值表示完成活动所需要的时间,则关键路径长度为(7)开始结束(7)A .20 B .19 C .17 D.16● 若某文件系统的目录结构如下图所示,假设用户要访问文件f1.java,且当前工作目录为Program,则该文件的全文件名为(8) ,其相对路径为(9)(8)A .f1.java B .\Document\Java-prog\f1.javaC .D:\Program\Java-prog\f1.javaD .Program\Java-prog\f1.java(9 ) A .Java-prog\ B .\Java-prog\ C .Program\Java-prog D .Program\Java-prog\●(10) 指可以不经著作权人许可,无需支付报酬,使用其作品:(10)A.合理使用B.许可使用C.强制许可使用D.法定许可使用●两个自治系统(AS)之间使用的路由协议是(11) :(11)A.RIP B.OSPF C.BGP D.IGRP●一个以太网交换机,读取整个数据帧,对数据帧进行差错校验后再转发出去,这种交换方式称为(12) (12)A.存储转发交换B.直通交换C.无碎片交换D.无差错交换●以下关于光纤通信的叙述中,正确的是(13) :(13)A.多模光纤传输距离远,而单模光纤传输距离近;B.多模光纤的价格便宜,而单模光纤的价格较贵;C.多模光纤的包层外径较粗,而单模光纤包层外径较细;D.多模光纤的纤芯较细,单模光纤的纤芯较粗。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件设计师2011年11月下午题(附答案)试题一阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

[说明]某公司欲开发招聘系统以提高招聘效率,其主要功能如下:(1)接受申请验证应聘者所提供的自身信息是否完整,是否说明了应聘职位,受理验证合格的申请,给应聘者发送致谢信息。

(2)评估应聘者根据部门经理设置的职位要求,审查已经受理的申请;对未被录用的应聘者进行谢绝处理,将未被录用的应聘者信息存入未录用的应聘者表,并给其发送谢绝决策;对录用的应聘者进行职位安排评价,将评价结果存入评价结果表,并给其发送录用决策,发送录用职位和录用者信息给工资系统。

现采用结构化方法对招聘系统进行分析与设计,获得如图1-1所示的顶层数据流图、图1-2所示0层数据流图和图1-3所示1层数据流图。

图1-1 顶层数据流图图1-2 0层数据流图图1-3 1层数据流图[问题1]使用说明中的术语,给出图中E1~E3所对应的实体名称。

[问题2]使用说明中的术语,给出图中D1~D2所对应的数据存储名称。

[问题3]使用说明和图中的术语,给出图1-3中加工P1~P3的名称。

[问题4]解释说明图1-2和图1-3是否保持平衡,若不平衡请按如下格式补充图1-3中数据流的名称以及数阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

[说明]某物流公司为了整合上游供应商与下游客户,缩短物流过程,降低产品库存,需要构建一个信息系统以方便其业务动作活动。

[需求分析结果](1)物流公司包含若干部门,部门信息包括部门号、部门名称、经理、电话和邮箱。

一个部门可以有多名员工处理日常事务,每名员工只能在一个部门工作。

每个部门有一名经理,只需负责本部门的事务和人员。

(2)员工信息包括员工号、姓名、职位、电话号码和工资;其中,职位包括:经理、业务员等。

业务员根据托运申请负责安排承运货物事宜,例如:装货时间、到达时间等。

一个业务员可以安排多个托运申请,但一个托运申请只由一个业务员处理。

(3)客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银行账号,其中,客户号唯一信息的每一个元组。

每当客户要进行货物托运时,先要提出货物托运申请。

托运申请信息包括申请号、客户号、货物名称、数量、运费、出发地、目的地。

其中,一个申请号对应唯一的一个托运申请;一个客户可以有多个货物托运申请,但一个托运申请对应唯一的客户号。

[概念模型设计]根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如图2-1所示。

图2-1 实体联系图[关系模式设计]部门(部门号,部门名称,经理,电话,邮箱)员工(员工号,姓名,职位,电话号码,工资,(a))客户((b),单位名称,通信地址,所属省份,联系人,联系电话,银行账号)托运申请((c),货物名称,数量,运费,出发地,目的地)安排承运((d),装货时间,到达时间,业务员)[问题1]根据问题描述,补充四个联系、联系的类型,以及实体与子实体的联系,完善图2-1所示的实体联系图。

[问题2]根据实体联系图,将关系模式中的空(a)~(b)补充完整。

分别指出部门、员工和安排承运关系模式的主键和外键。

[问题3]若系统新增需求描述如下:为了数据库信息的安全性,公司要求对数据库操作设置权限管理功能,当员工登录系统时,系统需要检查员工的权限。

权限的设置是人事部门经理。

为满足上述需要,应如何修改(或补充)图2-1所示的实体联系图,请给出修改后的实体联系图和关系模式。

试题三阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。

[说明]Pay&Drive系统(开多少付多少)能够根据驾驶里程自动计算应付的费用。

系统中存储了特定区域的道路交通网的信息。

道路交通网由若干个路段(Road Segment)构成,每个路段由两个地标点(Node)标定,其里程数(Distance)是已知的。

在某些地址坐标点上安装了访问控制(Access Control)设备,可以自动扫描行驶卡(Card)。

行程(Trajectory)由一组连续的路段构成。

行程的起点(Entry)和终点(Exit)都装有访问控制设备。

系统提供了3种行驶卡。

常规卡(Regular Card)有效期(Valid Period)为一年,可以在整个道路交通网内使用。

季卡(Season Card)有效期为三个月,可以在整个道路交通网内使用。

单次卡(Minitrip Card)在指定的行程内使用,且只能使用一次。

其中,季卡和单次卡都是预付卡(Prepaid Card),需要客户(Customer)预存一定的费用。

系统的主要功能有:客户注册、申请行驶卡、使用行驶卡等。

使用常规卡行驶,在进入行程起点时,系统记录行程起点为、进入时间(Date Of Entry)等信息。

在到达行程终点时,系统根据行驶的里程数和所持卡的里程单价(Unit Price)计算应付费用,并打印费用单(Invoice)。

季卡的使用流程与常规卡类似,但是不需要打印费用单,系统自动从卡中扣除相应付费用。

单次卡的使用流程与季卡类似,但还需要在行程的起点和终点上检查行驶路线是否符合该卡所规定的行驶路线。

现采用面向对象方法开发该系统,使用UML进行建模。

构建出的用例图和类图分别如图3-1和图3-2所示。

图3-1 用例图+begin图3-2 类图[问题1]根据说明中的描述,给出图3-1中U1和U2所对应的用例,以及(1)所对应的关系。

[问题2]根据说明中的描述,给出图3-2中缺少的C1~C6所对应的类名以及(2)~(3)处所对应的多重度(类名使用说明中的英文词汇)。

[问题3]根据说明中的描述,给出Road Segment、Trajectory和Card所对应的类的关键属性(属性名使用说明中给出的英文词汇)。

试题四阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

[说明]设某机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。

供应商j供应的部件i 具有重量Wij和价格Cij。

设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。

采用回溯法来求解该问题:首先定义解空间。

解空间由长度为n的向量组成,其中每个分量取值来自集合{1, 2, …, m},将解空间用树形结构表示。

接着从根结点开始,以深度优先的方式搜索整个解空间。

从根结点开始,根结点成为活结点,同时也成为当前的扩展结点。

向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新结点。

判断当前的机器价格(C11)是否超过上限(cc),重量(W11)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,根结点不再是扩展结点。

继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新结点。

同样判断当前的机器价格(C11+C21)是否超过上限(cc),重量(W11+W21)是否比当前已知的解(最小重量)大。

若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,原来的结点不再是扩展结点。

以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活结点为止。

[C代码]下面是该算法的C语言实现。

(1)变量说明n:机器的部件数m:供应商数cc:价格上限w[][]:二维数组,w[i][j]表示第j个供应商供应的第i个部件的重量c[][]:二维数组,c[i][j]表示第j个供应商供应的第i个部件的价格best1W:满足价格上限约束条件的最小机器重量bestC:最小重量机器的价格bestX[]:最优解,一维数组,bestX[i]表示第i个部件来自哪个供应商cw:搜索过程中机器的重量cp:搜索过程中机器的价格x[]:搜索过程中产生的解,x[i]表示第i个部件来自哪个供应商i:当前考虑的部件,从0到n-1j:循环变量(2)函数backtrackInt n = 3;Int m = 3;Int cc = 4;Int w[3][3] = { {1, 2, 3}, {3, 2, 1}, {2, 2, 2} };Int c[3][3] = { {1, 2, 3}, {3, 2, 1}, {2, 2, 2} };Int bestW = 8;Int bestC = 0;Int bestX[3] = {0, 0, 0};Int cw = 0;Int cp = 0;Int x[3] = {0, 0, 0};Int backtrack(int i){Int j = 0;Int found = 0;If(i > n-1){/*得到问题解*/bestW = cw;bestC = cp;for(j = 0; j < n; j++){(1) ;}Return 1;}If(cp <= cc){/*有解*/Found = 1;}For (j = 0; (2) ; j++){/*第i个部件从第j个供应商购买*/(3) ;Cw = cw + c[i][j];Cp = cp + c[i][j];If(cp <= cc && (4) {/*深度搜索,扩展当前结点*/If(backtrack(i+1) ){found = 1;}}/*回溯*/Cw = cw – w[i][j];(5) ;}Return found;}试题五阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

[说明]某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。

纸巾售卖机的状态图如图5-1所示。

图5-1 纸巾售卖机状态图采用状态(State)模式来实现该纸巾售卖机,得到如图5-2所示的类图。

其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。

类SoldState、SoldOutState、NoQuarterState和HasQuarterState 分别对应图5-1中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。

图5-2 类图[C++代码]#include<iostream>Using namespace std;//以下为类的定义部分Class TissueMachine; //类的提前引用Class State{Public:Virtual void insertQuarter() = 0; //投币Virtual void ejectQuarter() = 0; //退币Virtual void turnCrank() = 0; //按下“出纸巾”按钮Virtual void dispense() = 0; //出纸巾};/*类SoldOutState, NoQuarterState, HasQuarterState, SoldState的定义省略,每个类中均定义了私有数据成员TissueMachine* tissueMachine;*/Class TissueMachine{Private:(1) *soldOutState, *noQuarterState, *hasQuarterState, *soldState, *state;Int count; //纸巾数Public:TissueMachine(int numbers);Void setState(State* state);State* getHasQuarterState();State* getNoQuarterState();State* getSoldState();State* getSoldOutState();Int getCount();//其余代码省略};//以下为类的实现部分Void NoQuarterState::intsertQuarter(){tissueMachine->setState( (2) );}Void HasQuarterState::ejectQuarter(){tissueMachine->setState( (3) );}Void SoldState::dispense(){If(tissueMachine->getCount() > 0){tissueMachine->setState( (4) );}Else{tissueMachine->setState( (5) );}}//其余代码省略试题六阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

相关文档
最新文档