C语言大作业(成绩管理系统)
C语言学生成绩管理系统(输入输出删除插入查找排序)

if (count==0 || count==1)
{
return;
}
list *p, *temp;
while(i > 0)
{p=head;
for(j=0; j<i-1; j++)
{
if(p->next->num > p->next->next->num)
/*
p=(list *)malloc(sizeof(list));
p->next=Null;
*/
r=head;
printf("请输入学生人数.\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=(list *)malloc(sizeof(list));
scanf("%d",&k);
while (p && p->num!=k)
p=p->next;
if(p)
{
printf("学号\t姓名\t性别\t语文成绩\t数学成绩\t英语成绩\t计算机成绩\t平均成绩\t总成绩\n");
printf("%d\t%s\t%s\t%d\t%d\t%d\t%d%5.1f\t%5.1f\n",p->num,p->name,p->sex,p->chinese,p->math,p->english,p->computer,p->ave,p->sum);
c语言大作业-学生成绩管理系统v50

c语言大作业-学生成绩管理系统v50//成绩管理系统v1.0#include#include#include#defineN30#defineM6 typedeftructtudent{longtudentID;chartudentName[10];intcore[M];}STU;voidInput(STUtu[],intn,intm);voidTotalave(STUtu[],intn,intm);voidevetuTotalave(STUtu[],intn,intm);voidScorede(STUtu[],int n,intm);voidScorea(STUtu[],intn,intm);voidNuma(STUtu[],intn,intm );voidDica(STUtu[],intn,intm);voidSearchbynum(STUtu[],intn,int某,intm);voidSearchbymane(STUtu[],intn,charname[],intm);voidtatiti(ST Utu[],intn,intm);voidLit(STUtu[],intn,intm);intmain(){ intn,c,某,m;charname[10];STUtu[N];printf(\输入学生人数\canf(\printf(\输入考试科目\canf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\for(;;){canf(\witch(c){cae1://录入学生学号和各科成绩Input(tu,n,m);printf(\break;cae2://计算每门课程的总分和平均分Totalave(tu,n,m);printf(\break;cae3://计算每个学生的总分和平均分evetuTotalave(tu,n,m);break;cae4://按每个学生的总分由高到低排出名次表Scorede(tu,n,m);printf(\break;cae5://按每个学生的总分由低到高排出名次表Scorea(tu,n,m);printf(\break;cae6://按学号由小到大排出名次表Numa(tu,n,m);printf(\break;cae7://按姓名的字典顺序排出成绩表Dica(tu,n,m);printf(\break;cae8://按学号查询学生排名及其各科成绩printf(\请输入查找学号\\n\canf(\Searchbynum(tu,n,某,m);printf(\break;cae9://按姓名查询学生排名及其各科成绩printf(\请输入查找姓名\\n\canf(\getchar();Searchbymane(tu,n,name,m);printf(\break;cae10://成绩分析所占百分比tatiti(tu,n,m);printf(\break;cae11://全部输出Lit(tu,n,m);Totalave(tu,n,m);printf(\break;cae0:e某it(0);}}return0;}voidInput(STUtu[],intn,intm)//1{inti,j;for(i=0;iprintf(\canf(\canf(\for(j=0;jcanf(\}}voidTotalave(STUtu[],intn,intm)//2.计算每门课程的总分和平均分{inti,j,um[M];doubleave[M];for(j=0;jum[j]=0;for(i=0;ium[j]=um[j]+tu[i].core[j];}ave[j]=(double)um[j]/n;}for(i=0;iprintf(\科目%d的总分=%d,课程的平均分=%f\\n\}voidevetuTotalave(STUtu[],intn,intm)//3.计算每个学生的总分和平均分{inti,j,um[N];doubleave[N];for(i=0;ium[i]=0;for(j=0;jum[i]=um[i]+tu[i].core[j];}ave[i]=(double)um[i]/m;}for(i=0;iprintf(\学号为%ld,姓名为%的总分=%d,其平均分=%f\\n\}voidScorede(STUtu[],intn,intm)//4.按每个学生的总分由高到低排出名次表{inti,j,k,h,um[N];STUt;for(i=0;ium[i]=0;for(j=0;jum[i]=um[i]+tu[i].core[j];}}k=i;for(j=i+1;jif(um[j]>um[k])k=j;}if(i!=k){t=tu[i],h=um[i];tu[i]=tu[k],um[i]=um[k];tu[k]=t,um[k]=h;}}for(i=0;iprintf(\以长整形打印用%ld}voidScorea(STUtu[],intn,intm)//5.按每个学生的总分由di到gao 排出名次表{inti,j,k,h,um[N];STUt;for(i=0;ium[i]=0;for(j=0;jum[i]=um[i]+tu[i].core[j];}}for(i=0;ik=i;if(um[j]if(i!=k){t=tu[i],h=um[i];tu[i]=tu[k],um[i]=um[k];tu[k]=t,um[k]=h;}}for(i=0;iprintf(\以长整形打印用%ld}voidNuma(STUtu[],intn,intm)//6.按学号由小到大排出名次表{ inti,j,k;STUt;for(i=0;ik=i;for(j=i+1;jif(tu[j].tudentIDif(i!=k)t=tu[k],tu[k]=tu[i],tu[i]=t;}for(i=0;iprintf(\以长整形打印用%ldfor(j=0;jprintf(\}}voidDica(STUtu[],intn,intm)//7.{inti,j;STUt;for(i=0;ifor(j=i+1;jif(trcmp(tu[i].tudentName,tu[j].tudentName)>0)t=tu[i],tu[i]= tu[j],tu[j]=t;}}for(i=0;iprintf(\for(j=0;jprintf(\}}voidSearchbynum(STUtu[],intn,int某,intm)//8.按学号查询学生排名及其各科成绩{inti,j,c=1,find=0,um[N];for(i=0;ium[i]=0;for(j=0;jum[i]=um[i]+tu[i].core[j];}for(i=0;iif(tu[i].tudentID==某){find=1;break;}}if(find==0)printf(\ele{for(j=0;jif(um[j]>um[i])c++;}printf(\以长整形打印用%ldfor(j=0;jprintf(\printf(\}}voidSearchbymane(STUtu[],intn,charname[],intm)//9{ inti,j,c=1,find=0,um[N];for(i=0;ium[i]=0;for(j=0;jum[i]=um[i]+tu[i].core[j];}for(i=0;iif(trcmp(tu[i].tudentName,name)==0){find=1;break;}} if(find==0)printf(\ele{for(j=0;jif(um[j]>um[i])c++;}printf(\以长整形打印用%ldfor(j=0;jprintf(\printf(\}}voidtatiti(STUtu[],intn,intm)//10.{inta=0,b=0,c=0,d=0,e=0,i,j;doubleA,B,C,D,E;for(j=0;jfor(i=0;iif(tu[i].core[j]>=90)a++;eleif(tu[i].core[j]>=80)b++;eleif(tu[i].core[j]>=70)c++;eleif(tu[i].core[j]>=60)d++;elee++;}A=(double)a/n某100;B=(double)b/n某100;C=(double)c/n某100;D=(double)d/n某100;E=(double)e/n某100;printf(\printf(\优秀人数%d,百分比:%f%%\\n\printf(\良好人数%d,百分比:%f%%\\n\printf(\中等人数%d,百分比:%f%%\\n\printf(\及格人数%d,百分比:%f%%\\n\printf(\不及格人数%d,百分比:%f%%\\n\}} voidLit(STUtu[],intn,intm)//11.{inti,j,um[N];doubleave[N];for(i=0;ium[i]=0;for(j=0;jum[i]=um[i]+tu[i].core[j];}ave[i]=(double)um[i]/m;}for(i=0;iprintf(\for(j=0;jprintf(\}printf(\总分=%d\\n平均分%f\\n\}}。
c语言大作业——学生成绩管理系统v5.0之欧阳道创编

//成绩管理系统v1.0#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 30#define M 6typedef struct student{long studentID;char studentName[10];int score[M];}STU;void Input (STU stu[],int n,int m); void Totalave (STU stu[],int n,int m);void evestuTotalave (STU stu[],int n,int m);void Scoredes (STU stu[],int n,int m);void Scoreas (STU stu[],int n,int m);void Numas (STU stu[],int n,int m);void Dicas (STU stu[],int n,int m);void Searchbynum (STU stu[],int n,int x,int m);void Searchbymane(STU stu[],int n,char name[],int m); void statistis (STU stu[],int n,int m);void List (STU stu[],int n,int m);int main(){int n,c,x,m;char name[10];STU stu[N];printf("输入学生人数");scanf("%d",&n);printf("输入考试科目");scanf("%d",&m);printf("1.Input record\n");printf("2.Caculate totel and average score of every course\n");printf("3.Caculate totel and average score of every student\n");printf("4.Sort in descending order by total score of every student\n");printf("5.Sort in ascending order by total score of every student\n");printf("6.Sort in ascending order by number\n");printf("7.Sort in ascending order by name");printf("8.Search by number\n");printf("9.Search by name\n");printf("10.Statistic analysis for every course\n");printf("11.List record\n");printf("0.Exit\n");printf("Please enter your choice:\n");printf("\n");for(;;){scanf("%d",&c);switch(c){case 1: //录入学生学号和各科成绩Input (stu,n,m);printf("Please enter your choice:\n");break;case 2: //计算每门课程的总分和平均分 Totalave (stu,n,m);printf("Please enter your choice:\n");break;case 3: //计算每个学生的总分和平均分 evestuTotalave (stu,n,m);break;case 4: //按每个学生的总分由高到低排出名次表Scoredes (stu,n,m);printf("Please enter your choice:\n");break;case 5: //按每个学生的总分由低到高排出名次表Scoreas (stu,n,m);printf("Please enter your choice:\n");break;case 6: //按学号由小到大排出名次表Numas (stu,n,m);printf("Please enter your choice:\n");break;case 7: //按姓名的字典顺序排出成绩表Dicas(stu,n,m);printf("Please enter your choice:\n");break;case 8: //按学号查询学生排名及其各科成绩 printf("请输入查找学号\n");scanf("%d",&x);Searchbynum(stu,n,x,m);printf("Please enter your choice:\n");break;case 9: //按姓名查询学生排名及其各科成绩printf("请输入查找姓名\n");scanf("%s",name);getchar();Searchbymane(stu,n,name,m);printf("Please enter your choice:\n");break;case 10: //成绩分析所占百分比 statistis (stu,n,m);printf("Please enter your choice:\n");break;case 11: //全部输出List (stu,n,m);Totalave (stu,n,m);printf("Please enter your choice:\n");break;case 0:exit(0);}}return 0;}void Input (STU stu[],int n,int m) //1{int i,j;for(i=0;i<n;i++){printf("Input student's ID ,name and score");scanf("%ld",&stu[i].studentID);scanf("%s",stu[i].studentName);for(j=0;j<m;j++)scanf("%d",&stu[i].score[j]);}}void Totalave (STU stu[],int n,int m) //2.计算每门课程的总分和平均分{int i,j,sum[M];double ave[M];for(j=0;j<m;j++){sum[j]=0;for(i=0;i<n;i++){sum[j]=sum[j]+stu[i].score[j];}ave[j]=(double)sum[j]/n;}for(i=0;i<m;i++)printf("科目%d的总分=%d,课程的平均分=%f\n",i+1,sum[i],ave[i]);}void evestuTotalave (STU stu[],int n,int m) //3.计算每个学生的总分和平均分{int i,j,sum[N];double ave[N];for(i=0;i<n;i++){sum[i]=0;for(j=0;j<m;j++){sum[i]=sum[i]+stu[i].score[j];}ave[i]=(double)sum[i]/m;}for(i=0;i<n;i++)printf("学号为%ld,姓名为%s的总分=%d,其平均分=%f\n",stu[i].studentID,stu[i].studentName,sum[i],ave[i]); }void Scoredes (STU stu[],int n,int m) //4.按每个学生的总分由高到低排出名次表{int i,j,k,h,sum[N];STU t;for(i=0;i<n;i++){sum[i]=0;for(j=0;j<m;j++){sum[i]=sum[i]+stu[i].score[j];}}for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if (sum[j]>sum[k])k=j;}if(i!=k){t=stu[i],h=sum[i];stu[i]=stu[k],sum[i]=sum[k];stu[k]=t,sum[k]=h;}}for(i=0;i<n;i++)printf("ID:%10ld,name:%s,score:%d\n",stu[i].studentID,stu [i].studentName,sum[i]);//以长整形打印用%ld}void Scoreas (STU stu[],int n,int m) //5.按每个学生的总分由di到gao排出名次表{int i,j,k,h,sum[N];STU t;for(i=0;i<n;i++){sum[i]=0;for(j=0;j<m;j++){sum[i]=sum[i]+stu[i].score[j];}}for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if (sum[j]<sum[k])k=j;}if(i!=k){t=stu[i],h=sum[i];stu[i]=stu[k],sum[i]=sum[k];stu[k]=t,sum[k]=h;}}for(i=0;i<n;i++)printf("ID:%10ld,name:%s,score:%d\n",stu[i].studentID,stu [i].studentName,sum[i]);//以长整形打印用%ld}void Numas (STU stu[],int n,int m) //6.按学号由小到大排出名次表{int i,j,k;STU t;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if (stu[j].studentID<stu[k].studentID)k=j;}if(i!=k)t=stu[k],stu[k]=stu[i],stu[i]=t;}for(i=0;i<n;i++){printf("ID:%10ld,name:%s\n",stu[i].studentID,stu[i].student Name);//以长整形打印用%ldfor(j=0;j<m;j++)printf("project %d score:%d\n",j+1,stu[i].score[j]); }}void Dicas (STU stu[],int n,int m) //7.{int i,j;STU t;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(strcmp(stu[i].studentName,stu[j].studentName)>0) t=stu[i],stu[i]=stu[j],stu[j]=t;}}for(i=0;i<n;i++){printf("ID:%10ld,name:%s\n",stu[i].studentID,stu[i].student Name);for(j=0;j<m;j++)printf("project:%d,score:%d\n",j+1,stu[i].score[j]);}}void Searchbynum (STU stu[],int n,int x,int m) //8.按学号查询学生排名及其各科成绩{int i,j,c=1,find=0,sum[N];for(i=0;i<n;i++){sum[i]=0;for(j=0;j<m;j++)sum[i]=sum[i]+stu[i].score[j]; }for(i=0;i<n;i++){if(stu[i].studentID==x){find=1;break;}}if(find==0)printf("not find\n");else{for(j=0;j<n;j++){if(sum[j]>sum[i])c++;}printf("ID:%10ldname:%s\n",stu[i].studentID,stu[i].studentName);//以长整形打印用%ldfor(j=0;j<m;j++)printf("project %d score:%d\n",j+1,stu[i].score[j]);printf("all score: %d,order:%d\n",sum[i],c);}}void Searchbymane(STU stu[],int n,char name[],int m) //9{int i,j,c=1,find=0,sum[N];for(i=0;i<n;i++){sum[i]=0;for(j=0;j<m;j++)sum[i]=sum[i]+stu[i].score[j];}for(i=0;i<n;i++){if(strcmp(stu[i].studentName,name)==0) {find=1;break;}}if(find==0)printf("not find\n");else{for(j=0;j<n;j++){if(sum[j]>sum[i])c++;}printf("ID:%10ld,name:%s\n",stu[i].studentID,stu[i].student Name);//以长整形打印用%ldfor(j=0;j<m;j++)printf("project %d score:%d\n",j+1,stu[i].score[j]); printf("all score: %d,order:%d\n",sum[i],c);}}void statistis (STU stu[],int n,int m) //10.{int a=0,b=0,c=0,d=0,e=0,i,j; double A,B,C,D,E;for(j=0;j<m;j++){for(i=0;i<n;i++){if(stu[i].score[j]>=90)a++;else if(stu[i].score[j]>=80) b++;else if(stu[i].score[j]>=70) c++;else if(stu[i].score[j]>=60) d++;elsee++;}A=(double)a/n*100;B=(double)b/n*100;C=(double)c/n*100;D=(double)d/n*100;E=(double)e/n*100;printf("project %d\n",j+1);printf("优秀人数%d,百分比:%f%%\n",a,A); printf("良好人数%d,百分比:%f%%\n",b,B); printf("中等人数%d,百分比:%f%%\n",c,C); printf("及格人数%d,百分比:%f%%\n",d,D); printf("不及格人数%d,百分比:%f%%\n",e,E); }}void List (STU stu[],int n,int m) //11.{int i,j,sum[N];double ave[N];for(i=0;i<n;i++){sum[i]=0;for(j=0;j<m;j++){sum[i]=sum[i]+stu[i].score[j];}ave[i]=(double)sum[i]/m;}for(i=0;i<n;i++){printf("ID:%10ld,name:%s\n",stu[i].studentID,stu[i].student Name);for(j=0;j<m;j++){printf("score:%d\n",stu[i].score[j]);}printf("总分=%d\n平均分%f\n",sum[i],ave[i]); }}。
C语言大作业——学生成绩管理系统v2.0

//成绩管理系统v2.0#include <stdio.h>#include <stdlib.h>#define N 30void Input (long num[],int score[],int n);void Totalave (int score[],int n);void Scoredes (long num[],int score[],int n,int (*compare)(int a,int b)); int Ascending (int a,int b);void Numas (long num[],int score[],int n);void Search (long num[],int score[],int n,int x);void statistis (long num[],int score[],int n);void List (long num[],int score[],int n);int main(){int n,score[N],c,x,i;long num[N];printf("输入学生人数");scanf("%d",&n);printf("1.Input record\n");printf("2.Caculate totel and average score of course\n");printf("3.Sort in descending order by score\n");printf("4.Sort in ascending order by number\n");printf("5.Search by number\n");printf("6.Statistic analysis\n");printf("7.List record\n");printf("0.Exit\n");printf("Please enter your choice:\n");printf("\n");for(;;){scanf("%d",&c);switch(c){case 1:Input (num,score,n);printf("Please enter your choice:\n");break;case 2:Totalave (score,n);printf("Please enter your choice:\n");break;case 3:Scoredes (num,score,n,Ascending);for(i=0;i<n;i++)printf("ID:%10ld,score:%d\n",num[i],score[i]);//以长整形打印用%ld printf("Please enter your choice:\n");break;case 4:Numas (num,score,n);printf("Please enter your choice:\n");break;case 5:printf("请输入查找学号\n");scanf("%d",&x);Search (num,score,n,x);printf("Please enter your choice:\n");break;case 6:statistis (num,score,n);printf("Please enter your choice:\n");break;case 7:List (num,score,n);Totalave (score,n);printf("Please enter your choice:\n");break;case 0:exit(0);}}return 0;}void Input (long num[],int score[],int n){int i;for(i=0;i<n;i++){printf("Input student's ID and score");scanf("%ld%d",&num[i],&score[i]);}}void Totalave (int score[],int n){int i,sum=0;double ave;for(i=0;i<n;i++)sum=sum+score[i];ave=(double)sum/n;printf("Caculate total=%d,average score of course=%f\n",sum,ave); }void Scoredes (long num[],int score[],int n,int(*compare)(int a,int b)){int i,j,k,t,h;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if ((*compare)(score[j],score[k]))k=j;}if(i!=k){t=score[k],h=num[k];score[k]=score[i],num[k]=num[i];score[i]=t,num[i]=h;}}}int Ascending (int a,int b){return a<b;}void Numas (long num[],int score[],int n){int i,j,k,t,h;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if (num[j]<num[k])k=j;}if(i!=k){t=score[k],h=num[k];score[k]=score[i],num[k]=num[i];score[i]=t,num[i]=h;}}for(i=0;i<n;i++)printf("ID:%10ld,score:%d\n",num[i],score[i]);//以长整形打印用%ld }void Search (long num[],int score[],int n,int x){int high=n-1,low=0,mid,c=0,pos,find=0,i,j,k,t,h;for(i=0;i<n;i++){k=i;for(j=i+1;j<n;j++){if (num[j]<num[k])k=j;}if(i!=k){t=score[k],h=num[k];score[k]=score[i],num[k]=num[i];score[i]=t,num[i]=h;}}while(find==0&&low<=high){mid=(high+low)/2;if(x>num[mid])low=mid+1;else if(x<num[mid])high=mid-1;else{pos=mid;find=1;}}if(find==0)printf("not find\n");else{for(i=0;i<n;i++){if(score[i]>score[pos])c++;}printf("ID:%10ld,order:%d,score:%d\n",num[pos],c+1,score[pos]);}}void statistis (long num[],int score[],int n){int a=0,b=0,c=0,d=0,e=0,i;double A,B,C,D,E;for(i=0;i<n;i++){if(score[i]>=90)a++;else if(score[i]>=80)b++;else if(score[i]>=70)c++;else if(score[i]>=60)d++;elsee++;}A=(double)a/n*100;B=(double)b/n*100;C=(double)c/n*100;D=(double)d/n*100;E=(double)e/n*100;printf("优秀人数%d,百分比:%f%%\n",a,A);printf("良好人数%d,百分比:%f%%\n",b,B);printf("中等人数%d,百分比:%f%%\n",c,C);printf("及格人数%d,百分比:%f%%\n",d,D);printf("不及格人数%d,百分比:%f%%\n",e,E); }void List (long num[],int score[],int n){int i;for(i=0;i<n;i++){printf("ID:%10ld,score:%d\n",num[i],score[i]);}}。
c语言大作业 学生成绩管理系统

#include <stdio.h>#include <math.h>#include <string.h>#define NUM 4struct lhb /定义结构体变量,为lhb/{int num;char name[10];int score[4];float average;}stu[4],s;void save() /定义save函数,把录入的学生数据输出到磁盘list文件中/ {FILE *fp;int i;if((fp=fopen("list","wb"))==NULL){printf("can not open this file\n");return;}for(i=0;i<4;i++)if(fwrite(&stu[i],sizeof(struct lhb),1,fp)!=1) /用fwrite函数将数据送到printf("file write error\n"); list 文件中/fclose(fp);}void file1() /建立菜单1,录入4个学生的4科成绩,并算其平均分/ { int i,j; /定义变量/float s=0;printf("Input the student's number name and 4 score:\n");printf("num name score0 score1 score2 score3\n");for(i=0;i<4;i++)scanf("%d%s%d%d%d%d",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1], &stu[i].score[2],&stu[i].score[3]);for(i=0;i<4;i++) /用for循环算出每个学生的平均成绩/{for(j=0;j<4;j++){s+=stu[i].score[j]; /各科成绩累加后赋给s/stu[i].average=s/4.0;} /计算出平均成绩/s=0;}save(); /调用save函数,保存数据/return;}void file2() /建立菜单2,打印全班学生的数据输出到屏幕上/{FILE *fp; /寻找并调用list文件数据/int i;{ fp=fopen("list","rb");for(i=0;i<4;i++)fread(&stu[i],sizeof(struct lhb),1,fp);fclose(fp);}printf("All the students' message:\n");printf("num name score0 score1 score2 score3 average\n");for(i=0;i<4;i++) /循环输出所有学生数据/printf("%d %s %d %d %d %d %5.2f\n",stu[i].n um,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].average);return;}void file3() /建立菜单3,插入一个学生数据/{FILE *fp; /寻找并调用list文件数据/int i,j,t,n;{ fp=fopen("list","rb");for(i=0;i<4;i++)fread(&stu[i],sizeof(struct lhb),1,fp);fclose(fp);}printf("Plesae input a new student's massage\n");scanf("%d%s%d%d%d%d",&s.num,&,&s.score[0],&s.score[1],&s.score[2],&s.score[3]); s.average=(s.score[0]+s.score[1]+s.score[2]+s.score[3])/4.0;if((fp=fopen("list","r"))==NULL ) /从list文件中读数据/{printf("cant not open the file.");exit(0);}printf(" old students' original data:\n"); /读取已经存在的数据/for(i=0;fread(&stu[i],sizeof(struct lhb),1,fp)!=0;i++){printf("\n%4s%4s",stu[i].num,stu[i].name);for(j=0;j<4;j++)printf("%4d",stu[i].score[j]);printf("%5.2f",stu[i].average);}fclose(fp);n=i; /将i的值赋给变量n/for(t=0;stu[t].average>s.average&&t<n;t++);printf("\n add new student massage:\n"); /向list文件写数据/fp=fopen("list","w");for(i=0;i<t;i++) /先输出平均分高于学生S的学生的成绩/{fwrite(&stu[i],sizeof(struct lhb),1,fp);printf("\n%4s%4s",stu[i].num,stu[i].name);for(j=0;j<4;j++)printf("%4d",stu[i].score[j]);printf("%5.2f",stu[i].average);}fwrite(&s,sizeof(struct lhb),1,fp);printf("\n%4s%4s%4d%4d%4d%4d%%5.2f",s.num,,s.score[0],s.score[1],s.score[2],s.score[3],s.average); /输出学生s的成绩/for(i=t;i<n;i++) /输出平均分低于学生S的学生的成绩/{fwrite(&stu[i],sizeof(struct lhb),1,fp);printf("\n%4s%4s",stu[i].num,stu[i].name);for(j=0;j<4;j++)printf("%4d",stu[i].score[j]);printf("%5.2f",stu[i].average);}fclose(fp); /关闭文件/printf("\n");}void file4() /建立菜单4,按平均成绩的高低输出学生成绩一览表/{int i,j; /定义变量/FILE *fp; /寻找并调用list文件数据/struct lhb t;{ fp=fopen("list","rb");for(i=0;i<4;i++)fread(&stu[i],sizeof(struct lhb),1,fp);fclose(fp);}for(j=0;j<4;j++) /用冒泡排序/for(i=3;i>j;i--)if(stu[j].average<stu[i].average) /比较学生的平均成绩/{t=stu[j];stu[j]=stu[i];stu[i]=t;} /比较后交换/printf("The average from top to buttom:\n");printf("num name score0 score1 score2 score3 average\n");for(i=0;i<4;i++) /再次循环输出排序后的情况/printf("%d %s %d %d %d %d %5.2f\n",stu [i].num,stu[i].name,stu[i].score[0],stu[i].score [1],stu[i].score[2],stu[i].score[3],stu[i].average);}void file5() /建立菜单5,统计平均分底于60的学生,输出其数据/{FILE *fp; /寻找并调用list文件数据/int i;{ fp=fopen("list","rb");for(i=0;i<4;i++)fread(&stu[i],sizeof(struct lhb),1,fp);fclose(fp);}for(i=0;i<4;i++) /用for循环一次/if(stu[i].average<60) /如果条件为真,则进行下列程序/{printf("who's average below 60 is/are:\n");printf("num name score0 score1 score2 score3 average\n");printf("%d %s %d %d %d %d %5.2f\n",stu[i].nu m,stu[i].name,stu[i].score[0],stu[i].score [1],stu[i].score[2],stu[i].score[3],stu[i].average);} return;}void file6() /建立菜单6,输出全班总平均成绩,和全班各科平均成绩/{float v,v1=0,v2=0,v3=0,v4=0; /定义变量,并赋初始值为0/int i,j,s=0;FILE *fp; /寻找并调用list文件数据/{ fp=fopen("list","rb");for(i=0;i<4;i++)fread(&stu[i],sizeof(struct lhb),1,fp);fclose(fp);}for(i=0;i<4;i++)s+=stu[i].average; /各科成绩循环后累加后赋给s/v=s; /将s赋给v/v=v/4.0; /将v的值除于4,在赋给v/for(i=0;i<4;i++)v1+=stu[i].score[0];v1=v1/4.0;for(i=0;i<4;i++)v2+=stu[i].score[1];v2=v2/4.0;for(i=0;i<4;i++)v3+=stu[i].score[2];v3=v3/4.0;for(i=0;i<4;i++)v4+=stu[i].score[3];v4=v4/4.0;printf(" all students' average is %5.2f\n",v); /打印出全班平均成绩/printf("average score[0] is %5.2f\n",v1); /打印出全班各科平均成绩/printf("average score[1] is %5.2f\n",v2);printf("average score[2] is %5.2f\n",v3);printf("average score[3] is %5.2f\n",v4);}void file7() /建立菜单7,查找学生成绩情况/{ int i,c,e;char ch[20];FILE *fp; /寻找并调用list文件数据/{ fp=fopen("list","rb");for(i=0;i<4;i++)fread(&stu[i],sizeof(struct lhb),1,fp);fclose(fp);}printf("Input the student's name to find please press 1\n");printf("Input the student's number to find please press 2\n");scanf("%d",&e); /输入变量/printf("\n");if(e==1) /判断输入变量e==1,如果为真,则进行下面程序/{printf("Input the student's name\n");getchar(); /输入字符型数据/scanf("%s",&ch);for(i=0;i<4;i++)if(strcmp(ch,stu[i].name)==0) /比较判断,如果为真,则打印出相对应成绩/{printf("num name score0 score1 score2 score3 average\n");printf("%d %s %d %d %d %d %5.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2 ],stu[i].score[3],stu[i].average);}}if(e==2) /判断输入变量e==2,如果为真,则进行下面程序/ {printf("Input the student's number\n");scanf("%d",&c); /输入学生号数/for(i=0;i<4;i++)if(c==stu[i].num) /判断,如果为真,则打印出相对应成绩/{printf("num name score0 score1 score2 score3 average\n");printf("%d %s %d %d %d %d%5.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].average);}}if(e!=1&&e!=2)printf("Y our enter is not correct!\n");return;}main() /定义主函数/{int m;loop: /goto语句返回时的起始处/printf("\n"); /在屏幕上输出菜单表/printf("***********************Student'sScoreSystem *************************\n"); printf("*****************************MUNE *****************************\n"); printf(" Press 1 input student's massage and save them to a list.\n");printf(" Press 2 print all of the students' massage on the screen.\n");printf(" press 3 input add a new student's massage.\n");printf(" Press 4 print student's average from top to buttom on the screen.\n");printf(" Press 5 print who's average below 60 on the screen.\n");printf(" Press 6 print all and each course's average of class on the screen.\n");printf(" Press 7 enter name/number find out one of the students' massage.\n");printf(" Press 0 Exit this system.\n");printf("*******************************************************************\n");printf(" ** Please Input Y our Choice First **\n");scanf("%d",&m); /输入所选菜单/if(m==1) /判断条件,如果为真,则调用菜单1函数/{file1();printf("Do you want to continue this servise Y/N?\n");getchar(); /输入字符型数据/if(getchar()=='y') /判断输入数据是否为真,如果为真,则执行goto语句goto loop;} 否则推出全部程序/ if(m==2){file2();printf("Do you want to continue this servise Y/N?\n");getchar();if(getchar()=='y')goto loop;}if(m==3){file3();printf("Do you want to continue this servise Y/N?\n");getchar();if(getchar()=='y')goto loop;}if(m==4){file4();printf("Do you want to continue this servise Y/N?\n");getchar();if(getchar()=='y')goto loop;}if(m==5){file5();{printf("Do you want to continue this servise Y/N?\n");getchar();if(getchar()=='y')goto loop;}}if(m==6){file6();printf("Do you want to continue this servise Y/N?\n");getchar();if(getchar()=='y')goto loop;}if(m==7){file7();printf("Do you want to continue this servise Y/N?\n");getchar();if(getchar()=='y')goto loop;}if(m==0) /判断条件,如果为真,则退出全部程序/printf("Exit this system\n");}(程序结束)。
成绩管理系统-c语言综合训练大作业报告

《C 程序设计综合训练》课程设计报告题 目 成绩管理系统姓 名 专业班级 指导教师 分 院 信息科学与工程学院宁波理工学院1.题目与要求:1)问题提出本学期C程序设计综合训练的目标是设计一个简易学生成绩管理系统,主要用来管理学生的基本信息与成绩信息。
首先实际应用中的数据的个数据往往是不确定的,而c语言中的数组必须先说明其大小,大则浪费,小则出错,因此此程序中采用动态分配内存来建立链表。
其次实际应用中的数据往往需要保存下来,因此我们必须对数据进行文件的保存与读取,使之成为一个带有记忆化的程序。
2)本系统设计中主要的知识点菜单的使用,单链表的建立与操作(增删改查排),动态分配内存,文件的读写,程序的分模块化设计思想与多文件。
3)功能要求1)建立学生信息的链表,每个学生的信息包括:姓名,学号,成绩(语数英)。
2)对学生的成绩信息按照总分的高低进行排序。
3)根据学生的姓名来查找该学生并可修改该学生的任何一门成绩。
4)根据实际情况添加一条学生的信息。
5)根据实际情况删除一条学生的信息。
6)求出每个学生的总分和平均分。
7)根据总分的区间来筛选学生。
8)实现用文件来实时储存链表中的学生信息。
2.功能设计1)算法设计(1)利用switch语句设计如图所示的主菜单。
(2)选择1后,调用建链函数Creat,用户进行成绩数据的读入,在建立链表的同时并在文件里保存这些数据并计数。
(3)选择2后,调用打印函数Print对文件内容进行屏幕的打印。
(4)选择3后,调用排序函数Comp对链表中的成绩数据按照总分的高低进行排序,算法与冒泡算法类似,进行前后数据的两两比较,逆序则交换。
(5)选择4后,调用函数Add进行添加记录,可在总记录个数内在任意整正数的位置进行添加。
(6)选择5后,调用函数Delect进行删除记录,可在总记录个数在任意整正数的位置进行删除。
(7)选择6后,查改函数Find先进行对整个成绩信息的遍历,若找不到该同学,则返回,否则根据实际情况修改该同学的某一科的成绩。
C语言大作业(成绩管理系统)

