资源描述:
《网络技术上机100题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、产品销售类1.已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称me(字符型10位)、单价dj(整型)、数量si(整型)、金额je(长整型)五部分组成。其中:金额二单价X数量。函数ReadDatO的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDatO把结果输出到文件OUT1.DAT中。注意:部
2、分源程序已给出。请勿改动主函数mai】i()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。【试题程序】#include#include#include#include#include#defineMAX100typedefstruct{chardm[51;/*产品代码*/charmc[ll];/*产品名称勺intdj;/*单价*/intsi;/*数量longje;/*金额*/}PRO;PROsell[MA
3、X];voidReadDat();voidWriteDatO;voidSortDatOmain(){memset(sell,0,sizeof(sell));ReadDatO;SortDatO;WriteDatO;}voidReadDatO{FILE*fp;charstr[80],ch[ll];intI;fp二fopen(”INl.DAT“,urM);for(I=0;Iv100;I++){fgets(str,80,fp);memcpy(sell[I].dm,str,4);memcpy(sell[I].mc,str+4,10);
4、memcpy(ch,str+14,4);ch[4]=0;sell[l].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;sell[I].sl=atoi(ch);sell[I].je=(long)sell[I].dj*sell[I].sl;}fclose(fp);}voidWriteDatO{FILE*fp;intI;fp=fopen(MOUTl.DATn,“w”);for(I=0;I<100;I++)fprintf(fp,”%s%s%4d%5d%101d”,sell[I].dm,selll
5、IJ.mc,sell[IJ.dj,sellLI].sl,sell[I].je);fclose(fp);}【参考答案】voidSortDatO{intIj;PROxy;for(i=0;i<99;i++)for(j=i+l;j<100;j++){if(sell[i].mc>sell[j].mc)/*按产品名称从小到大进行排列*/{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}Elseif((sell[i].mc==sell[j].mc)&&(sell[i].je>sell[j].je))/*若产品
6、名称相同则按金额从小到大进行排列可{xy=sell[i];sell[i]=sell[j];sellfj]=xy;}for(i=0;i<100;i++)#include#include#include#include#include#define100/*产品代码*//*产品名称*//*单价*//*数量*//*金额*/FILE*fp;charstr[80],ch[ll];intI;fp=fopen(,,IN2.DATH;,rM);2.已知在文件IN2.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位
7、)、产品名称nic(字符型10位)、单价dj(整型)、数量si(整型)、金额je(长整型)五部分组成。其中:金额二单价X数量。函数ReadDatO的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDatO把结果输出到文件OUT2.DAT中。注意:部分源程序已给出。请勿改动主函数mnin()、读数据函数ReadDat()和输出数据函数WriteDat()
8、的内容。【试题程序】MAXtypedefstruct{chardm[51;charmc[l1];intdj;intsi;longje;}PRO;PROsell[MAX];voidReadDatO