1、C语言综合实验报告模板附调试代码学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 实验项目: 学生成绩管理系统一、实验目的和要求目的:1.掌握三种程序基本结构;2.熟练使用数组、用户自定义函数等相关知识进行程序设计; 3.熟悉结构化程序设计语言思想编写程序代码; 4.理解和掌握C语言的语法以及三种基本程序结构的综合应用;5.熟悉排序、查找、统计分析等常用算法 6.熟悉C语言的编程和调试环境,培养学生用计算机解决实际问题的能力要求:根据实验内容,认真编写源程序代码、上机调试程序,书写实验报告。二、实验内容综合利用所学C语言三种程序基本结构以及数组(或指针)、用户自
2、定义函数等相关知识进行一个小型学生成绩管理系统的设计与实现,具体内容如下:某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,实现如下的学生成绩管理系统:(1)录入每个学生的学号和考试成绩(2)计算课程的总分和平均分(3)按成绩由高到低排出名次表(4)按学号由小到大排出成绩表(5)按学号查询学生考试成绩(6)按优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)、不及格(0-59分)5个类别,统计每个类别的人数及其所占百分比(7)输出每个学生的学号、考试成绩三、实验步骤1仔细阅读实验要求和书上的相关内容,在磁盘上新建以学号姓名命名的文件夹。2编写
3、程序代码、编译、连接及运行程序、查找程序中的错误3.函数及功能说明四、完整源程序代码五、结果分析及总结分析运行结果,并进行总结(可以从以下几个方面来总结:你在编程过程中对问题是如何分析的?遇到了哪些难题?你是怎么克服的?你的收获有哪些?) 调试代码:#include #include #include #define STU_NUM 30 /*最多的学生人数*/int Menu(void);void Readscore (long num,float score,int n);void Aversumofscore(float score,int n);void Desortbyscore(l
4、ong num,float score,int n);void Assortbynum(long num,float score,int n);void searchbynum(long num,float score,int n);void statisticanalysis(float score,int n);void printscore(long num,float score,int n);int main() char itemselected; int n; float scoreSTU_NUM; long numSTU_NUM; printf(输入学生人数(n%d),STU_
5、NUM); scanf(%d,&n); while (1) itemselected=Menu(); /*显示菜单,并读取用户输入*/ switch (itemselected) case 1: Readscore (num,score, n); break; case 2: Aversumofscore( score, n); break; case 3: Desortbyscore( num,score,n); printf(n sort in descending order by score:n); printscore( num,score,n); break; case 4: As
6、sortbynum(num,score,n); printf(n sort in ascending order by score:n); printscore( num,score,n); break; case 5: searchbynum(num,score, n); break; case 6: statisticanalysis( score, n); break; case 7: printscore( num,score,n); break; case 0: exit(0); /*printf(end of program!); break;*/ default :printf(
7、input error !); break; return 0;/*函数功能:显示菜单项并获得用户键盘输入的选项*/int Menu(void) int itemselected;printf(n 学生成绩管理系统:管理学生成绩n);printf(n 1. 录入每个学生学号和考试成绩n);printf(n 2. 计算班级总分和平均分n);printf(n 3. 按成绩由高到低排出名次表n);printf(n 4. 按学号由小到大排出成绩表n);printf(n 5. 按学号查询学生排名和考试成绩n);printf(n 6. 按优秀(90-100分)、良好(80-89分)、中等(70-79分)、
8、及格(60-69分)、不及格(0-59分)5个类别n统计每个类别的人数及其所占百分比n);printf(n 7. 输出每个学生的学号、考试成绩n);printf(n 0. 程序结束n);printf(n输入你的选择n);scanf (%d,&itemselected);return itemselected;/*函数功能:输入n个学生的某门课成绩*/void Readscore (long num,float score,int n) int i; printf(请输入学号和分数(学号和分数用空格隔开,回车输入下一个):n); for(i=0;in;i+) scanf(%ld%f,&numi,
9、&scorei);/*函数功能:计算全班总分和平均分*/void Aversumofscore(float score,int n) float d,c; int j; c=0; for(j=0;jn;j+) c=c+scorej; d=c/n; printf(总分=%f,平均分=%fn,c,d);/*函数功能:将数组score的元素值按从高到低排序,即按成绩从大到小排序*/void Desortbyscore(long num,float score,int n) float t; long a; int j,i; for(i=0;i=n-1;i+) for(j=i+1;jn;j+) if(
10、scoreiscorej) t=scorei;scorei=scorej;scorej=t; a=numi;numi=numj;numj=a;/*函数功能:将数组num的元素值按从低到到排序,即按学号从小到大排序*/void Assortbynum(long num,float score,int n) float a; long t; int j,i; for(i=0;i=n-1;i+) for(j=i+1;jnumj) t=numi;numi=numj;numj=t; a=scorei;scorei=scorej;scorej=a;/*函数功能:按学号查找学生成绩并显示查找结果*/void
11、 searchbynum(long num,float score,int n) int i; long b; printf(请输入学号查找学生成绩n); scanf(%ld,&b); for(i=0;in;i+) if(numi=b) printf(%f,scorei);/*函数功能:统计各分数段的学生人数及所占百分比*/void statisticanalysis(float score,int n) int i; float t5=0,0,0,0,0; float a; for(i=0;i=0&scorei60)t0+; else if(scorei=60)t1+; else if(sc
12、orei=70)t2+; else if(scorei=80)t3+; else if(scorei=90)t4+; for(i=0;i=5;i+) if(i=0) printf(小于60分共%f人,占%f%n,ti,a=ti/n*100); else if(i=1) printf(大于等于60分小于70分共%f人,占%f%n,ti,a=ti/n*100); else if(i=2) printf(大于等于70分小于80分共%f人,占%f%n,ti,a=ti/n*100); else if(i=3) printf(大于等于80分小于90分共%f人,占%f%n,ti,a=ti/n*100); else if(i=4) printf(大于等于90分小于等于100分共%f人,占%f%n,ti,a=ti/n*100); /*函数功能:打印学生成绩*/void printscore(long num,float score,int n) int i; for(i=0;in;i+) printf(%ld %fn,numi,scorei);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1