欢迎来到天天文库
浏览记录
ID:41033386
大小:166.50 KB
页数:19页
时间:2019-08-14
《C语言课外编程实验报告1[1]》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言课外编程实验报告一.实验目的编写程序实现以下功能学生成绩管理系统一班有10名学生,一学期有5门课程,编写程序实现如下功能:(1)录入每名学生的各科成绩(2)求出每名学生的平均成绩和总分(3)求每门课程的平均分、及格率、最高成绩和最低成绩(4)输出总成绩前5名的学生学号、各科成绩和总分(5)输出各科补考学生的学号和成绩要求:(1)编制一个主函数来实现功能菜单的显示和各功能函数的调用;(2)程序设计各步骤的相关文档齐全、清晰。(3)在所有数据输入处理之前提供必要的提示二.实验相关数据实验所用到的主要算法有:三种基本结构,数组,自定义函数,指针。N,M为本次实验经常用到的
2、两个常数10和5,分别对应十个学生和五门课。数组a用于存储所有学生所有课的成绩;数组b用于存储每个学生的姓名;数组c用于存储每个学生的学号;数组d用于存储每个学生的总分;函数input_score用于输入学生成绩;函数student_average用于计算每个学生的成绩平均值;函数student_total用于计算每个学生的总分;函数course_average用于计算每门课的平均分;函数course_jigelv用于计算每门课的及格率;函数course_zuigao用于计算每门课的最高成绩;函数course_zuidi用于计算每门课的最低成绩;函数sort用于输出前五名
3、的信息;函数bukao用于输出补考信息;主函数实现了对所有自定义函数功能的调用。三.实验内容主函数流程图如下:相关代码如下:intmain(){inti,j;input_score();for(i=0;i4、course_average(a);printf("");printf("以下是每门课的及格率:");course_jigelv(a);printf("");printf("以下是每门课的最高成绩:");course_zuigao(a);printf("");printf("以下是每门课的最低成绩:");course_zuidi(a);printf("");printf("以下是前五名的情况:");sort(d);printf("");printf("以下是补考情况:");bukao(a);printf("");return0;5、}以下实施严格步骤的分析:(1)对于姓名,学号的输入,只要使用单层循环输入数组b和c的相应项再输出就可以了。而对于成绩的输入,必须使用双层循环输入对应于某个学生的某门课的成绩,然后再输出。相关流程图如下:相关代码如下:voidinput_score(){inti,j;for(i=0;i6、nf("%f",&a[i][j]);}}}注:i,j为循环变量。(1)单个学生成绩的处理,平均分和总分所对应的自定义函数设计思路基本一致,先通过双层循环找出对应于数组a的元素,再通过一个变量s实现累加。需要注意的是:累加变量s每次循环后要清零;输出时,平均值函数输出的是s/5.0,总分函数输出的则是s。相关流程图如下:相关代码如下:voidstudent_average(){inti,j;floats;s=0;for(i=0;i7、s=0;}}voidstudent_total(){inti,j;floats;s=0;for(i=0;i
4、course_average(a);printf("");printf("以下是每门课的及格率:");course_jigelv(a);printf("");printf("以下是每门课的最高成绩:");course_zuigao(a);printf("");printf("以下是每门课的最低成绩:");course_zuidi(a);printf("");printf("以下是前五名的情况:");sort(d);printf("");printf("以下是补考情况:");bukao(a);printf("");return0;
5、}以下实施严格步骤的分析:(1)对于姓名,学号的输入,只要使用单层循环输入数组b和c的相应项再输出就可以了。而对于成绩的输入,必须使用双层循环输入对应于某个学生的某门课的成绩,然后再输出。相关流程图如下:相关代码如下:voidinput_score(){inti,j;for(i=0;i6、nf("%f",&a[i][j]);}}}注:i,j为循环变量。(1)单个学生成绩的处理,平均分和总分所对应的自定义函数设计思路基本一致,先通过双层循环找出对应于数组a的元素,再通过一个变量s实现累加。需要注意的是:累加变量s每次循环后要清零;输出时,平均值函数输出的是s/5.0,总分函数输出的则是s。相关流程图如下:相关代码如下:voidstudent_average(){inti,j;floats;s=0;for(i=0;i7、s=0;}}voidstudent_total(){inti,j;floats;s=0;for(i=0;i
6、nf("%f",&a[i][j]);}}}注:i,j为循环变量。(1)单个学生成绩的处理,平均分和总分所对应的自定义函数设计思路基本一致,先通过双层循环找出对应于数组a的元素,再通过一个变量s实现累加。需要注意的是:累加变量s每次循环后要清零;输出时,平均值函数输出的是s/5.0,总分函数输出的则是s。相关流程图如下:相关代码如下:voidstudent_average(){inti,j;floats;s=0;for(i=0;i7、s=0;}}voidstudent_total(){inti,j;floats;s=0;for(i=0;i
7、s=0;}}voidstudent_total(){inti,j;floats;s=0;for(i=0;i
此文档下载收益归作者所有