【经典例题】歌手大赛2

程序:

/* 
Copyright (c) 2013, 烟台大学计算机学院 
* All rights reserved. 
* 作    者:赵玲玲 
* 完成日期:2013 年 1 月 16 日 
* 版 本 号:v1.0 
* 例题:题目条件不变,但考虑同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接返平均分)
        和最不公平(即与平均分的差距最大)的评委,程序应该怎样实现? 
* 输入描述: 略
* 问题描述:经典100例题 
* 程序输出:略
* 问题分析:外加循环,根据差值求结果 
* 算法设计:略 
*/  
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    double a[10]={0},max=-1,min=100,ave,sum=0,grade,t1,t2,b[10];
    int i;
    freopen("grade.txt","r",stdin);
    for(i=0;i<10;i++)
    {
        cout<<"请输入第"<<i+1<<"位评委的打分(1-100分):";
        cin>>grade;
        if(grade<1||grade>100)    //判断输入是否合理
        {
            cout<<"error!"<<endl;
            cout<<"please input again!"<<endl;
            i-=1;                //一开始是"main();",想弄个循环,输入有错就一直进行main函数,结果出现问题。
                                 //就又加了一个变量grade,若合格再复制给a数组
        }
        else
        {
            a[i]=grade;
        }
        cout<<endl;
    }
    for(i=0;i<10;i++)
    {
        if(max<a[i])
        {
            max=a[i];
        }
        if(min>a[i])
        {
            min=a[i];
        }
        sum+=a[i];               //先求出综合,这样就不用在后面再求最后得分的时候用循环了
    }
    cout<<"去掉一个最高分"<<max<<"分,\n去掉一个最低分"<<min<<"分"<<endl;
    ave=(sum-max-min)/8;        //只是要把那两个分减掉
    cout<<"该选手最后得分为:"<<ave<<"分"<<endl;
    for(i=0;i<10;i++)
    {
        b[i]=a[i]-ave;          //b[] 用来装与最后得分的差值
        if(b[i]<0)              //保证差为正数
        {
            b[i]*=-1;
        }
    }
    for(i=1;i<10;i++)
    {
        if(b[0]>b[i])          //假设b[o]为差值最小者
        {
            t1=i;              //找出最小的,就是最公平的
        }
        if(b[0]<b[i])
        {
            t2=i;
        }
    }
    cout<<"第"<<t1<<"位评委最公平。"<<endl;
    cout<<"第"<<t2<<"位评委最不公平。"<<endl;
    return 0;
}
文件

98 79 86.5 98.4 86.5 74.3 89.2 97 96 88

结果:

体会:额。。。还好吧,

