课程名称程序设计基础实验项目名称实验3学生管理系统V1.0实验时数7实验类型□操作性□验证性□设计性□综合性指导老师卢敏实验地点(包括机号)6号机房实验日期2015年12月7日学生姓名邓高峰班级网络15学号15同组成员无教师评阅(教师根据实际情况在两种成绩的评定方法中确定其一)等级制成绩:□优□良□中□及□不及格百分制成绩:(具体的教师批阅,教师可在符合的选项中勾选,同时根据具体情况补充其它评语,特别是必须指出实验过程存在的问题与不足之处。)□实验目的明确;□操作方法与步骤正确;□设计文稿(表格、程序、数据库、网页)符合要求;□界面美观;□布局合理;□程序结构合理;□算法正确;□语法、语义正确;□题解正确;□实验结果正确;□保存路径正确;□实验分析总结全面;□解析完整;□文字流畅;□实验报告规范;其他:评阅教师签名实验报告内容(不同类型的实验课对实验报告可有不同要求,各个课程的实验报告可以根据自己的学科特点做适当的调整,由任课教师确定填写的内容,学生进行勾选,具体内容用附页填写。)丽水学院计算机实验报告丽水学院计算机实验报告一、实验目的1.掌握数组的定义和初始化的方法;2.掌握排序、统计分析等常用算法;3.培养在程序中加注释的习惯;4.进一步掌握循环嵌套的应用;5.掌握C语言中定义函数的方法;6.掌握函数传值调用的方法;7.掌握数组作函数参数的使用方法;8.掌握排序、查找、统计分析等常用算法。二、实验环境硬件:Pentium以上的计算机。软件:WindowsXP操作系统、VisualC++6.0和C-Free等集成环境。三、实验内容和结果1.学生管理系统V1.0。程序1学生成绩统计。从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:□实验目的和要求□实验内容和原理□主要仪器设备□操作方法与实验步骤□实验数据记录和处理□实验结果与分析□讨论、心得(1)统计不及格人数并打印不及格学生名单;(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;(3)统计各分数段的学生人数及所占的百分比。程序1源程序:#includestdio.h#defineN30intmain(){intnum[N],score[N],i,j=0,k,count=0,sum=0,t=0,stu[N]={0};floatave=0;for(i=0;iN;i++){printf(第%d个同学的成绩:,i+1);scanf(%d%d,&num[i],&score[i]);sum=sum+score[i];if(num[i]0)break;}k=i;ave=sum/k;for(i=0;ik;i++){if(score[i]60){count++;printf(不及格学生学号:%d分数:%d\n,num[i],score[i]);}}printf(不及格人数为:%3d\n,count);for(i=0;ik;i++){if(score[i]ave){t++;printf(高于平均分学生学号%d分数%d\n,num[i],score[i]);}}printf(高于平均分人数:%d\n,t);for(i=0;ik;i++){if(score[i]60){j=0;}else{j=((int)score[i]-50)/10;}stu[j]++;}for(j=0;j1;j++)printf(0到59分数段人数比例:%.2f\n,(float)stu[j]/k);for(j=1;j5;j++)printf(%d到%d分数段人数比例:%.2f\n,50+10*j,59+10*j,(float)stu[j]/k);for(j=5;j6;j++)printf(100分人数比例:%.2f\n,(float)stu[j]/k);return0;}程序1运行结果:思考题:在编程实现对数据的统计任务时,需要注意什么问题?注意输入输出格式,以及对班级人数的统计。程序2成绩排名次。某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求:(1)计算每个学生的总分和平均分;(2)按总分成绩由高到低排出成绩的名次;(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。程序2源程序:#includestdio.h#defineM3#defineN30voidInput(longnum[],intscore[][M],intn);voidGetSumAver(intscore[][M],intn,intsum[],floataver[]);voidSort(longnum[],intscore[][M],intn,intsum[],floataver[]);voidPrint(longnum[],intscore[][M],intn,intsum[],floataver[]);intSearch(longnum[],intn,longx);intmain(){intn,i,j,k,r,score[N][M],sum[N];longnum[N],x;floataver[N];printf(期末考试的学生人数(不超过30人):);scanf(%d,&n);Input(num,score,n);GetSumAver(score,n,sum,aver);Sort(num,score,n,sum,aver);Print(num,score,n,sum,aver);printf(查询的考生的学号:);scanf(%d,&x);i=Search(num,n,x);if(i!=-1)printf(学号:%d\n排名:第%d\n数学:%d分\n英语:%d分\n物理:%d分\n,num[i],i+1,score[i][0],score[i][1],score[i][2]);elseprintf(此人未参加此次考试!\n);}voidInput(longnum[],intscore[][M],intn){inti,j;for(i=0;in;i++){printf(请输入第%d个学生的学号及数学、英语和物理考试的成绩:\n,i+1);scanf(%ld,&num[i]);for(j=0;jM;j++)scanf(%d,&score[i][j]);}}voidGetSumAver(intscore[][M],intn,intsum[],floataver[]){inti,j;for(i=0;in;i++){sum[i]=0;for(j=0;jM;j++)sum[i]=sum[i]+score[i][j];aver[i]=(float)sum[i]/M;}}voidSort(longnum[],intscore[][M],intn,intsum[],floataver[]){intt,t1,i,j,k,m;longt2;floatt3;for(i=0;in-1;i++){k=i;for(j=i+1;jn;j++){if(sum[j]sum[i]){k=j;for(m=0;mM;m++){t=score[k][m];score[k][m]=score[i][m];score[i][m]=t;}t1=sum[k];sum[k]=sum[i];sum[i]=t1;t2=num[k];num[k]=num[i];num[i]=t2;t3=aver[k];aver[k]=aver[i];aver[i]=t3;}}}}voidPrint(longnum[],intscore[][M],intn,intsum[],floataver[]){inti,j;printf(\n----------------------------------------------------------------------\n);printf(学生期末考试三门科目成绩汇总(按总分排名)\n);printf(┏━━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━┓\n);printf(┃学号┃数学┃英语┃物理┃总分┃平均分┃名次┃\n);printf(┣━━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━┫\n);for(i=0;in;i++){printf(┃%6d┃,num[i]);for(j=0;jM;j++){printf(%3d┃,score[i][j]);}if(aver[i]==100.0)printf(%3d┃100┃1┃\n,sum[i]);elseprintf(%3d┃%4.1f┃%d┃\n,sum[i],aver[i],i+1);if(in-1)printf(┣━━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━┫\n);}printf(┗━━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━┛\n);printf(\n----------------------------------------------------------------------\n);}//在学号数组中顺序查找学生的学号intSearch(longnum[],intn,longx){inti;for(i=0;in;i++)if(num[i]==x)return(i);return(-1);}}程序2运行结果:思考题:(1)如果增加一个要求:要求按照学生的学号由小到大对学号、成绩等信息进行排序,那么程序如何修改呢?……(2)如果要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的操作,那么程序如何修改呢?……四、实验心得函数模功能将程序开发模块化,减少了代码的长度,有利于从事代码开发工作的人,以后尽量使用函数写代码。