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