C语言大型作业之学生综合测评系统

合集下载

学生综合测评系统C设计报告新编修订稿

学生综合测评系统C设计报告新编修订稿

学生综合测评系统C设计报告新编上海电力学院《高级程序设计C++》课程设计题目:学生综合测评系统院系:计算机科学与技术学院专业年级:计算机科学与技术学生姓名:学号:指导教师:2013年1月目录1.需求分析本系统旨在便于学校管理和查阅学生信息并计算学生的考试成绩和名次以及综合测评成绩和名次。

每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、高等数学、物理、英语三门单科成绩、、同学互评分、品德成绩、任课教师评分。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%, 10%, 10%, 20%o程序的基本功能:1.学生信息处理:(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

(2)插入(修改)同学信息。

(3)删除同学信息。

(4)浏览学生信息。

2.学生数据处理:(1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次。

(2)学生测评数据输入并计算综合测评总分及名次。

(3)学生数据管理。

(4)学生数据查询。

3.学生综合信息输出2.概要设计根据需求分析中的描述,知道需要一个帐户类型,由于基本数据类型无法实现将一个用户的信息绑定在一起,所以需要定义一个抽象数据类型帐户,命名为Student,其定义如下:class Studentpublic:int num;um>>stud[i]. name»stud[iZ. sex»studLiJ. address»stud[i]. phone»stud[i.. english»stud[i]. math»stud[i]. physics»stud[i]. grade 1»stud[i]. grade2»stud[i]. grade3;i++;)while(!());0;cout<〈〃读取成功Vendl;}以上为读取文件中学生信息的函数,当信息成功读取后才可进行修改或添加或删除,所以在许多外部函数里面都必须要有读取函数的功能为前提。

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语言大作业——学生成绩管理系统v5.0之欧阳索引创编

c语言大作业——学生成绩管理系统v5.0之欧阳索引创编

//成绩管理系统v1.0欧阳家百(2021.03.07)#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].student Name,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].student Name,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:%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].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 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]);}}。

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

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

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语言程序设计课题名称学生综合测评系统专业班级学号姓名指导教师任务书下达日期年月日任务完成日期年月日目录一、设计内容与设计要求 ...........................................................................................................................学生综合测评系统 .......................................................................................................................................一、问题描述: ...................................................................................................................................二、功能描述: ...................................................................................................................................三、算法提示: ...................................................................................................................................四、测试数据: ...................................................................................................................................二.设计要求: ...........................................................................................................................................三.进度安排 ...............................................................................................................................................四.总体设计方案 .......................................................................................................................................1.总体流程图 ........................................................................................................................................2.程序主要函数 ...................................................................................................................................1.void inti()初始化函数............................................................................................................2.welcome() 函数 ......................................................................................................................3.void InputInfo() 录入学生信息.............................................................................................4.void DeleteInfo() 删除信息...................................................................................................5.void paiming1() void paiming2() 成绩排名 ...................................................................6.void ViewAll() 浏览全部学生信息........................................................................................7.void clean() 清除所有信息....................................................................................................8. void PaimingView() 查询排名 ............................................................................................3.程序其他函数 ....................................................................................................................................A.信息存盘(结构体) .....................................................................................................................B.读取信息(结构体) .....................................................................................................................C.信息存盘(整型) .........................................................................................................................D.读取信息(整型) .........................................................................................................................E.学号检索....................................................................................................................................五.程序源代码 ...........................................................................................................................................六.收获及体会..............................................................................................................................................七.参考文献 ..................................................................................................................................................计算机与通信学院课程设计评分表 ...........................................................................................................课程名称:《C语言程序设计》 .....................................................................................................一、设计内容与设计要求学生综合测评系统一、问题描述:每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

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]);}}。

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

C语言大型作业之学生综合测评系统课题名称:学生综合测评系统时间: 2009年5月5日学生综合测评系统一、需求分析1.1、系统概述:学生综合测评系统试运行与windows系统下的应用软件。

主要用于对学生的学号、姓名、所在院系、就读专业、年级、各科成绩、综合测评分等基本成绩进行增、减、删、改、查等操作。

并且还可对使用该系统的用户进行登录名和密码的管理。

系统给用户提供一个简单的人机界面,使用户可以根据提示输入操作项调用系统提供的管理功能。

该系统同时具有安全验证的功能,根据用户的级别其拥有的权限有所不同。

由系统判断用户名和密码是否符合,从而验证该用户能否登录,用户登录后,系统会判断权限从而告之用户可以使用系统的那些功能。

用户分为教师和学生。

