语言上机题3140.docVIP

  • 1
  • 0
  • 约 21页
  • 2016-10-14 发布于贵州
  • 举报
语言上机题3140

全国计算机等级考试三级C语言上机题31-40 发布: 发布时间: 2005-11-20 阅览次数: 40752 版权声明: 任何单位和个人未经东方教育网授权,不得复制、转载、结集、出版。否则后果自负。  ☆题目31 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列, 最终排列结果仍存入结构数组sell中,最后调用函数WriteDat() 把结果输出到文件OUT4.DAT中。  部分源程序存在文件prog1.c中。   请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include  #define MAX 100 typedef struct{  char dm[5]; /*产品代码*/  char mc[11]; /*产品名称*/  int dj; /*单价*/  int sl; /*数量*/  long je; /*金额*/ }PRO; PRO sell[MAX]; void ReadDat(); void WriteDat();  void SortDat() {int i,j;  PRO xy;  for(i=0;i99;i++)  for(j=i+1;j100;j++) if(sell[i].je0)  {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} }  void main()  {  memset(sell,0,sizeof(sell));  ReadDat();  SortDat();  WriteDat();  }  void ReadDat() {  FILE *fp;  char str[80],ch[11];  int i;   fp=fopen(IN.DAT,r);  for(i=0;iMAX;I++){  fgets(str,80,fp);  memcpy(sell[i].dm,str,4);  memcpy(sell[i].mc,str+4,10);  memcpy(ch,str+14,4);ch[4]=0;  sell[i].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); }  void WriteDat(void) {  FILE *fp;  int i;   fp=fopen(OUT4.DAT,w);  for(i=0;iMAX;I++){  printf(%s %s %4d %5d %5d\n, sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);  fprintf(fp,%s %s %4d %5d %5d\n, sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);  }  fclose(fp); }   ************************************************************************** ☆题目32 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中 ,最后调用函数WriteDat()把结果输出到文

文档评论(0)

1亿VIP精品文档

相关文档