问题 单项选择题

已知网络计划如下图所示,箭杆上方括号内数字为直接费率,箭杆下方括号外为正常持续时间,括号内为最短持续时间,设要求工期为22天。根据实际情况并考虑选择应缩短持续时间的关键工作宜考虑的因素,缩短顺序为E、D、C、A、B、F。应压缩()工作为最佳。

A.A和B工作组合

B.B、C、D工作组合

C.A、B、C、D、E、F中任何一个工作

D.B、C、E工作组合

答案

参考答案:A

解析:

本题有3条关键线路,必须同时压缩相同的时间2天,才能使总工期24缩短到22天,可缩工作组合有:A和B同时,C、D、B同时、C、E、B同时及P4组。缩短A和B各两天,直接费增加最少为(60+200)×2=520(元)。

问答题

[C代码] #include <stdio.h> #define OBS_MAXNUM 20 /*一个OfficeDoc变量最多能够关联的*/ /*DoeExplorer变量的个数*/ typedef void( (1) )(struct OfficeDoc*,street DocExplorer*); struct DocExplorer{ func update;/* DocExplorer结构采用的更新函数*/ /*其他的结构字段省略*/ }; struct OfficeDoc{ (2) myObs[OBS_MAXNUM]; /*存储所有与OfficeDoc相关联的DoeExplorer结构指针*/ int index;/*与OfficeDoc结构变量相关联的DocExplorer结构变量的个数*/ }; void attach(struet OfficeDoc *doc, struet DocExplorer *ob){/*关联Obersver结构ob与OfficeDoe结构doc*/int loop=0;if(doc->index >=OBS_MAXNUM || ob==NULL) return;for(loop=0; loop <doc->index; loop++) if(doc->myObs[loop]==ob)return;doc->myObs[doe->index]=ob;doc->index++; ) void detach(struct OfficeDoc *doc, struct DocExplorer *ob){/*解除doc结构与ob结构间的关系*/int loop;if(ob==NULL)return;for(loop=0; loop <doc->index; loop6++){ if(doc->myObs[loop]==ob){ if(loop<=doc->index-2) doe->myObs[loop]=doc->myObs[ (3) ]; doc->myObs[doe->indox-1]=NULL; doe->index--; break; }} } void updatel(struct OfficeDoc *doc,struct DocExplorer *ob){/*更新ob结构的值,更新代码省略*/ } void update2(stmct OfficeDoc *doc, struct DocExplorer *ob){/*更新ob结构的值,更新代码省略*/ } void notifyObs(struet OfficeDoc *doc){/*当doc结构的值发生变化时,通知与之关联的所有DocExplorer结构变量*/int loop;for(loop=0; loop <doc->index; loop++){(doc->myObs[loop])->update( (4) );} } void main(){stmct OfficeDoc doc;/*定义一OfficeDoc变量*/struct DocExplorer explorer1, explorer2;/*定义两个DocExplorer变量*/ /*初始化与OfficeDoc变量相关的DocExplorer变量个数为0*/doc.index=0;explorer1.update=update1;/*设置explorer1变量的更新函数*/explorer2.update=update2;/*设置explorer2变量的更新函数*/attaeh(&doc,&explorer1);/*关联explorer1与doc对象*/attach(&doc,&explorer2);/*关联explorer2与doc对象*//*其他代码省略*/(5) ;/*通知与OfficeDoc相关的所有DocExplorer变量*/return; }

多项选择题