、功能需求描述学生综合测评系统为学校的教师和学生提供一个对学生基本信息和学科成绩进行管理和查看平台,给用户提供简单友好的用户接口,功能需求如下:1、用户登录:根据用户输入的用户名和密码判断是否允许该用户使用系统,并且当用户登录以后根据用户权限判断用户可以使用哪些功能,学生只有浏览等的权限,而不能进行实质性改动。

2、提供系统主控平台:系统主控平台也应根据用户权限不同而有所区别,只列出在用户权限范围内的功能提供用户选择。

系统主控平台包括输入功能选项。

调用相应程序两大需求,教师与学生对应的系统主控平台是不同的,所能进行的操作也不同。

3、创建学生基本信息:用户各根据提示输入学生的学号、姓名、各科成绩等其他基本信息。

可一次性输入多条件的成绩信息记录,系统将学生基本信息记录存储在系统磁盘的文件中,以便进行管理、查找和备份。

4、增加学生信息:可在原有学生成绩信息文件的基础之上增加新的学生基本信息、记录并继续保存只磁盘;并且将增加后的文件存储状况显示给用户,在增加新学生记录的过程当中,系统提示用户输入各科成绩,最终总分要求系统自动计算获得并同样存储到文件相应的记录中。

5、删除学生信息:提示用户要进行删除的造作学号,如果在文件中又该学生的信息存在,提示是否删除该学生的一切基本信息,之后提示是否继续进行删除操作。

6、修改学生基本信息:提示用户输入要进行修改操作的学号,如果在文件中又该学生的信息,则将提示输入该学号对应学生的姓名。

系统会将学生的基本信息显示出来,将修改的相应信息填到对应的位置,并将结果保存到文件中。

该部分需求也需要提示用户是否要继续进行修改操作,修改操作中的总分也需要系统根据修改后的成绩自动计算,并连同用户输入的其他修改项一起存入磁盘文件中。

7、查询学生基本信息:分为根据姓名查询和根据学号查询两个具体需求。

分别提示用户输入要查询学生的学号或姓名;如果在磁盘中有对应学生的信息,则提示用户已找到,并显示该学生的基本信息,在该功能中也需要提示用户是否要继续查找,如果不继续查找则返回主界面。

8、学生成绩排行浏览:该项需求要求根据学生中分项进行排行,以便用户对学生成绩状况又较直观、方便的了解。

由于磁盘存储的学生成绩信息文件可能有多个。

所以,提示用户要浏览具体文件名。

然后,根据总分从高到低进行排序,显示学号、姓名、各科成绩及总成绩。

9、教师用户管理:教师对用户的管理要进行用户的创建、增加、删除、修改和浏览。

教师创建的用户存储在名为——的磁盘文件中,每当有用户登录系统时,系统都会根据该文件的用户名和密码进行核实判断,用户才能够顺利登录。

教师还具有增加新用户的功能,增加用户及密码、权限等,创建的新用户信息也被存储到——文件中,当某些游湖不再使用该系统是还可以进行删除操作,并且教师具有修改用户权限的功能,学生和教师级用户对系统的权限不一样的。

二、总体设计根据需求分析及程序运行过程、各个功能模块、显示、与用户交流平台、数据处理几方面进行总体设计。

本过程中,我们把自己当作用户,反复试验,逐步细化,用比较概括抽象的方式确定系统如何完成任务,也就是我们假定自己为用户来设计程序。

2.1开发与设计的总体思想本系统主要应用结构化设计思想实现学生综合测评管理系统的增、删、改、查等典型管理功能。

各主要模块的数据均存储在文件中,部分数据也为临时计算出来,因此和许多其他程序一样包括文件的读、写操作。

在软件开发过程中应用了高级语言程序设计中的基本控制结构,如选择、循环、顺序、转到等结构。

参考其他资料,在本系统的开发过程中应用了软件工程的基本理论。

系统的设计方法是结构化设计方法,采用C语言进行开发。

依据需求分析结果,学生综合测评管理系统分为个模块:教师入口模块、学生入口模块、输出控制模块、综合素质管理模块等,其中综合素质管理模块又分为思想道德、专业、身体、能力等方面,同时包括对这些成绩的存储、增、删、查、改等操作。

系统模块结构如图所示:提示用户输入教师用户名和密码,调用文件中存储的用户信息进行校验,只有当用户名和密码相一致时,才允许用户进入该系统并给以相关操作权。

教师可以查看已有记录的所有学生的全部信息,并可以选择某一个学生细看,可以增、改任一细节,学生则不可以(学生只能查看到自己的情况,并且不能修改)。

对应图如下:在程序运行后,会有一个选择,如果选择的是学生入口,则也相应提示输入用户名及密码,根据学生相关的权限,调用相关功能函数,学生的权限很有限,只能查看到自己的信息,不能查看别人信息,并且也不能作任何修改。

