c语言文件利用

有十名学生的数据(包括学号、姓名、和三门课程的成绩)存放在文件“score.txt”中,编写程序,把有不及格的学生数据存放到文件“bjg.txt”中,成绩都合格的学生数据存放到文件“jg.txt”中。

#include<stdio.h>
#include<string.h>
#include<Windows.h>
const int N=30;
const int M=2; //定义录入学生信息数 可更改
typedef struct student_information
{
char ID[N]; //学生学号
char name[N]; //学生姓名
int score[3]; //学生三科成绩
}student;
student stu[M];
FILE *fp;

void add() /*定义录入功能函数*/
{
int i;
fp=fopen("score.txt","wb+");
printf("请录入学生信息\n");
for (i=1;i<=M;i++)
{
printf("\n\t请输入第%d个学生学号(d):",i);
scanf("%10s",stu[i-1].ID);
printf("\n\t请输入第%d个学生姓名(10s):",i);
scanf("%10s",stu[i-1].name);
printf("\n\t请输入第%d个学生第1科成绩(f):",i);
scanf("%d",&stu[i-1].score[0]);
printf("\n\t请输入第%d个学生第2科成绩(f):",i);
scanf("%d",&stu[i-1].score[1]);
printf("\n\t请输入第%d个学生第3科成绩(f):",i);
scanf("%d",&stu[i-1].score[2]);
printf("\n\t提示:您已成功录入第%d条信息\n",i);
fwrite(&stu[i-1],sizeof(student),1,fp); /*保存设备信息至文件*/
}
fclose(fp);
}

void classfied()
{
int i,j;
bool dword;
fp=fopen("score.txt","rb");
for(i=0;i<M;i++)
fread(&stu[i],sizeof(student),1,fp);
fclose(fp);
fp=fopen("bjg.txt","wb+");
for(i=0;i<M;i++) //将有不及格科的学生信息放入文件
{
for(j=0;j<3;j++)
{
if(stu[i].score[j]<60)
fwrite(&stu[i],sizeof(student),1,fp);
}
}
fclose(fp);
fp=fopen("jg.txt","wb+");
for(i=0;i<M;i++) //将全及格的学生信息放入文件
{
dword=TRUE;
for(j=0;j<3;j++)
{
if(stu[i].score[j]<60)
dword=FALSE;
}
if(dword)
fwrite(&stu[i],sizeof(student),1,fp);
}
fclose(fp);

}

void main()
{
system("color 5f");
add();
classfied();
printf("操作结束");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-02
结合结构体和文件知识解决
相信自己 力量在心中
相似回答