摘要:[目录]一、需求分析二、概要设计三、详细设计四、源代码:五、调试分析:六、运行结果分析:七、用户使用说明:八、收获及体会:[原文]一、需求分析1、本程序设计中,可以输入参加运动会学校编号及项目编号;根据具体情况选择输入参加项目的男女类别和取成绩名次类别;最后选择输入名次。2、演示程序以用户和计算机对话方式进行,即当用户双击鼠标左键后出现输入数据的对话框;在输入数据之后,用户可以进行查询成绩的操作,包括:按学校编号查询项目、按项目编号查询学校成绩;户还可以分别按学校编号、学校总分、男女团体总分排序输出数据,然后进行数据保存操作。3、本程序执行命令包括:1)输入数据2)查询相关记录3)按要求输出数据4)保存输出数据4、测试数据输入学校编号:1 2 4输入项目编号:1 3 2性别选择: 男 女 男取成绩名次: 前3名 前5名 前3名名次选择: 第1名 第4名 第2名5、测试结果以test.txt文件保存。(附在源程序中)二、概要设计1、本程序要求需要一个链表和一个叔数组结构来分别储存输入数据;2、链表主要是储存:学校编号,项目编号,运动员性别,成绩;3、数组结构主要用于储存:学校编号,男团总分,女团总分和学校总分;三、详细设计1、数据结构a、链表:struct CMyList{ int itemnumber;//项目编号 CString schoolnumber;//学校 int sexul;// 项目性别 int score;//单项成绩int flag;//取名次标志}MyList[50],Mylist; 摘要:[页数]:16 [字数]:3217[目录]1 需求分析 2 概要设计3 详细设计4 调试分析总 结[摘要]在现在的许多大学或者高中小学生活学习中,体育锻炼越来越受到学校和国家的关注,而在学生当中,更是受到了大家的喜爱,于是每个学校都会有自己的体育运动会,各种各样的项目比赛,激烈非常。于是会出现的大量的比赛数据,需要各种统计及计算。因此,需要设计通用的运动会分数统计系统,对运动会中产生的各种数据进行统计。该系统可以迅速规范的统计出运动员间的分数对比,及时进行名次排列,特别是在各学校之间的对比总分和排名,能快速且准确的描述了各个团体的实力对比,输入学校、运动员名后就可以快速的进行登记处理,在我们的传统运动会中,可以得到广大的应用。本文主要介绍了本课程设计的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思路、总体设计、各个功能模块的设计与实现方法。[正文]1 需求分析 在现在的许多大学或者高中小学生活学习中,体育锻炼越来越受到学校和国家的关注,而在学生当中,更是受到了大家的喜爱,于是每个学校都会有自己的体育运动会,各种各样的项目比赛,激烈非常。于是会出现的大量的比赛数据,需要各种统计及计算。因此,需要设计通用的运动会分数统计系统,对运动会中产生的各种数据进行统计。1.1 数据需求分析本演示程序中,学校编号要求为1~N,男子比赛项目编号要求为1~M,女子比赛项目编号要求为M+1~M+W。数据输入时需注意格式的正确,详见用户手册说明。演示程序以人机对话的方式执行,即在计算机上显示提示信息后,由用户在键盘上输入对应的数据或命令,程序将执行相应的操作并显示下一步信息。1.2 功能需求分析(1)建立比赛数据;(2)显示各学校的成绩单; (3)显示各校团体总分报表。 2 概要设计每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,每个子函数实现的功能;各程序模块或子函数之间的调用关系。2.1 结构功能以结构数组来存储比赛数据,其基本操作为写入数据和查找数据。2.2本程序系统模块(1)主程序模块:main ( ) { 初始化; while(“命令”=“输入”){ 接受输入数据;处理数据; } while (“命令”=“浏览数据”) { 接受具体指令; 显示相应数据;[参考文献][1] 严蔚敏,吴伟民著.数据结构(C语言版)[M].北京:清华大学出版社, 1997.4. [2] 刘大有.数据结构[M].北京:高教出版社,2001. [3] 黄梯云.管理信息系统(修订版)[M].北京:高等教育出版社,2000年.[4] 齐德昱.算法与数据结构[M].北京:清华大学出版社,2003.10.[5] 徐孝凯,贺桂英著.C语言教程[M].北京:清华大学出版社,2004.[6] 杨秀 ...[ [原文]第一部分 运动会分数统计系统一、需求分析(1).可以输入各项目前三名的成绩。(2).能统计各学校总分。(3).可以按学校编号,学校总分、男女团队总分排序输出。(4).可以按学校编号查询学校某个项目的情况,可以按项目编号查询取得前三名的学校。(5).输出形式:有中文提示,各学校分数为整形。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能。(6).储存结构:以顺序存储结构储存数据。二.概要设计1、数据类型定义struct scorelist { int score; /*分数*/ char schoolnum[5]; /*学校编号*/ int itemnum[5]; /*项目编号*/ }; /*定义分数结构体类型*/ struct School{ char schoolnum[5]; /*学校编号*/ struct scorelist list[M]; /*定义scorelist类型的结构体变量*/ int teamscore; /*学校分数*/ int mscore; /*男队分数*/ int gscore; /*女队分数*/}; /*定义学校结构体类型*/struct School school[M]; /*定义School类型的结构体数组*/2、系统功能的实现(1)、求学校总分,男队总分,女队总分函数: void sun(); 本算法实现学校总分,男队总分,女队总分,并分别保存到各学校的teamscore,mscore,gscore结构体成员中。(2)、按学校总分排序输出函数void sort_teamsore();本算法实现学校总分排序输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值