c语言大作业——学生成绩管理系统v5.0

合集下载

c语言大作业——学生成绩管理系统v5.0

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语言大作业-学生成绩管理系统v50

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语言大作业(成绩管理系统)

C语言大作业(成绩管理系统)

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://pan.baidu./s/1dFIFndn 密码: sfmr。

学生成绩管理系统c语言作业

学生成绩管理系统c语言作业

学生成绩管理系统c语言作业
学生成绩管理系统是必不可少的学校教务管理之一,一个好的学生成绩管理系统能够准确客观反映学生的学习情况,为学校教务管理提供基础数据支持,但由于当前学生成绩管理系统功能复杂,维护和使用起来十分复杂,因此有必要开发一个以c语言为基础开发的学生成绩管理系统,具有简单、可靠、易于维护的特点。

首先,要开发一个c语言实现的学生成绩管理系统,要考虑的是算法设计和数据结构的设计,必须清楚的确定此系统的主要功能,以及系统中涉及的数据结构,其中数据结构的设计有助于提高学生成绩管理系统的效率,确保系统的可塑性和可靠性。

除此之外,还要考虑到学生成绩管理系统的界面设计,包括设计学生成绩管理系统的GUI,即图形用户界面,GUI可以提高系统的易用性和友好性,使用者可以更容易地操作和使用学生成绩管理系统,以及更加简便地获取想要的信息。

其次,在开发学生成绩管理系统的过程中,还要考虑到系统的安全性,以确保系统中存储的重要信息不会丢失或被篡改,即要考虑到学生成绩管理系统的安全模块,如登录验证、用户授权等,同时也要实现使用者之间的权限控制,以保证用户只能访问他们被授予的信息。

最后,还要考虑到学生成绩管理系统的维护,成绩管理系统经常会需要进行更新或修改,以满足用户需求的变化,因此总体的设计要考虑到系统的可维护性,使系统能够及时应对需求的变化。

总之,学生成绩管理系统的开发既是一项工程,也是一门艺术,
它的成功与否,关键要看设计者如何结合c语言、算法设计和数据结构设计,来实现学生成绩管理系统的功能,同时要注意系统的易用性和可维护性,以保证系统的安全性和可靠性。

c语言大作业 学生成绩管理系统

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语言代码(供参考)

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语言程序设计课程设计大作业-学生成绩管理系统

计算机科学学院计算机科学与应用系C程序设计报告成绩管理系统设计学生姓名:* *学号:1004681082班级:计科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语言程序设计课程大作业--成绩管理系统

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。

学生成绩管理系统C语言版

学生成绩管理系统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语言案例 学生成绩管理系统
C语言实习
课题:学生成绩管理系统 成员:
功能简介
1 增加新生 2 信息查询 3 求每个学生的平均成绩 4 输出每个学生平均成绩的排名情况 5 查看成绩统计
欢迎界面
使用说明
1 输入学生成绩 2 输出学生成绩 3查询学生成绩 4 修改学生成绩 5 查看成绩排序 6 查看成绩统计 7 保存数据 8 读取数据 9 退出系统
输入学生成绩
输入学生的学号,班级,姓名,专业,性别,计算机成绩名,班级,专业进行查询
求每个学生的平均成绩
直接到欢迎界面选择代码就可以
求学生的平均成绩排名
求各个学生平均成绩的排名情况
学生成绩统计
统计学生的各科成绩与平均成绩,此时不 排序
退出系统

C语言大作业(成绩管理系统)

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语言大作业--学生管理系统

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语言(附完整源代码)

学生成绩管理系统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语言程序设计课程设计大作业-学生成绩管理系统

推荐 C语言程序设计课程设计大作业-学生成绩管理系统

1.题目与要求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:根据学号查找,输出该生的基本信息。

(e)函数NameSearch:根据姓名查找,输出该生的基本信息。

(f)函数CYuYanSearch:根据C语言成绩成绩查找,输出该生的基本信息。

c语言大作业学生成绩管理系统

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语言期末大作业(学生成绩管理系统)

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//成绩管理系统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];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++){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].studentName);//以长整形打印用%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].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) //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:%10ld name:%s\n",stu[i].studentID,stu[i].studentName);//以长整形打印用%ld for(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].studentName);//以长整形打印用%ld for(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].studentName);for(j=0;j<m;j++){printf("score:%d\n",stu[i].score[j]);}printf("总分=%d\n平均分%f\n",sum[i],ave[i]);}}Welcome To Download !!!欢迎您的下载,资料仅供参考!。

相关文档
最新文档