C语言学生成绩管理系统源代码,保证能用……
#include "malloc.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
char filename[30];
int n=0,d;
FILE *fp;
typedef struct student
{
int num;
char name[10];
int yuwen;
int shuxue;
int yingyu;
int count;
float aver;
struct student *next;
} aaa;
typedef struct stu
{
int num;
char name[10];
int yuwen,shuxue,yingyu;
int count;
float aver;
} aaaa;
aaa *head;
/*浏览*/
void liulan(aaa *head)
{
aaa *p;
if(head==NULL)
printf("\n没有任何学生资料!\n");
else
{
printf("\t\t\t考试成绩管理系统\n");
printf("----------------------------------------------------\n");
printf("|学号\t|姓名\t|语文\t|数学\t|英语\t|总分\t|平均分|\n");
printf("----------------------------------------------------\n");
p=head->next;
do{
printf("|%d\t|%s\t|%d\t|%d\t|%d\t|%d\t|%.1f\t|\n",p->num,p->name,p->yuwen,p->shuxue,p->yingyu,p->yuwen+p->shuxue+p->yingyu,p->count/3.0);
printf("----------------------------------------------------\n");
p=p->next;
}while(p!=NULL);
}
}
/*读取*/
aaa *duqu ()
{
aaa *s,*head,*p,*q;
n=0;
if((fp=fopen(filename,"rb"))==NULL)
{
printf("不能读取文件!\n");
return NULL;
}
head=malloc(sizeof(aaa));
if(head==NULL)
{
printf("内存空间不足,文件读取失败!\n");
return NULL;
}
head->next=NULL;
p=head;
q=malloc(sizeof(aaa));
if(!feof(fp))
{
fread(q,sizeof(aaaa),1,fp);
q->next=NULL;
}
while(!feof(fp))
{
s=malloc(sizeof(aaa));
fread(s,sizeof(aaaa),1,fp);
s->next=NULL;
p->next=q;
p=q;
q=s;
n++;
}
return head;
}
/*输入函数*/
aaa *shuru (aaa *head)
{
aaa *q,*p,*s;
aaa newstd;
n=0;
q=head;
do{
q=head;
s=malloc(sizeof(aaa));
if(s==NULL)
{
printf("内存不足,添加学生成绩失败!\07\n");
break;
}
printf("请输入学号(输入0退出):");
scanf("%d",&newstd.num);
if(newstd.num==0)
break;
if(newstd.num<0)
{
printf("输入学号有误,请重新输入\n");
break;
}
p=head->next;
while(p!=NULL)
{
if(p->num==newstd.num)
{
printf("输入学号重复,请重新输入!\n");
break;
}
p=p->next;
q=q->next;
}
if(p==NULL)
{