您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言学生成绩管理系统(含源代码)大连理工
电医1101彭广帅201181607-1-C语言程序设计作业姓名:******班级:******学号:********院系:大连理工大学电信学院电子邮箱:*************电医1101彭广帅201181607-2-一设计项目:学生成绩管理系统二总体设计:1程序设计组成框图:学生成绩管理系统输入学生成绩查看学生成绩及成绩排序通过学号查询学生成绩统计成绩信息通过学号修改学生成绩添加学生成绩通过学号删除学生成绩保存学生成绩退出程序2:模块功能说明:1输入功能:输入学生姓名学号及成绩。2查看功能:输出姓名学号及各科成绩。3查询功能:通过学号查询学生姓名及各科成绩。4统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。5修改功能:通过输入学号修改指定学生的错误信息。6添加功能:添加学生信息。7删除功能:通过输入学号输入指定学生信息。8保存功能:将学生信息保存。9退出系统。3:主要函数之间的调用关系及各自功能:主要函数的函数原型voidinputscore(void);voidsavescore(void);voidavergescore(void);voidmodifyscore(void);voidlookscore(void);voidsearchscore(void);voidstatistic(void);voidadd(void);voidmodify(void);voiddelscore(void);电医1101彭广帅201181607-3-voidmenu(void);i.在菜单界面输入1,调用函数inputscore()实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore()实现学生成绩按平均分高低排序输。出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算。iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。ix.在菜单界面输入9,退出成绩管理系统。开始输入指令1~9输入成绩查询成绩成绩统计修改成绩添加成绩删除成绩保存成绩显示成绩123456789退出电医1101彭广帅201181607-4-三程序运行效果截图1主菜单2输入成绩3查看成绩4查询成绩电医1101彭广帅201181607-5-5统计成绩6修改成绩7添加成绩8删除成绩电医1101彭广帅201181607-6-9保存成绩四个人总结整个程序主要运用了课本上的基础知识,并未有太大创新,通过for循环,循环输入学生成绩。在学生成绩排序中运用选择法,同时实现学生名次的确定。在删除指定学生成绩时,先确定信息存储位置即其在结构体数组中的序号,通过结构体变量的整体赋值将从指定位置以后的学生信息赋给前一个结构体变量,并将学生总数n减1,实现删除学生成绩信息。源代码#includestdio.h#includestring.h#includeprocess.h#includeconio.h#defineN30#defineM3typedefstructstudent{charnumber[10];charname[20];floatscore[M];floataver;}STU;STUstu[N];intn;voidinputscore(void);voidsavescore(void);voidavergescore(void);voidmodifyscore(void);voidlookscore(void);电医1101彭广帅201181607-7-voidsearchscore(void);voidstatistic(void);voidadd(void);voidmodify(void);voiddelscore(void);voidmenu(void);voidmain(){shortintflag=0;menu();do{flag=1;switch(getch()){case'1':inputscore();break;/*输入成绩*/case'2':lookscore();break;/*查看成绩*/case'3':searchscore();break;/*查找成绩*/case'4':statistic();break;/*成绩统计*/case'5':modify();break;/*修改成绩*/case'6':add();break;/*添加成绩*/case'7':delscore();break;/*删除成绩*/case'8':savescore();break;/*保存成绩*/case'9':exit(0);/*退出程序*/default:printf(输入有误\n);}printf(按任意键继续\n);getch();menu();}while(flag==1);}voidmenu(void){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);电医1101彭广帅201181607-8-printf(删除成绩-------------------------------------7\n);printf(保存成绩-------------------------------------8\n);printf(退出系统-------------------------------------9\n);printf(**********************************************\n);printf(请输入您的选择\n);}/***************输入各个同学的学生信息******************************/voidinputscore(void){inti,j;system(cls);printf(请输入学生总数:\n);scanf(%d,&n);printf(提示:*输入学号时请输入位数为8位的数字*\n);/*因二维表上下需对正故有此要求*/for(i=0;in;i++){printf(请输入学生%d的学号姓名:\n,i+1);scanf(%s%s,stu[i].number,stu[i].name);printf(请输入学生成绩:\n);printf(数学\t英语\t计算机\n);for(j=0;jM;j++)scanf(%f,&stu[i].score[j]);}printf(成功输入\n);}/*****************计算各个同学的平均分*****************************/voidavergescore(void){inti,j;for(i=0;in;i++){stu[i].aver=0;for(j=0;jM;j++){stu[i].aver+=stu[i].score[j];}stu[i].aver=stu[i].aver/M;}电医1101彭广帅201181607-9-}/************查看学生成绩及根据平均分对学生进行排序*********************/voidlookscore(void){inti,j,k;STUt;avergescore();system(cls);for(i=0;in-1;i++){for(k=i,j=i+1;jn;j++)if(stu[j].averstu[k].aver)k=j;if(k!=j){t=stu[k];stu[k]=stu[i];stu[i]=t;}}printf(名次\t学号\t\t姓名\t数学\t英语\t计算机\t平均分\n);for(i=0;in;i++){printf(%d\t%s\t%s\t,i+1,stu[i].number,stu[i].name);for(j=0;jM;j++)printf(%4.2f\t,stu[i].score[j]);printf(%4.2f,stu[i].aver);printf(\n);}}/*****************通过输入学号查找学生成绩***************************/voidsearchscore(void){chara[10];inti,j;system(cls);printf(请输入需查询的学生学号\n);scanf(%s,a);for(i=0;in;i++){if(strcmp(a,stu[i].number)==0){printf(名次\t学号\t\t姓名\t数学\t英语\t计算机\t平均分\n);printf(%d\t%s\t%s\t,i+1,stu[i].number,stu[i].name);for(j=0;jM;j++)printf(%4.2f\t,stu[i].score[j]);printf(%4.2f,stu[i].aver);printf(\n);break;/*找到该学生成绩信息后跳出for循电医1101彭广帅201181607-10-环*/}elseprintf(未找到该学生信息\n);}}/*******统计学生成绩信息,平均分及格率,优秀率,成绩方差****************/voidstatistic(void){STU*p=stu;inti,j;floatcount=0.0,sum=0.0;system(cls);for(i=0;in;i++){sum+=(p+i)-aver;}printf(该班级平均分为%4.2f\n,sum/n);/*平均分计算*/for(i=0;in;i++){if((p+i)-aver=60)count++;}printf(该班级及格率为%4.2f%%\n,count/n*100);/*及格率计算*/count=0.0;for(i=0;in;i++){if((p+i)-aver=90)count++;}printf(该班级优秀率为%4.2f%%\n,count/n*100);/*优秀率计算*/for(i=0;in;i++){for(j=0;jM;j++){sum=((p+i)-score[j]-(p+i)-aver)*((p+i)-score[j]-(p+i)-aver);}sum=sum/n;printf(学生%s的成绩方差为%4.2f\n,(p+i)-name,sum);/*方差计算*/}printf(平均分低于60的学生名单\n);for(i=0;in;i++){if(stu[i].aver60)printf(%s\n,stu[i].name);}/*统计不及格学生名单*/}/***************修改学生成绩***
本文标题:C语言学生成绩管理系统(含源代码)大连理工
链接地址:https://www.777doc.com/doc-5235927 .html