实际上这些权限基本只对教师用户才开放,根据《信息工程学院学生工作手册》规定,学生综合测评分四个大的方面:思想道德素质、专业文化素质、身体健康素质、能力素质。

每个方面也有相关细节。

教师用户可以管理这些数据,而这些数据的集合为学生的综合测评的各项成绩,教师可以查看任何学生的相关成绩,并且可以作增、删、改等操作。

而这些数据修改之后由程序自动存储到相关文件。

这部分也是本系统设计的一个重要的组成部分,关系到用户是否可以方便正确地使用本系统,当然还有界面控制是否美观等。

为此,本部分较多地运用了提示用户选择、使用的语句及选项,同时在不惜用多代码来控制界面的美观。

系统流程描述1.为了方便用户使用该系统,用前会有使用说明,以便用户用之前能对本系统有一定了解,特别设置了使用说明一项,用户登陆之前可以参考运用。

使用说明:按数字选择不同功能,进入学生或教师入口均需输入相应的用户名和密码。

教师用户可以对存储的学生信息进行查看、添加、是修改、删除等操作,而学生用户只能查看相关(自己的)信息,而不能进行添加、修改、删除等操作,但是可以向教师反馈自己的疑问和意见。

(一)综合测评内容及方法(1)思想道德素质(2)专业文化素质(3)身体素质(4)能力素质综合素质测评得分=思想道德素质+专业文化素质+身体素质+能力素质(二)综合素质测评分项评分要素及标准表一:思想道德素质评分标准分表思想道德素质成绩=基础分+加分项-减分项表二:专业文化素质(假定已计算出该项成绩,则直接输入结果即可)表三:身体素质评分要素及标准表四:能力素质(此项依据学生实际情况,由教师给学生相应成绩加分,并注明加分事项原因。

)(三)设计运行界面选择1 :输入正确进入后:选择1:(四)实编程序运行后截图:运行登陆界面登录前:学生登录界面:教师登陆界面:登陆后:修改相关细则分值:修改后运行结果:在学生综合测评管理系统中,教师对学生的一系列操作,有一个载体,这个载体为学生各素质每一方面各项指标成绩均存入一结构体中,设定统计学生数为100.把存储每个素质方面的结构体数组的大小都设为100,对这一系列数组进行操作。

分别用几个不同的结构体数组存放每个学生的学号、姓名及各项不同方面的素质成绩信息。

//结构体类型思想素质方面struct sxs{float sxz; //思想素质总分float sxf1; //细则1float sxf2; // (2)float sxf3; // (3)float sxf4; // (4)float sxf5; // (5)float sxf6; // (6)}sxf[60]={0};//专业文化素质float zy[100]={0};//结构体类型身体素质struct shenti{float tyz; //体育总分float tyf1; //身体健康基本分float tyf2; //体育基本分float tyf3; //能力素质加分项}stust[100];//能力加分项char fj[100][50];float fjz[100];三.详细设计基于系统需求分析与系统总体设计的结论,本系统采用C语言实现各个子功能,下面按照先前的模块划分来分别阐述系统的详细设计和实现过程。

在本系统中,教师用户登陆时的密码默认值111111,作为试用系统没有设置储存密码与修改密码的机制,当用户成功登陆时,会进入相应的操作窗口并对应有相应的操作权限。

其中,在请求用户输入密码过程中为防止别人盗取密码,采用了回显*来表示的方法。

以下是具体代码:头文件:#include"del.h"//学生资料删除#include"disp.h"//学生资料浏览#include"modify.h"//学生资料修改#include"query.h"//学生资料查找#include"addfile.h"//学生资料增加void good();void Adminl(){char name[10];char pass[7];int success=0;char relogin;again:printf("输入姓名:\n");scanf("%s",name);printf("输入密码(六位数):\n");scanf("%s",pass);if (strcmp(name," teacher ")==0&&strcmp(pass,"111111")==0){printf("恭喜你登陆成功\n");good(); //调用下面管理员操作列表函数success=1;}if (success==0){getchar();printf("你的登陆账号或密码错误:退出或重新输入(N/Y)\n");scanf("%c",&relogin);if ((relogin=='y')||(relogin=='Y')){printf("请再次输入账号密码:\n");goto again;}else{printf("系统退出\n");getch();exit(0);}}}void good() //管理员操作菜单列表{int choice;printf("增加成员选择:\n");printf("修改成员选择:\n");printf("删除成员选择:\n");printf("浏览成员选择:\n");printf("查找成员选择:\n");printf("输入相应的功能号:\n");ch:scanf("%d",&choice);if (choice<=5&&choice>=1){switch(choice){case 1: addfile();//增加成员break;case 2: del();//删除成员break;case 3: modify();//修改成员包括改其权限,密码资料。

相关文档
最新文档