C语言大作业(成绩管理系统)制作人:皇家战盾2016年12月31日信息结构体中包括:学号、姓名、英语成绩、高数成绩、大物成绩、C语言成绩、机械制图成绩、政治成绩、体育成绩、总成绩、平均分。
源程序代码#include<>#include <>struct student{int num; 学号char name[100]; 姓名int score1; 英语int score2; 高数int score3; 大物int score4; C语言int score5; 机械制图int score6; 政治int score7; 体育int score8; 总成绩int score9; 平均分}stu[100];int R;int xuehao;double ping[10];int gao[10];void denglu(); 登录函数void student(); 学生登录界面函数void teacher(); 教师登录界面函数void chengji();void quanbanchengjishuchu(); 调用全班各科成绩、总分、平均分进行输出函数void tianjia(); 教师使用添加学生成绩函数void xiugai(); 教师使用修改学生成绩函数void input(); 教师修改成绩将成绩录入文档函数void shanchu(); 教师删除学生信息及成绩函数void gerenchengji(); 输出显示学生个人成绩void zhuce(); 学生登录注册函数void pingjun(); 成绩计算平均分void chaxun(); 教师使用按学号查询学生个人成绩void xuehaopaixu(); 按学号顺序显示个人成绩void gerengaofen(); 学生使用查询各科最高分void zuigaofen(); 显示各科最高分分数void ps1(); 英语成绩排序void ps2(); 高数成绩排序void ps3(); 大物成绩排序void ps4(); C语言成绩排序void ps5(); 工图成绩排序void ps6(); 政治成绩排序void ps7(); 体育成绩排序void pz(); 总成绩排序void xueshengpaiming(int number); 学生查看自己在全班排名main(){int x;system("cls");chengji();pingjun();zuigaofen();system("cls");printf("\n*****欢迎使用本成绩管理系统*****\n\n请选择功能:\n1.登录\n2.注册\n您选择的功能编号为:");scanf("%d",&x);if(x==1){denglu();}else if(x==2){zhuce();}else {printf("请正确选择!");}}void denglu(){int a[100],b[100],c[100],i,y,m,n;char w;FILE * fp;fp = fopen("","r");for(i=0;i<1000;i++){fscanf(fp,"%d%d%d",&a[i],&b[i],&c[i]);}fclose(fp);again:system("cls");printf("\n***请输入您的用户名和密码***\n\n用户名:");scanf("%d",&y);for(i=0;i<1000;i++){n=i;if(y==a[i])goto chenggong;}printf("用户名不存在,请正确输入!");goto again;chenggong:printf("密码:");scanf("%d",&m);{if(m==b[n])printf("登录成功!");else{printf("请正确输入!");scanf("%c",&w);scanf("%c",&w);goto again;}}xuehao = c[n];for(i=0;i<R;i++){if(xuehao==stu[i].num)goto ok;}if(xuehao==1)goto ok;printf("\n此学生以被老师删除,请联系老师");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);main();ok:if(c[n]==1){teacher();}else {student();}}void student(){int i,k,x;chengji();system("cls");for(i=0;i<1000;i++){k=i;if(xuehao==stu[i].num)goto ok;}ok:printf("\n*****欢迎使用本系统*****\n\n你好! %s 同学\n\n",stu[k].name);printf("请选择功能\n1.本人成绩查询\n2.各科最高分查询\n\n*如需退出请直接关闭*\n");scanf("%d",&x);if(x==1){gerenchengji();}if(x==2){gerengaofen();}}void teacher(){int x;system("cls");chengji();xuehaopaixu();pingjun();printf("\n*****欢迎敬爱的老师使用本系统*****\n\n");printf("请选择您需要的功能:\n1.学生管理\n2.成绩管理\n\n*如需退出请直接关闭*\n");scanf("%d",&x);if(x==1){system("cls");printf("\n*****欢迎敬爱的老师使用本系统*****\n\n请选择您需要对学生所做的操作\n1.添加某学生数据\n2.修改某学生数据\n3.删除某学生数据\n4.返回\n");scanf("%d",&x);switch(x){case 1:{tianjia();}case 2:{xiugai();}case 3:{shanchu();}case 4:{teacher();}}}else if(x==2){system("cls");printf("\n*****欢迎敬爱的老师使用本系统*****\n\n请选择您需要对成绩所做的操作\n1.查看全班学生的考试成绩\n2.修改某学生的考试成绩\n3.查看全班学生的排名\n4.按学号查询某学生的成绩\n5.返回\n");scanf("%d",&x);switch(x){case 1:{quanbanchengjishuchu();}case 2:{xiugai();}case 3:{printf("请选择排序方式:\n1.按总分排序\n2.按英语成绩排序\n3.按高等数学成绩排序\n4.按大学物理成绩排序\n5.按c语言成绩排序\n6.按机械制图成绩排序\n7.按政治成绩排序\n8.按体育成绩排序\n");um);fscanf(fp2,"%s",stu[i].name);fscanf(fp1,"%d",&stu[i].score1);fscanf(fp1,"%d",&stu[i].score2);fscanf(fp1,"%d",&stu[i].score3);fscanf(fp1,"%d",&stu[i].score4);fscanf(fp1,"%d",&stu[i].score5);fscanf(fp1,"%d",&stu[i].score6);fscanf(fp1,"%d",&stu[i].score7);fscanf(fp1,"%d",&stu[i].score8);fscanf(fp1,"%d",&stu[i].score9);stu[i].score8=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+s tu[i].score5+stu[i].score6+stu[i].score7;stu[i].score9=(stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+ stu[i].score5+stu[i].score6+stu[i].score7)/7;}fclose(fp1);fclose(fp2);fclose(fp3);}void quanbanchengjishuchu(){char w;system("cls");printf("学号\t姓名\t1.英语\t2.高数\t3.大物\语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t\t平均分\n");for(i=0;i<R;i++){printf("%d\t",stu[i].num);printf("%s\t",stu[i].name);printf("%d\t",stu[i].score1);printf("%d\t",stu[i].score2);printf("%d\t",stu[i].score3);printf("%d\t",stu[i].score4);printf("%d\t\t",stu[i].score5);printf("%d\t",stu[i].score6);printf("%d\t",stu[i].score7);printf("%d\t\t",stu[i].score8);printf("%d\t\n",stu[i].score9);}printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\n",pin g[1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void tianjia(){int a[10],i;char b[1][100],w;FILE * fp1;FILE * fp2;FILE * fp3;fp1 = fopen("","a");fp2 = fopen("","a");fp3 = fopen("","w");printf("清输入这名学生的学号\n");scanf("%d",&a[0]);for(i=0;i<R;i++){if(a[0]==stu[i].num)printf("以存在此学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}}fprintf(fp1,"%d\n",a[0]);printf("清输入这名学生的姓名\n");scanf("%s",b[0]);fprintf(fp2,"%s\n",b[0]); printf("清输入这名学生的英语成绩\n");scanf("%d",&a[1]);fprintf(fp1,"%d\n",a[1]);printf("清输入这名学生的高等数学成绩\n");scanf("%d",&a[2]);fprintf(fp1,"%d\n",a[2]);printf("清输入这名学生的大学物理成绩\n");scanf("%d",&a[3]);fprintf(fp1,"%d\n",a[3]);printf("清输入这名学生的C语言成绩\n");scanf("%d",&a[4]);fprintf(fp1,"%d\n",a[4]);printf("清输入这名学生的机械制图成绩\n");scanf("%d",&a[5]);fprintf(fp1,"%d\n",a[5]); printf("清输入这名学生的政治成绩\n");scanf("%d",&a[6]);fprintf(fp1,"%d\n",a[6]); printf("清输入这名学生的体育成绩\n");scanf("%d",&a[7]);fprintf(fp1,"%d\n",a[7]);a[8]=a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]; fprintf(fp1,"%d\n",a[8]);a[9]=(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7])/7; fprintf(fp1,"%d\n",a[9]);R=R+1;printf("现在此系统中共存的学生人数有%d人",R);fprintf(fp3,"%d",R);um){goto ok;}}printf("并不存在此学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();ok:printf("1.英语\t\t2.高等数学\t3.大学物理\语言\t\t5.机械制图\t6.政治\t7.体育\n\n");printf("您需要输入这名学生要修改的科目编号:");scanf("%d",&m);for(i=0;i<R;i++){if(n==stu[i].num){k=i;switch(m){case 1:{printf("\n请您确认您是要修改%s的英语成绩吗\n目前ta的英语成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score1);break;break;}case 2:{printf("\n请您确认您是要修改%s的高等数学成绩吗\n目前ta 的高等数学成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score2);break;break;}case 3:{printf("\n请您确认您是要修改%s的大学物理成绩吗\n目前ta 的大学物理成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score3);break;break;}case 4:{printf("\n请您确认您是要修改%s的C语言成绩吗\n目前ta的C 语言成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score4);break;break;}case 5:{printf("\n请您确认您是要修改%s的机械制图成绩吗\n目前ta 的机械制图成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score5);break;break;}case 6:{printf("\n请您确认您是要修改%s的政治成绩吗\n目前ta的政治成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score6);break;break;}case 7:{printf("\n请您确认您是要修改%s的体育成绩吗\n目前ta的体育成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score7);break;break;}core1=s;goto shuchu;}case 2:{stu[k].score2=s;goto shuchu;}case 3:{stu[k].score3=s;goto shuchu;}case 4:{stu[k].score4=s;goto shuchu;}case 5:{stu[k].score5=s;goto shuchu;}case 6:{stu[k].score6=s;goto shuchu;}case 7:{stu[k].score7=s;goto shuchu;}case 8:{stu[k].score8=s;goto shuchu;}case 9:{stu[k].score9=s;goto shuchu;}}}else if(p==2){printf("以取消\n按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}else{printf("请正确选择!");}shuchu:input();}void input(){int i;char w;FILE * fp1;FILE * fp2;FILE * fp3;fp1 = fopen("","w");fclose(fp1);fp2 = fopen("","w");fclose(fp2);fp1 = fopen("","a");fp2 = fopen("","a");fp3 = fopen("","w");for(i=0;i<R;i++){fprintf(fp1,"%d\n",stu[i].num);fprintf(fp2,"%s\n",stu[i].name);fprintf(fp1,"%d\n",stu[i].score1);fprintf(fp1,"%d\n",stu[i].score2);fprintf(fp1,"%d\n",stu[i].score3);fprintf(fp1,"%d\n",stu[i].score4);fprintf(fp1,"%d\n",stu[i].score5);fprintf(fp1,"%d\n",stu[i].score6);fprintf(fp1,"%d\n",stu[i].score7);stu[i].score8=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+s tu[i].score5+stu[i].score6+stu[i].score7;fprintf(fp1,"%d\n",stu[i].score8);stu[i].score9=(stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+ stu[i].score5+stu[i].score6+stu[i].score7)/7;fprintf(fp1,"%d\n",stu[i].score9);}fprintf(fp3,"%d",R);fclose(fp1);fclose(fp2);fclose(fp3);printf("\n按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void shanchu(){int i,n,k,x;char w;printf("请输入要删除学生的学号:");scanf("%d",&n);for(i=0;i<R;i++){if(n==stu[i].num)goto cunzai;}printf("不存在此学号的学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();cunzai:for(i=0;i<R;i++){k=i;if(n==stu[i].num){printf("请确认要删除%s的成绩数据吗\n1.确认 2.取消",stu[i].name);scanf("%d",&x);if(x==1){goto ok;}else if(x==2){printf("以取消,按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}else{printf("请正确选择!");}}}ok:R=R-1;for(i=k;i<R;i++){stu[i]=stu[i+1];}stu[i+1]=stu[i+2];input();printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void gerenchengji(){int k,i;char w;for(i=0;i<1000;i++){k=i;if(xuehao==stu[i].num)goto ok;}ok:printf("学号\t姓名\t1.英语\t2.高数\t3.大物\语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t\t平均分\n");printf("%d\t",stu[k].num);printf("%s\t",stu[k].name);printf("%d\t",stu[k].score1);printf("%d\t",stu[k].score2);printf("%d\t",stu[k].score3);printf("%d\t",stu[k].score4);printf("%d\t\t",stu[k].score5);printf("%d\t",stu[k].score6);printf("%d\t",stu[k].score7);printf("%d\t\t",stu[k].score8);printf("%d\t\n",stu[k].score9);printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\n",pin g[1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);xueshengpaiming(k);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);student();}void zhuce(){int n,y,m,i,a[100],b[100],c[100];char w;FILE * fp;fp = fopen("","r");for(i=0;i<1000;i++){fscanf(fp,"%d%d%d",&a[i],&b[i],&c[i]);}fclose(fp);printf("请输入学号:");scanf("%d",&n);for(i=0;i<R;i++){if(c[i]==n){printf("此学号已被注册请重新登录\n按任意键返回开始界面");scanf("%c",&w);scanf("%c",&w);main();break;}}for(i=0;i<R;i++){if(n==stu[i].num){goto ok;}}printf("此学号未在成绩系统内,请联系老师添加此学号\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);main();ok:printf("此学号可以注册!\n请输入用户名(数字)和密码(数字)创建新用户\n 用户名:");scanf("%d",&y);for(i=0;i<R;i++){if(y==a[i]){printf("此用户名以被注册,请换一个从新输入");goto ok;}}printf("密码:");scanf("%d",&m);fp = fopen("","a");fprintf(fp,"\n%d\n%d\n%d",y,m,n);fclose(fp);printf("注册成功!请关闭从新登陆\n");}void pingjun(){int h[10],i;for(i=0;i<10;i++){h[i]=0;}for(i=0;i<R;i++){h[1]=h[1]+stu[i].score1;h[2]=h[2]+stu[i].score2;h[3]=h[3]+stu[i].score3;h[4]=h[4]+stu[i].score4;h[5]=h[5]+stu[i].score5;h[6]=h[6]+stu[i].score6;h[7]=h[7]+stu[i].score7;h[8]=h[8]+stu[i].score8;h[9]=h[9]+stu[i].score9;}ping[1]=*h[1]/R;ping[2]=*h[2]/R;ping[3]=*h[3]/R;ping[4]=*h[4]/R;ping[5]=*h[5]/R;ping[6]=*h[6]/R;ping[7]=*h[7]/R;ping[8]=*h[8]/R;ping[9]=*h[9]/R;}void chaxun(){int n,k,i;char w;printf("请输入需要查询的学生的学号:");scanf("%d",&n);for(i=0;i<R;i++){if(n==stu[i].num){k=i;goto ok;}}printf("并不存在此学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();ok:printf("学号\t姓名\t1.英语\t2.高数\t3.大物\语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t平均分\n");printf("%d\t",stu[k].num);printf("%s\t",stu[k].name);printf("%d\t",stu[k].score1);printf("%d\t",stu[k].score2);printf("%d\t",stu[k].score3);printf("%d\t",stu[k].score4);printf("%d\t\t",stu[k].score5);printf("%d\t",stu[k].score6);printf("%d\t",stu[k].score7);printf("%d\t",stu[k].score8);printf("%d\t\n",stu[k].score9);printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",ping[ 1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void zuigaofen(){int i,b;for(i=0;i<10;i++){gao[i]=0;}for(i=0;i<R;i++){if(stu[i].score1>gao[1]){gao[1]=stu[i].score1;}if(stu[i].score2>gao[2]){gao[2]=stu[i].score2;}if(stu[i].score3>gao[3]){gao[3]=stu[i].score3;}if(stu[i].score4>gao[4]){gao[4]=stu[i].score4;}if(stu[i].score5>gao[5]){gao[5]=stu[i].score5;}if(stu[i].score6>gao[6]){gao[6]=stu[i].score6;}if(stu[i].score7>gao[7]){gao[7]=stu[i].score7;}if(stu[i].score8>gao[8]){gao[8]=stu[i].score8;}if(stu[i].score9>gao[9]){gao[9]=stu[i].score9;}}}void gerengaofen(){int k,i;char w;for(i=0;i<1000;i++){k=i;if(xuehao==stu[i].num)goto ok;}ok:printf("学号\t姓名\t1.英语\t2.高数\t3.大物\语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t平均分\n");printf("%d\t",stu[k].num);printf("%s\t",stu[k].name);printf("%d\t",stu[k].score1);printf("%d\t",stu[k].score2);printf("%d\t",stu[k].score3);printf("%d\t",stu[k].score4);printf("%d\t\t",stu[k].score5);printf("%d\t",stu[k].score6);printf("%d\t",stu[k].score7);printf("%d\t",stu[k].score8);printf("%d\t\n",stu[k].score9);printf("全班各课最高分\t%d\t\%d\t%d\t%d\t%d\t\t%d\t%d\t%d\t%d\n",gao[1],gao[2],gao[3],gao[4],gao[ 5],gao[6],gao[7],gao[8],gao[9]);printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",ping[ 1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);student();}void xuehaopaixu(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].num>stu[i+1].num){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void pz(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score8<stu[i+1].score8){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps1(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score1<stu[i+1].score1){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps2(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score2<stu[i+1].score2){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps3(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score3<stu[i+1].score3){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps4(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score4<stu[i+1].score4){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps5(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score5<stu[i+1].score5){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps6(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score6<stu[i+1].score6){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps7(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score7<stu[i+1].score7){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void xueshengpaiming(int k){int i,j;int rank[9];char w;core1<stu[i].score1)j++;rank[1]=j;core2<stu[i].score2)j++;rank[2]=j;core3<stu[i].score3)j++;rank[3]=j;core4<stu[i].score4)j++;rank[4]=j;core5<stu[i].score5)j++;rank[5]=j;core6<stu[i].score6)j++;rank[6]=j;core7<stu[i].score7)j++;rank[7]=j;core8<stu[i].score8)j++;rank[8]=j;printf("全班排名: ");for(i=1;i<=5;i++)printf("%d\t",rank[i]);printf("\t");for(i=6;i<=8;i++)printf("%d\t",rank[i]);printf("\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);student();}Ps :需要在文件夹内加入几个TXT文本档,例:各文件里的内容度盘链接: 密码: sfmr。
学生成绩管理系统c语言代码(供参考)

