课程设计2 歌手大赛计分系统
来源:互联网 发布:淘宝主营占比在哪里看 编辑:程序博客网 时间:2024/04/20 00:52
Copyright (c) 2016 烟台大学计算机与控制工程学院All rights reserved.文件名称:test.cpp作者:何定钦完成日期:2017年1月1日题目描述: (1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。 选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。 要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。 这样,在main函数调用时,需要将输入的评委人数n作为实参。 (2) 进一步完善(1)的程序。输入时,难免有录入错误发生,如果输入的成绩不在0-10之间, 要求用户立即重新输入(在函数calScore中修改);一次运 行程序只计算一位选手成绩太麻烦, 要求输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N:”如果输 入的不是N或n,可以为下 一位选手计算成绩(在main函数中进行控制即可)。输入: 输入n以及各位评委的给分。输出: 去掉的最高分及最低分以及最后得分样例输入: 对于(1): 7 10 9 8 7 6 5 4 对于(2): 7 0 9 8 7 6 8 10 g -1 -9 -7 89 8 7 6 7 8 6 10 n 样例输出: 对于(1): 10.00 4.00 7.000 对于(2): 10.00 0.00 7.600 10.00 6.00 7.200分析(1):#include <stdio.h>#include <stdlib.h>void calScore(int n);/*功能:输入评委人数,调用函数*/int main(){ int n; /*评委人数*/ printf("输入评委人数:"); scanf("%d",&n); calScore(n); return 0;}/*功能·:计算出评委给出的分的最高分和最低分以及歌手最后得分*/void calScore(int n){ int i; float score,last_score; /*评委给分以及最后得分*/ float max=0,min=10; /*最高分和最低分*/ float sum=0; /*评委给出的分的总和*/ printf("请输入选手的成绩(0-10)\n"); for(i=0;i<n;i++) { printf("第%d位评委给分:",i+1); scanf("%f",&score); sum=sum+score; /*累加每次的给分*/ if(score>max) max=score; if(score<min) min=score; } last_score=(sum-max-min)/(n-2); /*计算最后得分*/ printf("去掉一个最高分:%.2f,去掉一个最低分:%.2f\n",max,min); printf("当前选手的最后得分是:%.3f",last_score); return;}分析(2):#include <stdio.h>#include <stdlib.h>void calScore(int n);/*功能:可计算多位歌手的得分*/int main(){ int n; /*评委人数*/ char judge; /*判断是否计算下一个歌手的字符常量*/ printf("输入评委人数:"); scanf("%d",&n); do { calScore(n); /*调用函数*/ printf("按 N 或者 n 退出,按其他键继续计算下一位歌手的成绩:\n"); fflush(stdin); /*清除缓冲区*/ judge=getchar(); } while(judge!='n' && judge!='N'); /*输入非N或n时计算下一个歌手的得分*/ return 0;}/*功能:计算最高分,最低分及最后得分*/void calScore(int n){ int i; float score,last_score; /*评委给分以及最后得分*/ float max=0,min=10; /*最高分和最低分*/ float sum=0; /*评委给出的分的总和*/ printf("请输入选手的成绩(0-10)\n"); for(i=0; i<n; i++) { printf("第%d位评委给分:",i+1); scanf("%f",&score); while(score<0 || score>10) { printf("第%d位评委给分:",i+1); scanf("%f",&score); } sum=sum+score; /*累加每次的给分*/ if(score>max) max=score; if(score<min) min=score; } last_score=(sum-max-min)/(n-2); /*计算最后得分*/ printf("去掉一个最高分:%.2f,去掉一个最低分:%.2f\n",max,min); printf("当前选手的最后得分是:%.3f\n",last_score); return;}
结果(1):
结果(2):
知识点总结:
运用了计算和的方法以及找最大值及最小值的方法。
心得体会:
一直卡在为下一位歌手怎么样计分的地方,最后才发现需要先清除缓冲区才可以再输入下一个字符。
0 0
- 课程设计2 歌手大赛计分系统
- 课程设计 【项目二】歌手大赛计分程序
- 11周 项目5.1歌手大赛计分系统1
- 歌手大赛计分函数版
- C语言课程设计----歌手大奖赛计分系统
- 11周 项目5.2 歌手大赛计分器
- 课程设计<2>---歌手大奖赛计分程序
- C语言期末课程设计 2.大奖赛计分系统
- 【经典例题】歌手大赛2
- 歌手大赛
- C语言课程设计:歌手大奖赛计分程序
- 篮球比赛计时计分系统
- 网球计分系统
- 跳水计分系统
- 歌手大奖赛计分系统
- 课程设计账户管理系统(2)
- 图书管理系统C语言课程设计2
- 大奖赛计分--2
- 理论力学助教生涯
- AD15 一个工程多原理图多PCB 分别导入
- python/pandas数据分析(十三)-数据清理、转换、合并,重塑
- 常用的DOS运行命令
- clion配置cmake添加boost库
- 课程设计2 歌手大赛计分系统
- 电路布线问题
- PHP开发环境搭建
- 在Windows服务器的命令窗口中用ftp方式与使用了File Zilla Sever软件共享了文件的另一个Windows服务器进行文件传输
- 命令模式代码
- python3.5 django 文档相关动作错误及解决办法
- Eclipse调试方法
- CSS单位
- http协议之response响应详解