作业练习,一维数组实现打分功能

/*
 * 一位数组:实现打分
 */
package com.lianxi;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test7 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Judge juage=new Judge();
        System.out.println(juage.lastFen());
    }

}
class Judge
{
    //定义一个可以存放8个小数的数组
    float fens[]=null;
    int size=3;
    //构造函数
    public Judge()
    {
        fens=new float[size];
        //初始化。
        //输入流
        InputStreamReader isr=new InputStreamReader(System.in);
        BufferedReader br=new BufferedReader(isr);
        
            try{
                for(int i=0;i<fens.length;i++)
                {
                    System.out.println("请输入第"+(i+1)+"个裁判的成绩");
                    fens[i]=Float.parseFloat(br.readLine());
                }
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                 try{
                     br.close();
                 }catch(IOException e){
                     e.printStackTrace();
                 }
            }
         
    }
    //得到运动员的最后得分
    public float lastFen()
    {
        //去掉最低分(目的就是找到最低分的下标)
        //去掉最高分
        //得到最后分
        float lastFen=0;
        float allFen=0;
        int maxIndex=this.getHignFenIndex();
        int minIndex=this.getLowFenIndex();
            
        for(int i=0;i<fens.length;i++)
        {
            if(i!=minIndex&&i!=maxIndex)
            {
               allFen+=fens[i];
               
            }
        }
        return allFen/(fens.length-2);
    }    
     
    //去掉最高分
    public int getHignFenIndex()
    {
        //选择法:认为第一个是最低的
        float maxFen=fens[0];
        int maxIndex=0;
        for(int i=1;i<fens.length;i++)
        {
            if(maxFen<fens[i])
            {//修改最低分
            maxFen=fens[i];
            maxIndex=i;
            }
        }
        return maxIndex;
    }
    //去掉最低分的下标(下标)
    public int getLowFenIndex()
    {
        //选择法:认为第一个是最低的
        float minFen=fens[0];
        int minIndex=0;
        for(int i=1;i<fens.length;i++)
        {
            if(minFen>fens[i])
            {//修改最低分
            minFen=fens[i];
            minIndex=i;
            }
        }
        return minIndex;
    }
    
    
}

 

posted @ 2016-02-14 16:37  sunli0205  阅读(329)  评论(0编辑  收藏  举报