阅读以下说明和C语言函数,将应填入 (n) 处的字旬写在答题纸的对应栏内。 【

练习题库2022-08-02  55

问题 阅读以下说明和C语言函数,将应填入 (n) 处的字旬写在答题纸的对应栏内。【说明】  某工厂A负责为某大型企业B加工零件,A每天必须为B提供一定数量的零件。由于某种客观原因,A每天生产的零件的单价都不相同。若A某天生产的零件数多于B需要的数目,则多余的零件可以放到第二天及以后再使用,但需要收取每个零件的保管费(产品单价之外附加的费用),每个零件在不同日期收取的保管费也不相同。  例如,在5天的生产中,B要求的零件需求量及A核算出的零件单价和保管费用如表l所示:表1A可以制订多种生产计划,但费用可能不同。例如,表2所示为生产计划及其费用。表2注:  (1)计划1的总费用:25*20+15*30+30*32+35*25+30*35=3835(元)  (2)计划2的总费用:40*20+15*4.5+30*32+50*25+15*5.5+15*35=3685(元)  (3)计划3的总费用:70*20+45*4.5+30*8+65*25+30*5.5=3632.5(元)  (4)计划4不可行,虽然第一天和第二天生产的零件总数比需求量多5个,但加上第三天生产的20个零件(共25个),仍不能满足B第三天的需求量(30个)。函数find_a_plan(FILE *in)的功能是:从文件中读入若干个生产计划,从可行的计划中选出费用最小者,记录该生产计划并返回该最小费用。  全局结构体数组data[]用于保存表1所示的数据(data[0]不用),说明如下:  data[i].Qty_req: int型,表示第i天的零件需求量。  data[i].Price: double型,表示第i天生产的零件单价(元)。  data[i].Keeping_fee: double型,表示第i天保管单个零件的费用(元)。【C语言函数】  int B_s[DAYS+1];/*记录成本最小的生产计划,B_s[0]不用,DAYS定义为天数*/    double find_a_plan(FILE *inf)    {int P_num[DAYS+l],acc_req[DAYS+1];    int i,tag = 0,acc_qty = 0;  double mincost = 1.0e20,cost_Produce,cost_Keep;   for(i=l;i<=DAYS;i++){/*到第i天时的累计零件需求量存入acc_req*/   acc_qty += data.Qty_req;    acc_req = acc_qty;  }   while(!feof(inf)){    for(i=1;i<=DAYS;i++)/*未读入一个生产计划,第i天的产量存入P_num*/    if(!feof(inf))  fscanf(inf,"%d″,&P_num);   tag = 0; cost_Produce = 0;cost_Keep = 0;    for(i = l, (1) ;i<=DAYS;i++){/*考察当前的生产计划*/    acc_qty +=P_num;/* acc_qty计录到第i天时的累计零件生产量*/  if(acc_qty<acc_req){/*当前生产计划不能满足需求*/    tag = 1; break;  } /*if*/  cost_Produce +=   (2)  ;/*计算当前生成计划的总零件价格*/  /*计算当前生成计划下的零件保管费*/  cost_Keep += (   (3)   ) * data.Keeping_fee;  }/*for*/  if( (4) )/*若当前生产计划不可行,则继续读取下一计划*/  continue;  if(  (5)  )/*记录成本更小的生产计划*/  mincost =  cost_Produce + cost_Keep;  for(i = 1; i <= DAYS; i++)  B_s = P_num;  }/*if*/  }/*while*/  return mlncost;}

选项

答案

解析
转载请注明原文地址:https://tihaiku.com/congyezige/2428301.html

最新回复(0)