C程序学生管理系统以下是用C语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include”stdlib。
h"#include"string。
h”typedefstruct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedefstruct unit//定义接点{studentdate;struct unit*next;}unit;unit大build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf("二>初始化失败!”);return0;}else{p—>next=NULL;p-〉date.number=O;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit大head)//增加学生{unit*p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”二〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("二〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q二二NULL)n二1;while(q){if(q->date.number==m){prinTf("二>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL)n=1;}}}p一〉date。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言大作业(成绩管理系统)制作人:皇家战盾2016年12月31日信息结构体中包括:学号、姓名、英语成绩、高数成绩、大物成绩、C语言成绩、机械制图成绩、政治成绩、体育成绩、总成绩、平均分。
源程序代码#include<stdio.h>#include <stdlib.h>struct student{int num; 学号char name[100]; 姓名int score1; 英语int score2; 高数int score3; 大物int score4; C语言int score5; 机械制图int score6; 政治int score7; 体育int score8; 总成绩int score9; 平均分}stu[100];int R;int xuehao;double ping[10];int gao[10];void denglu(); 登录函数void student(); 学生登录界面函数void teacher(); 教师登录界面函数void chengji();void quanbanchengjishuchu(); 调用全班各科成绩、总分、平均分进行输出函数void tianjia(); 教师使用添加学生成绩函数void xiugai(); 教师使用修改学生成绩函数void input(); 教师修改成绩将成绩录入文档函数void shanchu(); 教师删除学生信息及成绩函数void gerenchengji(); 输出显示学生个人成绩void zhuce(); 学生登录注册函数void pingjun(); 成绩计算平均分void chaxun(); 教师使用按学号查询学生个人成绩void xuehaopaixu(); 按学号顺序显示个人成绩void gerengaofen(); 学生使用查询各科最高分void zuigaofen(); 显示各科最高分分数void ps1(); 英语成绩排序void ps2(); 高数成绩排序void ps3(); 大物成绩排序void ps4(); C语言成绩排序void ps5(); 工图成绩排序void ps6(); 政治成绩排序void ps7(); 体育成绩排序void pz(); 总成绩排序void xueshengpaiming(int number); 学生查看自己在全班排名main(){int x;system("cls");chengji();pingjun();zuigaofen();system("cls");printf("\n*****欢迎使用本成绩管理系统*****\n\n请选择功能:\n1.登录\n2.注册\n您选择的功能编号为:");scanf("%d",&x);if(x==1){denglu();}else if(x==2){zhuce();}else {printf("请正确选择!");}}void denglu(){int a[100],b[100],c[100],i,y,m,n;char w;FILE * fp;fp = fopen("zhanghao.txt","r");for(i=0;i<1000;i++){fscanf(fp,"%d%d%d",&a[i],&b[i],&c[i]);}fclose(fp);again:system("cls");printf("\n***请输入您的用户名和密码***\n\n用户名:");scanf("%d",&y);for(i=0;i<1000;i++){n=i;if(y==a[i])goto chenggong;}printf("用户名不存在,请正确输入!");goto again;chenggong:printf("密码:");scanf("%d",&m);{if(m==b[n])printf("登录成功!");else{printf("请正确输入!");scanf("%c",&w);scanf("%c",&w);goto again;}}xuehao = c[n];for(i=0;i<R;i++){if(xuehao==stu[i].num)goto ok;}if(xuehao==1)goto ok;printf("\n此学生以被老师删除,请联系老师");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);main();ok:if(c[n]==1){teacher();}else {student();}}void student(){int i,k,x;chengji();system("cls");for(i=0;i<1000;i++){k=i;if(xuehao==stu[i].num)goto ok;}ok:printf("\n*****欢迎使用本系统*****\n\n你好! %s 同学\n\n",stu[k].name);printf("请选择功能\n1.本人成绩查询\n2.各科最高分查询\n\n*如需退出请直接关闭*\n");scanf("%d",&x);if(x==1){gerenchengji();}if(x==2){gerengaofen();}}void teacher(){int x;system("cls");chengji();xuehaopaixu();pingjun();printf("\n*****欢迎敬爱的老师使用本系统*****\n\n");printf("请选择您需要的功能:\n1.学生管理\n2.成绩管理\n\n*如需退出请直接关闭*\n");scanf("%d",&x);if(x==1){system("cls");printf("\n*****欢迎敬爱的老师使用本系统*****\n\n请选择您需要对学生所做的操作\n1.添加某学生数据\n2.修改某学生数据\n3.删除某学生数据\n4.返回\n");scanf("%d",&x);switch(x){case 1:{tianjia();}case 2:{xiugai();}case 3:{shanchu();}case 4:{teacher();}}}else if(x==2){system("cls");printf("\n*****欢迎敬爱的老师使用本系统*****\n\n请选择您需要对成绩所做的操作\n1.查看全班学生的考试成绩\n2.修改某学生的考试成绩\n3.查看全班学生的排名\n4.按学号查询某学生的成绩\n5.返回\n");scanf("%d",&x);switch(x){case 1:{quanbanchengjishuchu();}case 2:{xiugai();}case 3:{printf("请选择排序方式:\n1.按总分排序\n2.按英语成绩排序\n3.按高等数学成绩排序\n4.按大学物理成绩排序\n5.按c语言成绩排序\n6.按机械制图成绩排序\n7.按政治成绩排序\n8.按体育成绩排序\n");//英语、高等数学、大学物理、C语言、机械制图、政治、体育scanf("%d",&x);switch (x){case 1:{pz();quanbanchengjishuchu();}case 2:{ps1();quanbanchengjishuchu();}case 3:{ps2();quanbanchengjishuchu();}case 4:{ps3();quanbanchengjishuchu();}case 5:{ps4();quanbanchengjishuchu();}case 6:{ps5();quanbanchengjishuchu();}case 7:{ps6();quanbanchengjishuchu();}case 8:{ps7();quanbanchengjishuchu();}}}case 4:{chaxun();}case 5:{teacher();}}}else ;return 0;}void chengji(){int i;FILE * fp1;FILE * fp2;FILE * fp3;fp1 = fopen("chengji.txt","r");fp2 = fopen("name.txt","r");fp3 = fopen("renshu.txt","r");fscanf(fp3,"%d",&R);printf("目前本成绩管理系统所存学生人数为%d人\n",R);for(i=0;i<R;i++){fscanf(fp1,"%d",&stu[i].num);fscanf(fp2,"%s",stu[i].name);fscanf(fp1,"%d",&stu[i].score1);fscanf(fp1,"%d",&stu[i].score2);fscanf(fp1,"%d",&stu[i].score3);fscanf(fp1,"%d",&stu[i].score4);fscanf(fp1,"%d",&stu[i].score5);fscanf(fp1,"%d",&stu[i].score6);fscanf(fp1,"%d",&stu[i].score7);fscanf(fp1,"%d",&stu[i].score8);fscanf(fp1,"%d",&stu[i].score9);stu[i].score8=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+s tu[i].score5+stu[i].score6+stu[i].score7;stu[i].score9=(stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+ stu[i].score5+stu[i].score6+stu[i].score7)/7;}fclose(fp1);fclose(fp2);fclose(fp3);}void quanbanchengjishuchu(){int i;char w;system("cls");printf("学号\t姓名\t1.英语\t2.高数\t3.大物\t4.C语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t\t平均分\n");for(i=0;i<R;i++){printf("%d\t",stu[i].num);printf("%s\t",stu[i].name);printf("%d\t",stu[i].score1);printf("%d\t",stu[i].score2);printf("%d\t",stu[i].score3);printf("%d\t",stu[i].score4);printf("%d\t\t",stu[i].score5);printf("%d\t",stu[i].score6);printf("%d\t",stu[i].score7);printf("%d\t\t",stu[i].score8);printf("%d\t\n",stu[i].score9);}printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\n",pin g[1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void tianjia(){int a[10],i;char b[1][100],w;FILE * fp1;FILE * fp2;FILE * fp3;fp1 = fopen("chengji.txt","a");fp2 = fopen("name.txt","a");fp3 = fopen("renshu.txt","w");printf("清输入这名学生的学号\n");scanf("%d",&a[0]);for(i=0;i<R;i++){if(a[0]==stu[i].num){printf("以存在此学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}}fprintf(fp1,"%d\n",a[0]);printf("清输入这名学生的姓名\n");scanf("%s",b[0]);fprintf(fp2,"%s\n",b[0]);printf("清输入这名学生的英语成绩\n");scanf("%d",&a[1]);fprintf(fp1,"%d\n",a[1]);printf("清输入这名学生的高等数学成绩\n");scanf("%d",&a[2]);fprintf(fp1,"%d\n",a[2]);printf("清输入这名学生的大学物理成绩\n");scanf("%d",&a[3]);fprintf(fp1,"%d\n",a[3]);printf("清输入这名学生的C语言成绩\n");scanf("%d",&a[4]);fprintf(fp1,"%d\n",a[4]);printf("清输入这名学生的机械制图成绩\n");scanf("%d",&a[5]);fprintf(fp1,"%d\n",a[5]);printf("清输入这名学生的政治成绩\n");scanf("%d",&a[6]);fprintf(fp1,"%d\n",a[6]);printf("清输入这名学生的体育成绩\n");scanf("%d",&a[7]);fprintf(fp1,"%d\n",a[7]);a[8]=a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7];fprintf(fp1,"%d\n",a[8]);a[9]=(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7])/7;fprintf(fp1,"%d\n",a[9]);R=R+1;printf("现在此系统中共存的学生人数有%d人",R);fprintf(fp3,"%d",R);//英语、高等数学、大学物理、C语言、机械制图、政治、体育fclose(fp1);fclose(fp2);fclose(fp3);printf("添加成功!按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void xiugai(){int n,m,i,s,p,k,w;chengji();printf("您需要输入这名学生的学号和要修改的科目编号,之后进行修改\n请输入这名学生的学号:");scanf("%d",&n);for(i=0;i<R;i++){if(n==stu[i].num){goto ok;}}printf("并不存在此学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();ok:printf("1.英语\t\t2.高等数学\t3.大学物理\t4.C语言\t\t5.机械制图\t6.政治\t7.体育\n\n");printf("您需要输入这名学生要修改的科目编号:");scanf("%d",&m);for(i=0;i<R;i++){if(n==stu[i].num){k=i;switch(m){case 1:{printf("\n请您确认您是要修改%s的英语成绩吗?\n目前ta的英语成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score1);break;break;}case 2:{printf("\n请您确认您是要修改%s的高等数学成绩吗?\n目前ta的高等数学成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score2);break;break;}case 3:{printf("\n请您确认您是要修改%s的大学物理成绩吗?\n目前ta的大学物理成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score3);break;break;}case 4:{printf("\n请您确认您是要修改%s的C语言成绩吗?\n目前ta的C语言成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score4);break;break;}case 5:{printf("\n请您确认您是要修改%s的机械制图成绩吗?\n目前ta的机械制图成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score5);break;break;}case 6:{printf("\n请您确认您是要修改%s的政治成绩吗?\n目前ta的政治成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score6);break;break;}case 7:{printf("\n请您确认您是要修改%s的体育成绩吗?\n目前ta的体育成绩为%d\n\n请输入\n1.确认 2.取消\n",stu[i].name,stu[i].score7);break;break;}//英语、高等数学、大学物理、C语言、机械制图、政治、体育}if(m!=1&&m!=2&&m!=3&&m!=4&&m!=5&&m!=6&&m!=7){printf("请正确选择");scanf("%c",&w);scanf("%c",&w);goto ok;}}}scanf("%d",&p);if(p==1){printf("请输入ta的新成绩:");scanf("%d",&s);printf("ta的此课程的新成绩为%d",s);switch(m){case 1:{stu[k].score1=s;goto shuchu;}case 2:{stu[k].score2=s;goto shuchu;}case 3:{stu[k].score3=s;goto shuchu;}case 4:{stu[k].score4=s;goto shuchu;} case 5:{stu[k].score5=s;goto shuchu;} case 6:{stu[k].score6=s;goto shuchu;} case 7:{stu[k].score7=s;goto shuchu;} case 8:{stu[k].score8=s;goto shuchu;} case 9:{stu[k].score9=s;goto shuchu;} }}else if(p==2){printf("以取消\n按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}else{printf("请正确选择!");}shuchu:input();}void input(){int i;char w;FILE * fp1;FILE * fp2;FILE * fp3;fp1 = fopen("chengji.txt","w");fclose(fp1);fp2 = fopen("name.txt","w");fclose(fp2);fp1 = fopen("chengji.txt","a");fp2 = fopen("name.txt","a");fp3 = fopen("renshu.txt","w");for(i=0;i<R;i++){fprintf(fp1,"%d\n",stu[i].num);fprintf(fp2,"%s\n",stu[i].name);fprintf(fp1,"%d\n",stu[i].score1);fprintf(fp1,"%d\n",stu[i].score2);fprintf(fp1,"%d\n",stu[i].score3);fprintf(fp1,"%d\n",stu[i].score4);fprintf(fp1,"%d\n",stu[i].score5);fprintf(fp1,"%d\n",stu[i].score6);fprintf(fp1,"%d\n",stu[i].score7);stu[i].score8=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+s tu[i].score5+stu[i].score6+stu[i].score7;fprintf(fp1,"%d\n",stu[i].score8);stu[i].score9=(stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+ stu[i].score5+stu[i].score6+stu[i].score7)/7;fprintf(fp1,"%d\n",stu[i].score9);}fprintf(fp3,"%d",R);fclose(fp1);fclose(fp2);fclose(fp3);printf("\n按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void shanchu(){int i,n,k,x;char w;printf("请输入要删除学生的学号:");scanf("%d",&n);for(i=0;i<R;i++){if(n==stu[i].num)goto cunzai;}printf("不存在此学号的学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();cunzai:for(i=0;i<R;i++){k=i;if(n==stu[i].num){printf("请确认要删除%s的成绩数据吗?\n1.确认 2.取消",stu[i].name);scanf("%d",&x);if(x==1){goto ok;}else if(x==2){printf("以取消,按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}else{printf("请正确选择!");}}}ok:R=R-1;for(i=k;i<R;i++){stu[i]=stu[i+1];}stu[i+1]=stu[i+2];input();printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void gerenchengji(){int k,i;char w;for(i=0;i<1000;i++){k=i;if(xuehao==stu[i].num)goto ok;}ok:printf("学号\t姓名\t1.英语\t2.高数\t3.大物\t4.C语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t\t平均分\n");printf("%d\t",stu[k].num);printf("%s\t",stu[k].name);printf("%d\t",stu[k].score1);printf("%d\t",stu[k].score2);printf("%d\t",stu[k].score3);printf("%d\t",stu[k].score4);printf("%d\t\t",stu[k].score5);printf("%d\t",stu[k].score6);printf("%d\t",stu[k].score7);printf("%d\t\t",stu[k].score8);printf("%d\t\n",stu[k].score9);printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\n",pin g[1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);xueshengpaiming(k);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);student();}void zhuce(){int n,y,m,i,a[100],b[100],c[100];char w;FILE * fp;fp = fopen("zhanghao.txt","r");for(i=0;i<1000;i++){fscanf(fp,"%d%d%d",&a[i],&b[i],&c[i]);}fclose(fp);printf("请输入学号:");scanf("%d",&n);for(i=0;i<R;i++){if(c[i]==n){printf("此学号已被注册请重新登录\n按任意键返回开始界面");scanf("%c",&w);scanf("%c",&w);main();break;}}for(i=0;i<R;i++){if(n==stu[i].num){goto ok;}}printf("此学号未在成绩系统内,请联系老师添加此学号\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);main();ok:printf("此学号可以注册!\n请输入用户名(数字)和密码(数字)创建新用户\n用户名:");scanf("%d",&y);for(i=0;i<R;i++){if(y==a[i]){printf("此用户名以被注册,请换一个从新输入");goto ok;}}printf("密码:");scanf("%d",&m);fp = fopen("zhanghao.txt","a");fprintf(fp,"\n%d\n%d\n%d",y,m,n);fclose(fp);printf("注册成功!请关闭从新登陆\n");}void pingjun(){int h[10],i;for(i=0;i<10;i++){h[i]=0;}for(i=0;i<R;i++){h[1]=h[1]+stu[i].score1;h[2]=h[2]+stu[i].score2;h[3]=h[3]+stu[i].score3;h[4]=h[4]+stu[i].score4;h[5]=h[5]+stu[i].score5;h[6]=h[6]+stu[i].score6;h[7]=h[7]+stu[i].score7;h[8]=h[8]+stu[i].score8;h[9]=h[9]+stu[i].score9;}ping[1]=1.0*h[1]/R;ping[2]=1.0*h[2]/R;ping[3]=1.0*h[3]/R;ping[4]=1.0*h[4]/R;ping[5]=1.0*h[5]/R;ping[6]=1.0*h[6]/R;ping[7]=1.0*h[7]/R;ping[8]=1.0*h[8]/R;ping[9]=1.0*h[9]/R;}void chaxun(){int n,k,i;char w;printf("请输入需要查询的学生的学号:");scanf("%d",&n);for(i=0;i<R;i++){if(n==stu[i].num){k=i;goto ok;}}printf("并不存在此学生!\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();ok:printf("学号\t姓名\t1.英语\t2.高数\t3.大物\t4.C语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t平均分\n");printf("%d\t",stu[k].num);printf("%s\t",stu[k].name);printf("%d\t",stu[k].score1);printf("%d\t",stu[k].score2);printf("%d\t",stu[k].score3);printf("%d\t",stu[k].score4);printf("%d\t\t",stu[k].score5);printf("%d\t",stu[k].score6);printf("%d\t",stu[k].score7);printf("%d\t",stu[k].score8);printf("%d\t\n",stu[k].score9);printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",ping[ 1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);teacher();}void zuigaofen(){int i,b;for(i=0;i<10;i++){gao[i]=0;}for(i=0;i<R;i++){if(stu[i].score1>gao[1]){gao[1]=stu[i].score1;}if(stu[i].score2>gao[2]){gao[2]=stu[i].score2;}if(stu[i].score3>gao[3]){gao[3]=stu[i].score3;}if(stu[i].score4>gao[4]){gao[4]=stu[i].score4;}if(stu[i].score5>gao[5]){gao[5]=stu[i].score5;}if(stu[i].score6>gao[6]){gao[6]=stu[i].score6;}if(stu[i].score7>gao[7]){gao[7]=stu[i].score7;}if(stu[i].score8>gao[8]){gao[8]=stu[i].score8;}if(stu[i].score9>gao[9]){gao[9]=stu[i].score9;}}}void gerengaofen(){int k,i;char w;for(i=0;i<1000;i++){k=i;if(xuehao==stu[i].num)goto ok;}ok:printf("学号\t姓名\t1.英语\t2.高数\t3.大物\t4.C语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t平均分\n");printf("%d\t",stu[k].num);printf("%s\t",stu[k].name);printf("%d\t",stu[k].score1);printf("%d\t",stu[k].score2);printf("%d\t",stu[k].score3);printf("%d\t",stu[k].score4);printf("%d\t\t",stu[k].score5);printf("%d\t",stu[k].score6);printf("%d\t",stu[k].score7);printf("%d\t",stu[k].score8);printf("%d\t\n",stu[k].score9);printf("全班各课最高分\t%d\t\%d\t%d\t%d\t%d\t\t%d\t%d\t%d\t%d\n",gao[1],gao[2],gao[3],gao[4],gao[ 5],gao[6],gao[7],gao[8],gao[9]);printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",ping[ 1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);student();}void xuehaopaixu(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].num>stu[i+1].num){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void pz(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score8<stu[i+1].score8){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps1(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score1<stu[i+1].score1){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps2(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score2<stu[i+1].score2){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps3(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score3<stu[i+1].score3){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps4(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score4<stu[i+1].score4){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps5(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score5<stu[i+1].score5){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps6(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score6<stu[i+1].score6){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void ps7(){int j,i;for(j=0;j<R;j++){for(i=0;i<R-1;i++){if(stu[i].score7<stu[i+1].score7){stu[R+1]=stu[i];stu[i]=stu[i+1];stu[i+1]=stu[R+1];}}}}void xueshengpaiming(int k){int i,j;int rank[9];char w;//英语排名j=1;for(i=0;i<=R;i++)if(stu[k].score1<stu[i].score1)j++;rank[1]=j;//高数排名j=1;for(i=0;i<=R;i++)if(stu[k].score2<stu[i].score2)j++;rank[2]=j;//大物排名j=1;for(i=0;i<=R;i++)if(stu[k].score3<stu[i].score3) j++;rank[3]=j;//C语言排名j=1;for(i=0;i<=R;i++)if(stu[k].score4<stu[i].score4) j++;rank[4]=j;//工图排名j=1;for(i=0;i<=R;i++)if(stu[k].score5<stu[i].score5) j++;rank[5]=j;//政治排名j=1;for(i=0;i<=R;i++)if(stu[k].score6<stu[i].score6) j++;rank[6]=j;//体育排名j=1;for(i=0;i<=R;i++)if(stu[k].score7<stu[i].score7) j++;rank[7]=j;//总分排名j=1;for(i=0;i<=R;i++)if(stu[k].score8<stu[i].score8) j++;rank[8]=j;printf("全班排名: ");for(i=1;i<=5;i++)printf("%d\t",rank[i]);printf("\t");for(i=6;i<=8;i++)printf("%d\t",rank[i]);printf("\n");printf("按回车键返回");scanf("%c",&w);scanf("%c",&w);student();}Ps :需要在文件夹内加入几个TXT文本档,renshu.txtzhengji.txtzhanghao.txtname.txt例:各文件里的内容度盘链接: https:///s/1dFIFndn 密码: sfmr 感谢您的支持与配合,我们会努力把内容做得更好!。