学生成绩管理-c语言

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:21:40
1.某班的学生145人,每人的信息包括:学号、姓名、性别、和成绩。编制一个C程序,完成以下操作:
①定义一个结构体类型数组。
②打开可读写的新文件student.dat。
③使用函数fwrite()将结构体数组内容写入文件student.dat中。
④关闭文件student.dat。
⑤打开可读写文件student.dat。
⑥从文件中依次读出各学生情况并按学生成绩进行排序,输出排好序后的数据。
⑦关闭文件student.dat。
只有学生的一科成绩,所以只用这一科成绩排序就可以了。谢谢您呀!

不知道你要按什么成绩排序,所以排序没写,直接输出。排序部分你自己解决咯.....其余部分已经调试通过!

代码:
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void star();
void end();
void search();
typedef struct student /*定义学生信息结构体变量*/
{int num;
char name[20],sex[4];
struct
{
float chinese,math,english;
}score;
}STU;

void search()
{
FILE *fp;
STU stu[145];
int i=0;
char filename[10];
printf("Please enter the filename what you want to search:");scanf("%s",filename);
if((fp=fopen(filename,"r"))==NULL)
{
printf("Cannot open this file!\n");
end();
}
while(!feof(fp))
{

fscanf(fp,"%d%s%s%f%f%f",&stu[i].num,stu[i].name,stu[i].sex,&stu[i].score.chinese,&stu[i].score.math,&stu[i].score.english);
p