c语言成绩管理

来源:百度知道 编辑:UC知道 时间:2024/06/15 07:31:30
急啊 ,有哪位高手可以帮帮我
1、 通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。
2、 对文件input.dat中的数据进行处理,要求具有如下功能:
(1) 按各门课程(3门左右)成绩排序,并生成相应的文件输出。
(2) 计算每人的平均成绩,按平均成绩排序,并生成文件。
(3) 求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数。
(4) 根据姓名或学号查询某人的各门课成绩,重名情况也能处理。
3、 界面美观。

有如下的测试数据:
学号 姓名 数学 英语 计算机
001 王放 78 77 90
002 张强 89 67 88
003 李浩 56 66 78
004 黄鹂兵 89 86 85
005 李浩 67 88 76
006 陈利风 45 54 67
007 尚晓 78 76 70

给你一个我之前写的,当然和你要求有些出入,不过你稍微修改下就可以了。。
有什么问题在问吧。。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LEN sizeof(STU)
#define FIN "%s%d%d%d%d"
#define FORMAT &p->name,&p->sub_1,&p->sub_2,&p->sub_3,&p->sub_4
typedef struct stu
{
struct stu *next;
char name[15];
int sub_1;
int sub_2;
int sub_3;
int sub_4;
float aver;
int total;
}STU;
STU *finput();//从文件读入函数
void output(STU *head);//输出链表函数
void average(STU *head);//计算平均数,总分函数
STU *sort(STU *head);//排序函数
STU *kinput();//键盘输入函数,默认遇到学号为0的时候输入完毕
STU *finput()
{
STU *head,*p;//定义一个链表的头指针;
FILE *fp;
printf("\n请你将要导入的文件放在C盘根目录下,成绩顺序请参照\n\n 学号 课程1 课程2 课程3 课程4\n\n文件名称请设置为1.txt\n按任意键继续...");
getchar();
getchar();
fp=fopen("c:\\1.txt","r");
if(fp==