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。
C语言程序设计课程大作业--成绩管理系统
《C语言程序设计》课程大作业--学生成绩管理系统一、任务与目的本大作业要求学生对《学生成绩管理系统》进行分析、设计及编程实现。
要求该系统实现部门级(或班级)成绩管理的常用功能,界面友好。
通过大作业,促使学生专业技能得到综合训练,让学生了解软件开发基本技术和工作过程。
通过本系统的开发,同学要了解软件开发的整个过程,掌握软件开发的基本方法,提前培养同学们从事软件行业应具备的基本素质和能力,为以后的学习作一个铺垫。
二、系统开发步骤软件开发一般有以下步骤:1. 问题定义2. 可行性研究3. 需求分析(需求分析阶段)4. 总体设计5. 详细设计6. 编码及单元测试7. 综合测试8. 软件维护(安装调试阶段)其中1、2、3步可以整合为调研分析阶段,4、5、6、7步可以整合为项目实施阶段。
根据本次课程设计的实际情况,我们着重进行系统设计和编码实施。
该阶段主要工作有:1.系统结构的总体设计决定系统的总体结构,包括整个系统分哪些部分,各部分之间有什么联系以及已确定的需求对这些组成部分如何分配等方面。
2.数据结构定义定义软件处理的对象——类,定义数据处理流程。
3.详细设计对各功能模块的功能定义,说明模块之间的调用关系与接口(参数)。
4.编码及调试根据详细设计的要求,按照统一的要求和编码规范,用JAVA语言编码实现,同时负责每个模块的独立调试。
5.综合测试软件开发的后期是软件装配和综合测试。
软件测试一般有专业的测试人员,同时通过发布使用试用版(体验版)等方式让用户体验、测试。
在多次测试改进后,才正式发布。
三、系统功能需求描述管理内容包括:学号、姓名、班级、五门课成绩。
主要功能有:添加、修改、删除、读出、写入、查找、排序、计算总分、平均分、分类汇总等。
具体包括:1. 输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩;2. 显示全部学生各科成绩信息;3. 对各科成绩统计分析(总分、平均分、最高分、最低分、及格率等);4. 统计各科各分数段人数;5. 按学号或姓名查找并显示某个学生的各科成绩;6. 按课程成绩或总分由高到低排序显示;7. 更新某个学生的基本信息或课程成绩;8. 将学生的成绩信息保存到一个文件中;9. 读入文件中保存的学生信息。
学生成绩管理系统C语言版
1、2、编一程序,能计算每个学生的总分和平均分。
3、编一程序,能按输入要求打印各门课程的最高分和最低分的同学。
4、编一程序,能将五个学生的成绩按总分进行降序排序。
5、编一程序,能删除一个学生的记录;6、编一程序,能增加一个学生的记录;建立一个菜单模式的学生信息管理系统,完成功能如下:一、建立主菜单*****学生信息管理系统*****1、输入学生信息2、输出学生信息3、计算每个同学成绩的总分与平均分4、对学生成绩进行排序5、输出每门功课最高分的同学信息6、输出每门功课最低分的同学信息7、退出系统主菜单界面:二、将综合练习一中的程序改写为子程序并能通过主菜单进行调用。
先上图开发环境windows 7,vc 6.0 开始贴代码:/*************** 张海山* 10软件2班* 安庆职业技术学院* QQ:136533295******************/#include"stdio.h"#include"stdlib.h"#include"malloc.h"#include"string.h"typedef struct lode{int id;char name[20];char sex[10];int score[4];struct lode *next;}lode,*linklist;linklist input(linklist head)//输入学生信息{char cmd='y';int t,i,l;char name[10];char sex[2];int score[3]={0};//int sum;linklist p;while(cmd=='y'||cmd=='Y'){p=(linklist)malloc(sizeof(lode));printf("请输入学生的编号\n");fflush(stdin);scanf("%d",&t);p->id=t;printf("请输入学生的姓名:\n");fflush(stdin);scanf("%s",p->name);/* l=strlen(p->name);p->sex[l]='\0';/* for(i=0;i<l;i++){p->name[i]=name[i];}*/printf("请输入学生的性别:\n");fflush(stdin);scanf("%s",p->sex);/* l=strlen(p->sex);p->sex[l]='\0';/* for(i=0;i<l;i++){p->sex[i]=sex[i];}*/fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&score[0]);p->score[0]=score[0];fflush(stdin);scanf("%d",&score[1]);p->score[1]=score[1];fflush(stdin);scanf("%d",&score[2]);p->score[2]=score[2];fflush(stdin);p->next=head->next;head->next=p;printf("是否继续(y)&返回主菜单(n) y&n\n");fflush(stdin);scanf("%c",&cmd);}return head;}linklist print(linklist head){linklist p;int i=1;p=head->next;printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");while(p!=NULL){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);p=p->next;/*if(p==NULL)break;printf("%d\n",i);*/}//printf("%d\n",i);//printf("i=%d\n",i);return 0;}void avg(linklist head){int sum=0;double avg=0;linklist p;p=head->next;while(p!=NULL){sum=0;sum=p->score[1]+p->score[2]+p->score[0];avg=sum/3;printf("%s的总分为:%d\t平均分为:%.2lf\n",p->name,sum,avg);p=p->next;}}void maxmin(linklist head){linklist p;intmax1=0,max1index,min1=head->next->score[0],min1index,max2=0,max2index,min2=head->nex t->score[1],min2index,max3=0,max3index,min3=head->next->score[2],min3index;p=head->next;while(p!=NULL){if(max1<(p->score[0])){max1=p->score[0];max1index=p->id;}if(min1>=(p->score[0])){min1=p->score[0];min1index=p->id;}if(max2<(p->score[1])){max2=p->score[1];max2index=p->id;}if(min2>=(p->score[1])){min2=p->score[1];min2index=p->id;}if(max3<(p->score[2])){max3=p->score[2];max3index=p->id;}if(min3>=(p->score[2])){min3=p->score[2];min3index=p->id;}p=p->next;}printf("英语:\n");p=head->next;while(p!=NULL){if((p->id)==max1index)printf("英语最高分为:%d\t姓名为:%s\n",p->score[0],p->name);if((p->id)==min1index)printf("英语最低分为:%d\t姓名为:%s\n",p->score[0],p->name);p=p->next;}printf("数学:\n");p=head->next;while(p!=NULL){if((p->id)==max2index)printf("数学最高分为:%d\t姓名为:%s\n",p->score[1],p->name);if((p->id)==min2index)printf("数学最低分为:%d\t姓名为:%s\n",p->score[1],p->name);p=p->next;}printf("语文:\n");p=head->next;while(p!=NULL){if((p->id)==max3index)printf("语文最高分为:%d\t姓名为:%s\n",p->score[2],p->name);if((p->id)==min3index)printf("语文最低分为:%d\t姓名为:%s\n",p->score[2],p->name);p=p->next;}}void rank(linklist head){linklist p;int i=0,j,k,n=0;int sum[100];p=head->next;while(p!=NULL){n++;sum[i]=p->score[1]+p->score[2]+p->score[0];i++;p=p->next;}printf("n=%d\n",n);for(i=1;i<6;i++){for(j=0;j<6-i;j++)if(sum[j]<sum[j+1]){k=sum[j];sum[j]=sum[j+1];sum[j+1]=k;}}printf("\t序号\t姓名\t性别\t英语\t数学\t语文\n");for(i=0;i<n;i++){p=head->next;while(p!=NULL){if(sum[i]==(p->score[1]+p->score[2]+p->score[0])){printf("\t%d\t%s\t%s\t%d\t%d\t%d\n",p->id,p->name,p->sex,p->score[0],p->score[1],p->sco re[2]);break;}p=p->next;}}}void add(linklist head){linklist p,q;p=head;q=(linklist)malloc(sizeof(lode));printf("请输入要插入学生的序号:\n");fflush(stdin);scanf("%d",&q->id);fflush(stdin);printf("请输入学生的姓名:\n");scanf("%s",q->name);fflush(stdin);printf("请输入学生性别:\n");scanf("%s",q->sex);fflush(stdin);printf("请依次输入学生的三门课成绩:\n");scanf("%d",&q->score[0]);fflush(stdin);scanf("%d",&q->score[1]);fflush(stdin);scanf("%d",&q->score[2]);fflush(stdin);q->next=NULL;while(p->next!=NULL){p=p->next;}p->next=q;//p->next=NULL;}void del(linklist head){linklist p,temp;int j;p=head->next;temp=head;printf("请输入要删除学生记录的序号:\n");scanf("%d",&j);while(p!=NULL){if(p->id!=j){p=p->next;temp=temp->next;}else{temp->next=p->next;free(p);break;}}}void main(){int cmd;linklist head;head=(linklist)malloc(sizeof(lode));head->next=NULL;do{printf("\n\n |***************学生成绩管理程序***************|\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 主菜单|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");printf(" | |\n");printf(" | 请输入选择项目:|\n");printf(" | |\n");printf(" | 1、输入学生成绩|\n");printf(" | |\n");printf(" | 2、输出学生成绩|\n");printf(" | |\n");printf(" | 3、计算总成绩、平均成绩|\n");printf(" | |\n");printf(" | 4、求最高分、最低分|\n");printf(" | |\n");printf(" | 5、排序|\n");printf(" | |\n");printf(" | 6、增加记录|\n");printf(" | |\n");printf(" | 7、删除记录|\n");printf(" | |\n");printf(" | 0、退出系统|\n");printf(" | |\n");printf(" |----------------------------------------------|\n");scanf("%d",&cmd);switch(cmd){case 0:break; //退出系统case 1: input(head);break; //输入学生信息case 2: print(head);break; //输出学生信息case 3: avg(head);break; //求总成绩、平均数case 4: maxmin(head);break; //最高分case 5: rank(head);break; //排序case 6: add(head);break; //增加记录case 7: del(head);break; //删除记录default :printf("您输入错误!\n");}}while(cmd!=0);}因为是C语言版的要严格按照样子输入哦要不然就会出现不可预料的结果。
C语言大作业(成绩管理系统)
计算机科学学院计算机科学与应用系C程序设计报告成绩管理系统设计学生姓名:**学号:1004681082班级:计科102指导老师:**报告日期:2011--02-—161。
题目与要求1)问题提出本人计划编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息. 2)本系统涉及的知识点单链表、结构体、函数、循环、指针、选择3)功能要求(1)建立学生信息,每个学生的信息包括:学号、姓名、成绩。
(2)求出每个学生的总分和平均分。
(3)查找:根据学号、姓名、成绩、总分、平均分中任一项查询该生的基本信息. (4)排序:根据学号或总分将学生的信息按照一定的顺序进行排序。
(5)根据需要修改学生的基本信息。
(6)根据实际情况删除某生的信息.(7)根据实际情况插入某生的信息。
(8)输出.2.功能设计1)算法设计(1)利用switch语句设计如图所示的主菜单。
图1学生信息管理系统主菜单(2)选择1后,调用查找函数进入查找函数后利用switch 语句实现如图所示的查找子菜单.中每个选项调用一个函数(除选项10外).图2 查找子菜单(3)选项2后, 调用排序函数arrange ,进入查找函数后利用switch 语句实现如图所示的查找子菜单。
图3 排序子菜单(4)选择3后,调用修改函数correct ,修改某个学生的信息.(5)选择4后,调用删除函数del ,根据需要删除某个学生的信息。
(6)选择5后,调用插入函数insert ,根据需要插入某个学生的信息。
(7)选择6后,调用输出函数output ,将每个学生的信息全部输出。
(8)选择7后,退出学生信息管理系统。
(9)根据所选菜单编号编写相应代码。
(a)函数welcome :欢迎用户使用。
(b )函数about:简要介绍本程序.(c )函数create:创建单链表,采用循环输入的方式输入学生的基本信息。
(d )函数SnoSearch :根据学号查找,输出该生的基本信息。
c语言大作业--学生管理系统
#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>#define N 100struct student{char name[10];int num;char sex[10];float math;float yingyu;float zhengzhi;float ywen;float aver;float sum;}stu;void menu(){system("cls");printf(" * 欢迎使用学生成绩管理系统* \n");printf(" * ======================= * \n"); printf(" * 请选择相应的功能: * \n");printf(" * 1.成绩录入* \n");printf(" * 2.查询成绩* \n");printf(" * 3.修改成绩* \n");printf(" * 4.插入成绩* \n");printf(" * 5.报表输出* \n");printf(" * 6.删除操作* \n");printf(" * 0.退出系统* \n" );printf(" * ======================= * \n"); printf(" \n\n\n\n\n\n\n\n\n * * * * \n"); }//成绩录入void input(){system("cls");FILE *fp;student xs; /*定义一个结构体变量来装从文件中读出来的数据*/int c=1;if((fp=fopen("student.dat","ab"))==NULL){printf("can't open file!\n");exit(0);}printf("\n 成绩录入");printf("\n****************************************************");while(c++) /*中间加油break,可使循环中断*/{printf("\n 请输入您的姓名(姓名为end结束):");scanf("%s",);if(strcmp(,"end")==0) break;/*判断姓名是否为end,用字符串判断*/printf("\n 请输入学号:");scanf("%d",&xs.num);printf("\n 性别:");scanf("%s",&xs.sex);printf("\n 请输入数学的成绩:");scanf("%f",&xs.math);printf("\n 请输入英语的成绩:");scanf("%f",&xs.yingyu);printf("\n 请输入政治的成绩:");scanf("%f",&xs.zhengzhi);printf("\n 请输入语文的成绩:");scanf("%f",&xs.ywen);xs.aver=0;/*给平均分变量赋初值*/xs.aver=(xs.math+xs.yingyu+xs.zhengzhi+xs.ywen)/4;xs.sum=0;xs.sum=xs.math+xs.yingyu+xs.zhengzhi+xs.ywen;fwrite(&xs,sizeof(stu),1,fp); //将成绩信息写入文件system("cls");}fclose(fp);}void xingming(){FILE *fp;student xs;char name[10];printf("\n 输入要查学生的姓名: ");scanf("%s",name);if((fp=fopen("student.dat","rb"))==NULL){printf("can't open file!\n");exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(strcmp(,name)==0)/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/{printf("\n 学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","数学","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d%6s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex, xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);break;}}if(feof(fp))printf("\n 查找失败"); /*学生不存在*/fclose(fp);}void xuehao(){FILE *fp;student xs;int num;printf("\n 输入要查学生的学号: ");scanf("%d",&num);if((fp=fopen("student.dat","rb"))==NULL){printf("can't open file!\n");exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/{printf("\n 学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","数学","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d%6s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex,xs .math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);break;}}if(feof(fp)) printf("\n 查找失败");fclose(fp);}//查询void search(){char ch1;system("cls");printf(" 请输入按何种方式查询:\n");printf("\n 1-姓名,2-学号:");ch1=getchar();/*用字符接收*/switch(ch1)/*判断*/case '1':xingming();break;case '2':xuehao();break;}printf("\n 按任意键返回主菜单");getch();/*让屏幕停留同时按任意键返回*/}//修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;void modi(){student xs;FILE *fp;char name[10];system("cls");printf("\n 输入要修改的学生的姓名: ");scanf("%s",name);if((fp=fopen("student.dat","rb+"))==NULL){printf("can't open file!\n");exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(strcmp(,name)==0)/*判断输入要修改的姓名是否存在*/{printf(" 修改前学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","数学","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d %6s %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex,xs.math,xs.y ingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);printf("\n 请输入该生的数学成绩:");scanf("%f",&xs.math);printf("\n 英语成绩:");scanf("%f",&xs.yingyu);printf("\n 政治成绩:");scanf("%f",&xs.zhengzhi);printf("\n 语文成绩:");scanf("%f",&xs.ywen);xs.aver=(xs.math +xs.yingyu +xs.zhengzhi +xs.ywen)/4;xs.sum=xs.math +xs.yingyu +xs.zhengzhi +xs.ywen;break;}}if(!feof(fp)){printf(" \n 修改后的学生的信息如下:\n");printf("\n %10s %6s %6s %6s %6s %6s %6s %6s %6s\n","姓名","学号","性别","数学","英语","政治","语文","平均成绩","总成绩");printf("\n %10s %6d %6s %6.2f %6.2f %6.2f %6.2f %6.2f\n",,xs.num,xs.sex,xs.math,xs.y ingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);fseek(fp,sizeof(stu),1);/*负号表示后退,1表示文件当前位置*/fwrite(&xs,sizeof(stu),1,fp);/*再写入,同时把要修改的那个覆盖掉*/}elseprintf("\n 学生不存在,修改失败!!");fclose(fp);printf("\n 按任意键返回主菜单");getch();}//插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。
C语言大作业(成绩管理系统)
计算机科学学院计算机科学与应用系C程序设计报告成绩管理系统设计学生姓名:* *学号:**********班级:计科102指导老师:* *报告日期:2011--02--161.题目与要求1)问题提出本人计划编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。
2)本系统涉及的知识点单链表、结构体、函数、循环、指针、选择3)功能要求(1)建立学生信息,每个学生的信息包括:学号、姓名、成绩。
(2)求出每个学生的总分和平均分。
(3)查找:根据学号、姓名、成绩、总分、平均分中任一项查询该生的基本信息。
(4)排序:根据学号或总分将学生的信息按照一定的顺序进行排序。
(5)根据需要修改学生的基本信息。
(6)根据实际情况删除某生的信息。
(7)根据实际情况插入某生的信息。
(8)输出。
2.功能设计1)算法设计(1)利用switch语句设计如图所示的主菜单。
图1 学生信息管理系统主菜单(2)选择1后,调用查找函数search,进入查找函数后利用switch语句实现如图所示的查找子菜单。
该菜单中每个选项调用一个函数(除选项10外)。
图2 查找子菜单(3)选项2后,调用排序函数arrange,进入查找函数后利用switch语句实现如图所示的查找子菜单。
该菜单中每个每个选项调用一个函数(除3外)。
图3 排序子菜单(4)选择3后,调用修改函数correct,修改某个学生的信息。
(5)选择4后,调用删除函数del,根据需要删除某个学生的信息。
(6)选择5后,调用插入函数insert,根据需要插入某个学生的信息。
(7)选择6后,调用输出函数output,将每个学生的信息全部输出。
(8)选择7后,退出学生信息管理系统。
(9)根据所选菜单编号编写相应代码。
(a)函数welcome:欢迎用户使用。
(b)函数about: 简要介绍本程序。
(c)函数create:创建单链表,采用循环输入的方式输入学生的基本信息。
(d)函数SnoSearch:根据学号查找,输出该生的基本信息。
学生成绩管理系统C大作业
数据库设计
数据库类型:选择合适的关系型数据库,如MySQL、Oracle等 数据库表设计:根据系统需求设计数据表,包括学生信息表、成绩表等 数据字段设计:根据业务需求确定每个数据表的字段,如学号、姓名、成绩等 索引优化:为常用查询字段建立索引,提高查询效率
界面设计
主界面:显示系统的主要功能 选项,如成绩录入、查询、修 改等
有效途径
项目旨在开发一 个高效、准确、 易用的学生成绩 管理系统,以满
足实际需求
项目目标
提高学生的学 习成绩和综合
素质
减轻教师的工 作负担,提高
工作效率
实现学生成绩 的信息化、数
字化管理
为学校和学生 家长提供及时、 准确的学生成
绩信息
项目意义
提高学校管理效率
促进教师与学生之间的交流
添加标题
添加标题
系统维护与升级
系统维护:定期检查系统运行状况,修复潜在问题,保证系统稳定运行 数据备份:定期备份系统数据,防止数据丢失,确保系统数据安全 系统升级:根据需求和技术发展,对系统进行升级和优化,提高系统性能和功能 故障处理:及时响应和处理系统故障,保障系统正常运行
系统故障处理与应急预案
系统故障分类:硬件故障、软件故 障、网络故障等
遇到问题:在实现过程中遇到了一些问题,如数据冲突、内存泄漏等,但通过团队协作和查 阅资料得以解决
收获经验:通过本次项目实践,提高了编程能力和团队协作能力,对C语言和文件操作有了 更深入的理解
项目成果评价与反思
项目目标达成情 况:详细介绍项 目是否达到预期 目标,包括功能、 性能等方面。
技术实现评价: 对项目中所采用 的技术进行评价, 包括技术选型、 实现难度、效果 等方面。
c语言大作业学生管理系统
c语言大作业学生管理系统随着信息化的快速发展,计算机技术已经深入到各个领域。
在教育领域中,学生管理系统是学校管理学生信息的重要工具。
本次大作业将以“c语言大作业学生管理系统”为题,介绍如何使用c语言开发一个简单的学生管理系统。
一、需求分析学生管理系统需要实现以下功能:1、添加学生信息2、查询学生信息3、修改学生信息4、删除学生信息5、显示所有学生信息二、设计1、定义数据结构为了存储学生信息,我们可以定义一个结构体,包含学生的姓名、学号、性别、年龄等信息。
cinclude <stdio.h>include <stdlib.h>include <string.h>typedef struct {char name;char id;char gender;int age;Student;2、定义函数为了实现学生管理系统的各个功能,我们可以定义以下函数:1、add_student():添加学生信息2、query_student():查询学生信息3、modify_student():修改学生信息4、delete_student():删除学生信息5、display_students():显示所有学生信息三、实现下面是一个简单的实现示例:cinclude <stdio.h>include <stdlib.h>include <string.h>typedef struct {char name;char id;char gender;int age;Student;void add_student(Student *students, int *num_students) { Student student;printf("Enter name: ");scanf("%s", );printf("Enter ID: ");scanf("%s", student.id);printf("Enter gender: ");scanf("%s", student.gender);printf("Enter age: ");scanf("%d", &student.age);students[*num_students] = student;(*num_students)++;printf("Student added successfully.C语言学生信息管理系统实验报告C语言学生信息管理系统实验报告一、实验目的本实验旨在通过使用C语言编写学生信息管理系统,提升我们的编程技能和系统设计能力。
学生成绩管理系统C语言(附完整源代码)
学生成绩管理系统C语言(附完整源代码)学生成绩管理系统C语言(附完整源代码)课程设计报告学生成绩管理系统院系:专业:班级:完成日期: 2009年1月03日设计题目:学生成绩管理系统目录1、题目描述2、算法设计/设计思想3、结构框图、各模块的功能描述4、主体思想:5、程序的,,,流程图6、源代码1.题目描述设计一个简单的学生成绩管理系统,要求有简单的界面,程序段要分清模块,该程序应该:(1)输入学生成绩,求总分,平均分,以及排序。
(2)查询学生单科成绩,总分和平均成绩;(3)添加、修改学生成绩具有下列功能:(4)实现保存与查看功能2.算法设计/设计思想利用二维数组——定义stu[][]存储学生学号、各科成绩,总分,平均分,名次,利用文件来存储,读取数据。
详细合作是::负责inputx(),print1(),input();:卖力文件的储备和读取,main(),System(),Idea()和各挪用函数之间的连;:卖力find1(),find2(),find3(),find31(),Find();:负责del(),add(),change1(),Change();前期调试由小组配合卖力。
3.结构框图、各模块的功能描述3.1建立成就表3.1.1 input()功用是输退学生的信息,便于当前的查询、欣赏。
3.2增加3.2.1 add( )功用是向inputy()增加新的内容。
3.3.2 chance( )对单科成绩进行修改。
3.3查询3.3.1可根据学号,科目,名次,进行查询。
3.3.2查询内容包孕:该学生的各课成就、、均匀分。
3.4删除3.4.1能够输退学号删除一逻辑学生的一课成就。
3.5浏览成绩单3.5.1通过此print1()可以查看所有学生的各课成绩、总分、平均分和名次。
3.6文件()3.6.1保存以上所输入的信息以达到既是关闭窗口信息也不会丢失信息的目的。
3.6.2随时打开,修改文件。
3.7.退出功用是退出主菜单退出系意见评述功能菜单统输入增加及改查找功用退出功用菜单成就功用查输排查找学学添修某某生生加改XXX某成成就绩科绩绩绩成就按按按名学科次号目查查查找找找四、主体思想:1、斟酌到此步伐量大代码多,以是用函数挪用,分几小我去完成。
c语言成绩管理系统源代码+流程图
#include<stdio.h>#include<string.h>#include<stdlib.h>void frist_print(){printf("\t\t********************************\n\n"); //欢迎信息printf("\t\t\t欢迎进入学生成绩系统\n");printf("\t\t\t\t\t\t\t\t 此程序合作完成由");printf("\n\t\t\t\t\t\t\t\t * * * * \n");printf("\t\t\t\t\t\t\t\t * * * * \n");printf("\t\t\t\t\t\t\t\t * * * \n");printf("\t\t\t\t\t\t\t\t * 王杨* \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * 李淼鑫* \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * 孙天顺* \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * * \n");printf("\t\t\t\t\t\t\t\t * \n");}//***************************************************************************************************************************************************************************** ******void menu(){printf("\n\t\t***********************************\n"); //管理菜单printf("\n\t\t==========1.录入学生成绩===========\n\t\t+\n");printf("\t\t==========2.显示学生成绩===========\n\t\t+\n");printf("\t\t==========3.查询学生成绩===========\n\t\t+\n");printf("\t\t==========4.添加学生成绩===========\n\t\t+\n");printf("\t\t==========5.修改学生成绩===========\n\t\t+\n");printf("\t\t==========6.删除学生成绩===========\n\t\t+\n");printf("\t\t==========7.清空页面===========\n\t\t+\n");printf("\t\t==========8.退出系统===========\n");printf("\n\t\t***********************************\n");printf("please choise 1--8:\t");putchar(10);}//************************************************************************************** *************************************************************************************** ******struct MM // 结构体定义变量{char num[20];char name[10];float sco,sco2,sco3,sco4;int many;}mm;//************************************************************************************** *************************************************************************************** ******void scanf_1() //第一次输入信息并保存在文件中{char ch;FILE *fp;if((fp=fopen("dd.dat","wb+"))==NULL){printf("cannot open file\n");exit(0);}do{printf("请输入学生的--编号:\t");getchar();gets(mm.num);printf("姓名:\t");gets();printf("总成绩:\t");scanf("%f",&mm.sco);printf("平时成绩:\t");scanf("%f",&mm.sco2);printf("作业成绩:\t");scanf("%f",&mm.sco3);printf("考试成绩:\t");scanf("%f",&mm.sco4);printf("学号:\t");scanf("%d",&mm.many);if(fwrite(&mm,sizeof(struct MM),1,fp)!=1){printf("file write error\n");exit(0);}printf("是否继续输入y or n ?\t");getchar();ch=getchar();}while(ch=='y'||ch=='Y');fclose(fp);}//************************************************************************************** *************************************************************************************** ******void find() //查询成绩的信息{ int a,b=0;char ch[20];FILE *fp;if((fp=fopen("dd.dat","rb"))==NULL){printf("cannot open file\n");exit(0);}printf("请输入要查询的成绩的方式\n\t1.编号2.姓名:\n\t请选择1 or 2 \t"); scanf("%d",&a);if(a==1){ getchar();printf("请输入学生的编号:\t");gets(ch);while(fread(&mm,sizeof(struct MM),1,fp)==1)if(strcmp(mm.num,ch)==0){b++;printf("编号\t姓名\t成绩\t\t学号\n");printf("%s\t%s\t%.3f\t\t%d\n",mm.num,,mm.sco,mm.many);}if(b==0) printf("对不起!没有找到相关信息:\n");}else if(a==2){ printf("请输入学生的姓名:\t");getchar();gets(ch);while(fread(&mm,sizeof(struct MM),1,fp)==1)if(strcmp(,ch)==0){b++;printf("编号\t姓名\t成绩\t\t学号\n");printf("%s\t%s\t%.3f\t\t%d\n",mm.num,,mm.sco,mm.many);}if(b==0) printf("input error!\n");}fclose(fp);}//************************************************************************************** *************************************************************************************** ******void scanf_2() //第二次输入信息并保存在文件中{char ch;FILE *fp;if((fp=fopen("dd.dat","ab"))==NULL){printf("cannot open file\n");exit(0);}do{printf("请输入要添加成绩的--编号:\t");getchar();gets(mm.num);printf("姓名:\t");gets();printf("成绩:\t");scanf("%f",&mm.sco);printf("学号:\t");scanf("%d",&mm.many);if(fwrite(&mm,sizeof(struct MM),1,fp)!=1){printf("file write error\n");exit(0);}printf("是否继续输入y or n ?\t");getchar();ch=getchar();}while(ch=='y'||ch=='Y');fclose(fp);}//************************************************************************************** *************************************************************************************** ******void print() //输出文档中的信息{FILE *fp;if((fp=fopen("dd.dat","rb"))==NULL){printf("cannot open file\n");return ;}printf("编号\t姓名\t成绩\t\t学号\n");while(fread(&mm,sizeof(struct MM),1,fp)==1)printf("%s\t%s\t%.3f\t\t%d\n",mm.num,,mm.sco,mm.many);fclose(fp);}//************************************************************************************** *************************************************************************************** ******void change(){ //修改信息的函数,定义另一个文件,把要修改的信息放到该文件中struct XX //然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名{ //把原来的文件移除;char num[20];char name[10];float sco;int many;}xx;FILE *fp2;int a,b=0,c=0,n=0;char ch[20],ck;FILE *fp;do{if((fp=fopen("dd.dat","rb"))==NULL){printf("cannot open file\n");exit(0);}if((fp2=fopen("temp.dat","wb"))==NULL){printf("cannot open file\n");exit(0);}printf("请输入要修改成绩的编号:\t");scanf("%s",ch);n++;while(fread(&mm,sizeof(struct MM),1,fp)==1){if((strcmp(mm.num,ch)==0)){b++;//b的值如果一直没有改变说明,没有找到相关的信息;printf("编号\t姓名\t成绩\t\t学号\n");printf("%s\t%s\t%.3f\t\t%d\n",mm.num,,mm.sco,mm.many);getchar();printf("请输入成绩的新编号:\t");gets(xx.num);printf("请输入成绩的新姓名:\t");gets();printf("请输入成绩的新成绩:\t");scanf("%f",&xx.sco);printf("请输入成绩新学号:\t");scanf("%d",&xx.many);getchar();fwrite(&xx,sizeof(struct XX),1,fp2);}if(strcmp(mm.num,ch)!=0)fwrite(&mm,sizeof(struct MM),1,fp2);}if(b==0){printf("\t没有找到相关信息!\n");getchar();}rewind(fp); //如果要继续修改的话,要把标记返回到文件的开头;printf("是否继续修改?enter 'y' or 'n' \t");ck=getchar();fclose(fp);fclose(fp2);remove("dd.dat");rename("temp.dat","dd.dat");}while(ck=='y'||ck=='Y');if(b!=0)//如果没有找到相关信息就不能输出printf("\t修改成功:\n");}//************************************************************************************** *************************************************************************************** ******void del(){ //删除函数(和修改很相似) FILE *fp2;int a,b=0,c=0,n=0;char ch[20],ck;FILE *fp;do {if((fp=fopen("dd.dat","rb"))==NULL) //判断以读二进制的方式打开文件dd.dat,文件句柄保存到fp,fp是否为空如果为空,就是打开文件失败,否则打开文件成功{printf("cannot open file\n");exit(0);}if((fp2=fopen("temp.dat","wb"))==NULL){printf("cannot open file\n");exit(0);}printf("请输入要删除成绩的编号:\t");scanf("%s",ch);n++;while(fread(&mm,sizeof(struct MM),1,fp)==1) //fread()成功的返回值就是参数里读取的数据块个数,这里就是1; sizeof中是每一项的长度,{if((strcmp(mm.num,ch)==0)) //设这两个字符串为str1,str2,若str1==str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
c语言大作业——学生成绩管理系统v5.0
tudentID);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) 算每门课程的总分和平均分{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) 算每个学生的总分和平均分{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) 每个学生的总分由高到低排出名次表{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]);每个学生的总分由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]);学号由小到大排出名次表{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].studentName);core[j]); }}void Dicas (STU stu[],int n,int m) {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].studentName);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) 学号查询学生排名及其各科成绩{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:%10ld name:%s\n",stu[i].studentID,stu[i].studentName);core[j]); printf("all score: %d,order:%d\n",sum[i],c);}}void Searchbymane(STU stu[],int n,char name[],int m) core[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].studentName);core[j]); printf("all score: %d,order:%d\n",sum[i],c);}}void statistis (STU stu[],int n,int m) {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) { 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].studentName); for(j=0;j<m;j++){printf("score:%d\n",stu[i].score[j]);}printf("总分=%d\n平均分%f\n",sum[i],ave[i]);}}。
c语言大作业学生成绩管理系统
学年论文(学生成绩管理系统)题目:学生成绩管理系统作者:所在学院:专业年级:指导教师:职称:2015 年 5 月27 日目录引言 (2)第1章程序说明和基本功能 (3)1.1程序说明 (3)1.2整体功能 (3)1.3测试程序 (4)1.4课程设计的总体设计(包含的功能模块) (4)1.5各模块(函数)的功能介绍,设计描述 (4)1.6数组设计描述 (5)第2章系统总体设计 (5)2.1概要设计 (6)2.2主函数 (6)2.3输入成绩 (7)2.4查询成绩 (8)2.5保存功能 (9)2.6退出功能 (10)第3章实验结果 (10)3.1录入成绩 (10)3.2查询成绩 (13)3.3成绩保存 (14)第4章程序运行结果截图 (14)程序源代码 (16)总结 (24)参考文献 (20)基本信息引言管理信息系统正在向着网络化、智能化和集成化等趋势发展。
学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。
它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。
学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,查询,保存以及退出几方面的功能,是现实问题的迫切要求。
本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。
达到提高学生成绩管理效率的目的。
与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,成本低。
彻底改变了以前繁杂的管理模式,实现全面的、相对集中的、职能化的信息综合管理。
提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。
同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。
学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。
它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。
目前各个高校的基本情况是:每次考试结束,老师们都要统计大量的学生成绩,这些数据的归档、统计工作任务重,统计结束后往往错误百出。
C语言期末大作业(学生成绩管理系统)
C语言期末大作业(学生成绩管理系统)#include#includefind(charnum[][20],charname[][10],intmark[][10],intn,intm){i nti,j;chara[20];printf(\请输入需要查询的学号:\get(a);for(i=0;iprintf(\姓名:%\\n\for(j=0;jcount(intmark[][10],intn){inta[15]={0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0},i,j,g;printf(\请输入需统计的课程:\canf(\g-=1;for(i=0;i140&&mark[i][g]<=150)+2某(mark[i][g]>130&&mark[i][g]<=140)+3某(mark[i][g]>120&&mark[i][g]<=130)+4某(mark[i][g]>110&&mark[i][g]<=120)+5某(mark[i][g]>100&&mark[i][g]<=110)+6某(mark[i][g]>90&&mark[i][g]<=100)+7某(mark[i][g]>80&&mark[i][g]<=90)+8某(mark[i][g]>70&&mark[i][g]<=80)+9某(mark[i][g]>60&&mark[i][g]<=70)+10某(mark[i][g]>50&&mark[i][g]<=60)+11某(mark[i][g]>40&&mark[i][g]<=50)+12某(mark[i][g]>30&&mark[i][g]<=40)+13某(mark[i][g]>20&&mark[i][g]<=30)+14某(mark[i][g]>10&&mark[i][g]<=20)+15某(mark[i][g]>0&&mark[i][g]<=10);witch(j){cae1:a[0]++;break;cae2:a [1]++;break;cae3:a[2]++;break;cae4:a[3]++;break;cae5:a[4]++;brea k;cae6:a[5]++;break;cae7:a[6]++;break;cae8:a[7]++;break;cae9:a[8 ]++;break;cae10:a[9]++;break;cae11:a[10]++;break;cae12:a[11]++;b reak;cae13:a[12]++;break;cae14:a[13]++;break;cae15:a[14]++;break ;}}人人if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0)//没有100~150分的printf(\人\\n80~90:%d人\\n70~80:%d人\\n60~70:%d人\\n50~60:%d\\n40~50:%d人\\n30~40:%d人\\n20~30:%d人\\n10~20:%d 人\\n0~10:%d\\n\eleprintf(\人\\n130~140:%d人\\n120~130:%d人\\n110~120:%d\\n100~110:%d人\\n90~100:%d人\\n80~90:%d人\\n70~80:%d人\\n60~70:%d人\\n50~60:%d人人\\n40~50:%d人\\n30~40:%d人\\n20~30:%d人\\n10~20:%d人\\n0~10:%d\\n\}rank(charnum[][20],charname[][10],intmark[][10],intn,intm){i ntum[100],某[100],i,j,t,ma某;ma某=100某m;for(t=0;t=ma某)i++;eleif(um[i+j]>=ma某)j++;ele{if(um[i]>=um[i+j])j++;elei+=j,j=1;}}[t]=&um[i];printf (\第%d名是学号:%,姓名:%,总分:%d\\n\for(j=1;(i+j)人总}}main(){intn,m,i,j,k,mark[100][10];charnum[100][20],name[100] [10];}printf(\请输入学生个数:\canf(\printf(\请输入课程个数:\canf(\fluhall();for(i=0;iprintf(\请输入第%d个学生的姓名:\get(name[i]);for(j=0;jprintf(\请输入第%d个学生的第%d科成绩:\canf(\}fluhall();}while(1){}printf(\排序功能:请按1\\n统计功能:请按2\\n查询功能:请按3\\n退出:请按4\\n\canf(\ytem(\fluhall();witch(k){cae1:rank(num,name,mark,n,m) ;break;cae2:count(mark,n);break;cae3:find(num,name,mark,n,m);bre ak;cae4:return;}。
- 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 感谢您的支持与配合,我们会努力把内容做得更好!。