student *t;学号\
case'/1'
{
t=t->n"
stu=load(stu);输入错误请重新输入\n输入任意字符退出\n"*输入第i门课的成绩*/; \*增加修改一门课程成绩*/num);
if((fp=fopen("
printf(");
/
printf("
void entergrade(student *stu)
{
int i;
void fenshuduan(student *stu)
{
int i!=1));*如果学号为t->,num);score[j]) r=t;t\
getch();n"score1");
t->3't英语\:altergrade(stu);;k++)
p->
printf("next->t"p=stu;
printf("continue;
scanf("
}
printf(");
printf("输入2按英语分数段\t"n"n"
do
{
printf("k<cannot open file\);学号\
t=init(t)!=NULL)
{
if(fwrite(stu;next;
getch();;t姓名\next;
case't\next;*初始化结构体*/
printf("
student gradeenter(student *stu;/5;score[j]>n"n"
student *init(student *t)
{
t=(student *)malloc(sizeof(student));
for(k=0;,我以前做的
#include <t姓名\
printf(";
printf(",2);num的总分*/;4 修改语文成绩\
getch();name;);stu->
r=r->输入1按语文成绩\
break;
while(stu."t数学\*按学生号查找学生信息*/
void paixu(student *stu;
p->
}
output(t);查询结果为\
void zengjia(student *t;/),k;;next=NULL,num);i am sorry to hear that you enter the wrong num\/stdlib;/next=t->
for(k=0;//%d"
case'
student * insertstu(char *num;score[4]=t->.,r):"1 录入语文成绩\),t);
printf("break;
r=charu(stu;score[i]<);2'/next;=0*/);score[i];char a;);*插入一个学生信息*/,j;next,stu->*学生成绩结构体*/
if(t->/1');score[k]);).;
stu=insertstu(num;int k;
if(i==0)/num的同学该科成绩没有*/
}
}
return t;n":%d\n"next; \
t->,&i),fp);n"!=');
return t;);
getch();num(不超过10个数)\,1);score[0]=t->
printf("
do
{ p=(student *)malloc(sizeof(student));该科全部输入完成\5't总分\0 修改数学成绩\
void altergrade(student *stu)
{
int j;n输入分数段下限;
case '
t->,*r;n"next=NULL;
getch(),num);n"无此学号\
t=t->))==NULL)/t4 输出指定分数段的学生信息\k++)
printf("输入要查询的学生学号\
case 1;
}
/);*************************************************************\score[i]=0,name[20];
t=findnum(num;
output(stu);;file write error\);
}
/score[1]=t->,*p;
printf("
switch(i)
{
case 0;
if((fp=fopen( ";
typedef struct node
{
char num[10];num的平均分*/;t姓名\.;next==NULL)
return t;))==NULL)/
else break;);
printf("
output(stu);*按成绩排序*/);
}
/);
}
}
/next*/
printf("n",r);num;
scanf("next==NULL)
return t!=NULL)
{
printf(",char *name)
{ student *p;
case '*按升序排序*//5'*保存数据*/*第i科成绩录入*/score[i];
printf(",t->输入任意字符结束\:
zengjia(t;getch(););*插入一个学生信息*/score[j]>,i);%s".;n"next->
while(r->i=&j;*录入下一个同学的该科成绩*/,t->,sizeof(student);
printf("
if(t->k<score[j]) r=t;
printf(";/
if(max<;=max)/:gradeenter(stu;
void save(student *stu)
{
FILE *fp;
case');score[3]-=t->;););5;*将数据保存在score1中*/%s"
t-> \!=1)
printf(",score);*读取数据*/:chaxun(stu);
printf("
printf(",stu->,name);
void output2(student *stu)
{ int i;
output1(t);n"n"n"break;4) printf("i=&j;n")
{
t=findnum(num;;
while(stu->
while(num[0];
t->,"n"score[k],k;);*输出此学生信息*/*在r后面插入stu*/e'
printf("
printf("
}
}
save(stu);7'n":gradeenter(stu;score[i]==0)//
break;t该科成绩\
if(t->
getch();
printf("输入1按语文分数段\
p->break;n"
printf("7'
}while(1);n"n"next=p;n"score[3]/0)/t数学\*输出一个特定的学生的成绩*/,student *t)
{student *p;
case'score[4]=t->6'
p=(student *)malloc(sizeof(student));\
printf("student *t;
output1(stu);
t->*为输出打开文件score1*/)
{
clrscr(),num).;
student * findnum(char *num;score[i];*总分减去第i门课的成绩*/输入 0 升序\
case'
printf("t1 修改或删除学生成绩\
}
/);next->,&j):output2(stu);n"
printf("n输入任意字符结束\.请按任意键退出;
r=charu(stu;/,2);
default;/%s"stu->.;/);
{
printf("n"*如果待插入的score[j]<
printf("num<=stu->num; -------made in china\
scanf(";学号\*为输入打开文件score1*/n"=num时返回.h>score[3]:
zengjia(t;输入e结束输入新学生的信息\,i);
printf(",student *stu;);n",1;););t数学\%s"
}
/),*i;score[2]=0;
break;当前的score[j];r",t->next;*统计全班人数和平均分*/int *i;
p->n"/n"%d"score[i]);;
}
/next=p;*输出全体学生的成绩*/*总分加上第i门课的成绩*/
}
stu=stu->:fenshuduan(stu);输入2按英语成绩\);t=stu;
printf("*t->next;
i=&j;score1"student *p,*num!=NULL)
r=r->
}while(num[0].;stdio;
printf("
{
p=init(p),num);
a=getch();total;;输入任意字符结束\*第i门课的成绩归零*/);score[i]));n"
case 't3 显示指定学生的信息\t平均分\
while(*i<);
while(stu;num;);
printf("
scanf("%s\.;t%s\
printf("next->!='next=t->break,&i);
printf("next;
while(stu;
while(r->
scanf("
t->next->);
}
void deletegrade(student *t,max),sizeof(student);n"stu->
printf("n"
printf(",i),name);t平均分\
printf("/tname(不超过10个字)\
do
{
scanf("
}
fclose(fp).;/n"*总分减去第i门课的成绩*/min)
stu=stu->
strcpy(p->
stu=stu->:base(stu);
int score[5],*t;/
printf(".;
printf(";
stu=init(stu),i);
if(j==0)/n"*按学生号查找学生*/);
}
output(stu);*该学生号存在*/,int *i)
{
*i=1;score[3]-=t->
}
/
}
else
while(stu->:break;输入任意字符结束\next,min;break;
printf(",stu,t->3;);输入0按数学分数段\
student * load(student *stu)
{
FILE *fp,int i)
{
student *t;
}
/n"
}
/next;
scanf("n"输入3按总分分数段\);,stu,"8'*按分数段查询*/
}
}
void main()
{
char a='
void output(student *stu)
{
stu=stu->score[4]=t->*查找该学号是否存在*/
if(j;0 录入数学成绩\next;
if(r->%d\,num);/num>4'
printf(");
printf(".;%d"
r->t语文\r=stu;score[j]&&r->
if(r->,1;);
break;score[k]=stu->next;;
if(i==0||i==1)
paixu(stu;
return p;next==NULL)
r=charu(stu;
printf(");n",i);;************************************************************\
return stu,max;
case'
stu=stu->!=NULL)
{
output1(stu);next,num):
deletegrade(t,&t->,1);;/
printf("自己修改;);
t->!=NULL)
{
stu=stu->*学号为t->stu->);
switch(a)
{
case '输入3按总分\!=0)/),fp);
scanf("
strcpy(p->
int j;
printf(",int i)
{
t->!=NULL)
{
score+=stu->t7 退出\*score[0]存数学成绩score[1]语文成绩score[2]英语成绩score[3]总分score[4]平均分*/next;n"n",j;next->
#include <num;
break;
printf("
default,0);
printf("
getch();score[i]&&stu->2 修改英语成绩\n"输入 1 降序\score[3]/break;
{
t=t->);t语文\score[i];next;score[j]<t5 输出班级总人数和平均分\%d"
{
t=t->
void output1(student *t)
{ int k;;%s"n"班级总人数为;
printf(");
break;
scanf("
stu=stu->,num),name);t",min);
while(t,*i;2' \
while(stu;学号\name);t6 输出全体学生的信息\3;next;break;
printf("score[j]<break;*该学号不存在;t"
printf("t总分\%s\
return stu; \.,&i);*修改成绩*/0');
}
/ 学生成绩管理系统\\
case ',total;);
}student.;n":
deletegrade(t;1 修改语文成绩\,stu;;%d\,i););
case 'score[j]&&r->
printf(",int i)
{
t->num;查无此号\);
printf("score[i]);
{
scanf("
}
else
}
/,*r,此时i>
char name[10];
if(j==0)/,0):");score[3]=t->:gradeenter(stu:tongji(stu);;
r=t;
total++;
printf("next;n"*初始化stu*/,score=0;
printf(";*将stu后插在t中*/num);
stu=stu->n"欢迎再次使用学生成绩管理系统;
if((fread(p;
}
else
printf(");
}
/name;0&&j>输入任意字符退出\
scanf(":printf("
student *stu;;5 修改英语成绩\
}
/
stu=stu->;);
stu=stu->
}
else
printf(",i););*将分数段内的同学信息输出*/
scanf("n"n"
if(j<
void chaxun(student *stu)
{
char *num;4'
printf("!=NULL)
{
if(min<t成绩\),则插入*/
}
/n"e'next=p;t平均分\*学生号存在*/;/%s"*在排序好的链表t中插入第一个节点*/next;3'n"*查找学生号为num是否存在*/next;t0 录入学生基本信息\%d"*学号为t->;n"%d"; \
struct node *next;
scanf(",指针r回溯*/
scanf("按任意键重新输入\);
void base(student *stu)
{
char num[10];next;next;3 删除数学成绩\:%d平均分为;score[3]+=t->*找到比待插入的score[j]大的指针r->name);num时查找下一个*/w"break;next;
else
{
*i=strcmp(t->n":
deletegrade(t;/t英语\输入其他任意字符退出\*排序菜单*/0'
printf("n"n"
strcpy(p->t总分\*查找学生号为num是否存在*/n"next;
}
}
/
strcpy(p->,t->
}
t->,站长团上有产品团购;*t->:printf("
printf("2 录入英语成绩\t语文\,student *t;n"exit(0);\
while(a;
}
else
printf("n"
student * charu(student *stu;
t=findnum(num;输入0按数学成绩\
}while(1)!='
default;int j:break;),&(t->%d" \,int i)
{
student *t; \n");;%d"
*i=strcmp(t->
void tongji(student *stu)
{
int total=0;;);
}
另外;
switch(a)
{
case'!=NULL)
{
stu=stu->
t=t->n"输入4按平均分分数段\:
zengjia(t;*成绩录入菜单*/);
a=getch();t英语\
case 2;输入分数段上限;);输入错误请输入相应操作的题号\);
if(t->输入4按平均分\t2 录入学生成绩\*读取score1的数据*/
}
/n"学号\next,stu:entergrade(stu)!=NULL)
r=r->break;n"*录入新学生信息*/
}
score=score/输入 e 结束操作\score[3]+=t->).h>