文件程序设计 之 统计得分率

有一个二进制数据文件zy.dat,内容为一批学生期末考试4道题的得分情况(姓名,成绩1,成绩2,成绩3,成绩4),统计本次考试中每道题(1~4)的得分率并保存到二进制文件result.dat(数据之间用空格隔开)。

如:0.783 0.795 0.845 0.914

重要提示:自己编写的程序命名为test.cpp,本地测试test.cpp时,访问zy.dat和result.dat不用带路径,当打包提交时将zy.dat和result.dat的路径修改为./src/

提交之前,将系统提供的原始zy.dat和test.cpp放在src文件夹下,然后在src文件夹的上层文件夹中压缩src.zip,保证这个zip文件中有src文件夹和其中的test.cpp文件。

如果使用WinRAR、7z等压缩软件,请注意压缩文件的格式为zip,而不是压缩为其他格式后修改后缀为zip。目前已知使用Windows的资源管理器的右键菜单中的“发送到压缩(zipped)文件夹“功能产生的zip文件不被PTA所接受。Unix的zip命令压缩的文件夹可以接受。

说明:本地测试test.cpp时,可运行example.cpp程序生成zy.dat;再运行test.cpp生成二进制文件result.dat

example代码如下(自己加载stdio.h和stdlib.h库函数)。

注意:test.cpp应该能处理任意条数的记录。

struct student

{

char name[20];

int score[4];

};

typedef struct student student;

void save() {

student st; 

FILE *fp;

int i,x;

fp=fopen("zy.dat","wb");

if (!fp)

{printf("cann't create file\n");exit(0);}

for(i=0;i<5;i++)

{

 scanf("%s%d%d%d%d",st.name,&st.score[0],&st.score[1],&st.score[2],&st.score[3]);
 
 fwrite(&st,sizeof(student),1,fp); 
     

}

fclose(fp);

}

int main()

{ save();

return 0;

}

执行example程序时样例输入:

zhang 18 20 20 18

zhu 20 18 25 25

zhou 17 25 20 20

zhao 20 15 20 12

wang 18 20 25 20

则执行完test.cpp后result.dat内容应该为:0.744 0.784 0.880 0.760

(这个文章创建的目的主要是想帮助一些对电脑操作零基础的童鞋,学会文件这一节中最基本的按照题目要求压缩文件为指定格式。)

代码如下:

#include<stdio.h>
#include<stdlib.h>
struct student
{
    char name[20];
    int score[4];
};
typedef struct student student;
void save() 
{
    student st; 
    FILE *fp1,*fp2;
    int i=0;
    fp1=fopen("./src/zy.dat","rb");
  if (!fp1)
  {
    printf("cann't create file\n");
    exit(0);
  }
  fp2=fopen("./src/result.dat","wb");
  if(!fp2)
  {
  	printf("cann't creat file\n");
  	exit(0);
  }
  float sum1=0,sum2=0,sum3=0,sum4=0;
  while(fread(&st,sizeof(student),1,fp1)==1)
  {
   sum1+=st.score[0];
   sum2+=st.score[1];
   sum3+=st.score[2];
   sum4+=st.score[3];
   i++;
  }
  sum1/=(i*25);
  sum2/=(i*25);
  sum3/=(i*25);
  sum4/=(i*25);
  fprintf(fp2,"%f %f %f %f",sum1,sum2,sum3,sum4);
  fclose(fp1);
  fclose(fp2);
}
int main()
{ 
   save();
   return 0;
}

制作文件步骤(以此题为例):

1.建立一个新的(空白)文件夹,并命名为src 。

2.在自己的文档中找到代码所在文件夹的位置,然后对此文件进行重命名(一般是test.cpp)。

3.将重命名后的文件复制粘贴到新建的文件夹中。

4.下载题目中所给的附件,打开附件中的src文件,将zy.dat复制粘贴到新建的src文件夹中。

5.将新建的src文件压缩为zip形式,即可提交。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值