课程实践——第二个——歌手大赛评分系统

2024-04-27 03:38

本文主要是介绍课程实践——第二个——歌手大赛评分系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*
Copyright (c) 2016, 烟台大学计算机学院All rights reserved.
文件名称:first.cpp
作    者:颜丙齐
完成日期:2017年 1 月 6 日
版 本 号:v1.0题目描述歌手大赛计分系统
输入评委个数和每位评委的打分
输出选手的平均得分
样例输入41234
样例输出这是歌手大赛的计分系统!!!
制作人:颜丙齐
指导老师:贺利坚老师
程序说明:该程序计算各个选手的得分!!!
计分方式:去掉一个最高分和一个最低分然后取平均值!!!
输入的评委打分为0~10之间的数,请大家一定不要输错哟!!!
请大家开始使用吧!!!
请输入评委的人数;4
请输入第1位评委的给分为:1
请输入第2位评委的给分为:2
请输入第3位评委的给分为:3
请输入第4位评委的给分为:4
减去一个最高分4.00,和一个最低分1.00
该选手的最终得分为:2.50
***************************************SUCCESS**********************************
按N退出,其他键继续:*/
#include <stdio.h>
#include <stdlib.h>
void view();//输出关于程序的说明
void getscore(double *,int);//将输入数组中的数保存到数组中.两个参数:数组和数组长度。
void set_score_online(double *,int );//将数组利用冒泡排序法,将最大的和最小的数排列。两个参数:数组和数组长度。
void ave_score(double *,int );//将数组中的1——n-1个元素求平均值,并将求的平均值赋值给数组的第n项,去掉第一个和最后一个。两个参数:数组和数组长度。
void calScore(int n);//计算成绩的最终函数,通过调用其他函数实现
int main()
{system("color 1b");//控制输出面板的颜色view();int n;//评委的人数char button;//控制是否结束printf("请输入评委的人数:");scanf("%d",&n);do{calScore(n);printf("***************************************SUCCESS**********************************");printf("按N退出,其他键继续:\n");getchar();scanf("%c",&button);}while(button!='N'&&button!='n');//循环一次是计算的一个选手的分数return 0;
}
/*************************************************************
功能描述:输出程序的说明
输入参数:无
返 回 值:无
其他说明:输出几句话,解释该程序
*************************************************************/
void view()
{printf("这是歌手大赛的计分系统!!!\n");printf("制作人:颜丙齐\n");printf("指导老师:贺利坚老师\n");printf("程序说明:该程序计算各个选手的得分!!!\n");printf("计分方式:去掉一个最高分和一个最低分然后取平均值!!!\n");printf("输入的评委打分为0~10之间的数,请大家一定不要输错哟!!!\n");printf("请大家开始使用吧!!!\n");
}
/*************************************************************
功能描述:计算一个选手的分数
输入参数:无
返 回 值:无
其他说明:通过调用其他函数实现其功能
*************************************************************/
void calScore(int n)
{double score[20];//定义一个一维数组来存放分数getscore(score,n);set_score_online(score,n);ave_score(score,n);printf("减去一个最高分%.2f,和一个最低分%.2f\n",score[n-1],score[0]);printf("该选手的最终得分为:%.2f\n",score[n]);
}
/*************************************************************
功能描述:得到各个评委的评分
输入参数:s-一个指针,是传递的一个数组n-数组的长度
返 回 值:无
其他说明:通过使用指针来给数组赋值
*************************************************************/
void getscore(double *s,int n)
{int i;int k;for(i=0; i<n; i++){k=0;do{if(k>=1){printf("您的输入有误请重新输入!!!\n");}printf("请输入第%d位评委的给分为:",i+1);scanf("%lf",&s[i]);k++;}while(s[i]>10.0);}return ;
}
/*************************************************************
功能描述:将数组中的最高分和最低分找出来,分别放在数组的末尾和开头,便于后面操作
输入参数:s-一个指针,是传递的一个数组n-数组的长度
返 回 值:无
其他说明:使用的是冒泡排序法
*************************************************************/
void set_score_online(double *s,int n)
{int i,middle;for(i=0; i<n-1; i++){if(s[i]>s[i+1]){middle=s[i];s[i]=s[i+1];s[i+1]=middle;}}for(i=n-1; i>0; i--){if(s[i]<s[i-1]){middle=s[i];s[i]=s[i-1];s[i-1]=middle;}}return;
}
/*************************************************************
功能描述:将数组中的第2~(n-1)个元素加起来,并求平均值
输入参数:s-一个指针,是传递的一个数组n-数组的长度
返 回 值:无
其他说明:将求得的平均值放在数组的第(n+1)个位上
*************************************************************/
void ave_score(double *s,int n)
{int i;double  ave=0;for(i=1; i<n-1; i++){ave=ave+s[i];}ave=ave/(n-2);s[n]=ave;return;
}
/*
Copyright (c) 2016, 烟台大学计算机学院All rights reserved.
文件名称:first.cpp
作    者:颜丙齐
完成日期:2017年 1 月 6 日
版 本 号:v1.0题目描述歌手大赛计分系统
输入评委个数和每位评委的打分
输出选手的平均得分
样例输入41234
样例输出这是歌手大赛的计分系统!!!
制作人:颜丙齐
指导老师:贺利坚老师
程序说明:该程序计算各个选手的得分!!!
计分方式:去掉一个最高分和一个最低分然后取平均值!!!
输入的评委打分为0~10之间的数,请大家一定不要输错哟!!!
请大家开始使用吧!!!
请输入评委的人数;4
请输入第1位评委的给分为:1
请输入第2位评委的给分为:2
请输入第3位评委的给分为:3
请输入第4位评委的给分为:4
减去一个最高分4.00,和一个最低分1.00
该选手的最终得分为:2.50
***************************************SUCCESS**********************************
按N退出,其他键继续:*/
#include <stdio.h>
#include <stdlib.h>
void view();//输出关于程序的说明
void getscore(double *,int);//将输入数组中的数保存到数组中.两个参数:数组和数组长度。
void set_score_online(double *,int );//将数组利用冒泡排序法,将最大的和最小的数排列。两个参数:数组和数组长度。
void ave_score(double *,int );//将数组中的1——n-1个元素求平均值,并将求的平均值赋值给数组的第n项,去掉第一个和最后一个。两个参数:数组和数组长度。
void calScore(int n);//计算成绩的最终函数,通过调用其他函数实现
int main()
{system("color 1b");//控制输出面板的颜色view();int n;//评委的人数char button;//控制是否结束printf("请输入评委的人数:");scanf("%d",&n);do{calScore(n);printf("***************************************SUCCESS**********************************");printf("按N退出,其他键继续:\n");getchar();scanf("%c",&button);}while(button!='N'&&button!='n');//循环一次是计算的一个选手的分数return 0;
}
/*************************************************************
功能描述:输出程序的说明
输入参数:无
返 回 值:无
其他说明:输出几句话,解释该程序
*************************************************************/
void view()
{printf("这是歌手大赛的计分系统!!!\n");printf("制作人:颜丙齐\n");printf("指导老师:贺利坚老师\n");printf("程序说明:该程序计算各个选手的得分!!!\n");printf("计分方式:去掉一个最高分和一个最低分然后取平均值!!!\n");printf("输入的评委打分为0~10之间的数,请大家一定不要输错哟!!!\n");printf("请大家开始使用吧!!!\n");
}
/*************************************************************
功能描述:计算一个选手的分数
输入参数:无
返 回 值:无
其他说明:通过调用其他函数实现其功能
*************************************************************/
void calScore(int n)
{double score[20];//定义一个一维数组来存放分数getscore(score,n);set_score_online(score,n);ave_score(score,n);printf("减去一个最高分%.2f,和一个最低分%.2f\n",score[n-1],score[0]);printf("该选手的最终得分为:%.2f\n",score[n]);
}
/*************************************************************
功能描述:得到各个评委的评分
输入参数:s-一个指针,是传递的一个数组n-数组的长度
返 回 值:无
其他说明:通过使用指针来给数组赋值
*************************************************************/
void getscore(double *s,int n)
{int i;int k;for(i=0; i<n; i++){k=0;do{if(k>=1){printf("您的输入有误请重新输入!!!\n");}printf("请输入第%d位评委的给分为:",i+1);scanf("%lf",&s[i]);k++;}while(s[i]>10.0);}return ;
}
/*************************************************************
功能描述:将数组中的最高分和最低分找出来,分别放在数组的末尾和开头,便于后面操作
输入参数:s-一个指针,是传递的一个数组n-数组的长度
返 回 值:无
其他说明:使用的是冒泡排序法
*************************************************************/
void set_score_online(double *s,int n)
{int i,middle;for(i=0; i<n-1; i++){if(s[i]>s[i+1]){middle=s[i];s[i]=s[i+1];s[i+1]=middle;}}for(i=n-1; i>0; i--){if(s[i]<s[i-1]){middle=s[i];s[i]=s[i-1];s[i-1]=middle;}}return;
}
/*************************************************************
功能描述:将数组中的第2~(n-1)个元素加起来,并求平均值
输入参数:s-一个指针,是传递的一个数组n-数组的长度
返 回 值:无
其他说明:将求得的平均值放在数组的第(n+1)个位上
*************************************************************/
void ave_score(double *s,int n)
{int i;double  ave=0;for(i=1; i<n-1; i++){ave=ave+s[i];}ave=ave/(n-2);s[n]=ave;return;
}

学习心得:这个程序好久就写完了,之前也是用的指针,不过一直有警告,现在也是用的指针,不过没有警告了,有点不理解。这个是完全按要求做的。做之前感觉很难,但是做完之后发现也没多少东西。

这篇关于课程实践——第二个——歌手大赛评分系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939423

相关文章

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境