C语言课程实习报告课程名称:歌星大奖赛学院:信息工程学院专业:通信工程班级:学号:姓名:指导老师:第一部分:课程设计编号、名称、内容名称:歌星大奖赛内容:【要求】(1)在歌星大奖赛中,有十个评委为参赛的选手打分,分数为1~100分
选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均植
请编写一个程序实现
(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委
【提示】一、需求分析这个问题的第一个要求算法比较简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的
第二个要求为了考虑效率,要用到排序技术
第二部分:程序总体设计思路由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的
在编写本程序的过程中,首先我借助购买的指导材料,了解了一些目标程序运行的次序与界面的操作方法,然后按照题目的具体要求进行思考和设计
具体的设计思路如下:程序的要求是根据十个评委对歌手的打分情况,求出这个歌手的平均成绩和最公平及最不公平的裁判
首先,我先考虑到程序的数据输入,可以用scanf函数来解决,并将输入的数据存放于数组中
随后对存放在数组中的数据进行排序,这步为执行找出最不公平的裁判提高了效率,只需将排好序的数组的首尾分值与平均值进行比较即可
将排好序的数组中间的八个数求平均值即为此歌手的成绩,可见排序法可大大的简化程序
接下来是最后一个任务就是找最公平的裁判,此过程我使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最公平的裁判,再将之与后半部分的进行比较,得出最终的最公平的裁判
为了方便管理员更好的使用界面操作,我还设置了每输入完一组数据并得到结果后,或接着输入下组数据或按0跳出界面
整个程序的设计思路到此结束
第三部分:程序功能划分、图示及流程图【