Graph.java



/** 得点分布を標準出力に表示 */
public class Graph {

  /** 得点を記憶する配列 */
    private Score[] data;

  /** 得点分布を記憶する配列 */
    private int[] count = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

  /** コンストラクタ */
    public Graph( Score[] s ) {

        data = s;
    }

  /** グラフを表示するメソッド */
    public void printGraph() {

        countData();
        for( int y=0; y<10; y++ ) {
            for( int x=0; x<count[y]; x++ ) {
                System.out.print( "*" );
            }
            System.out.println( "" );
        }

    }

  /** 得点分布を調べるメソッド */
    private void countData() {

        for( int i=0; i<data.length; i++ ) {
            if( data[i].point >=90 ) count[9]++;
            else if( data[i].point >=80 ) count[8]++;
            else if( data[i].point >=70 ) count[7]++;
            else if( data[i].point >=60 ) count[6]++;
            else if( data[i].point >=50 ) count[5]++;
            else if( data[i].point >=40 ) count[4]++;
            else if( data[i].point >=30 ) count[3]++;
            else if( data[i].point >=20 ) count[2]++;
            else if( data[i].point >=10 ) count[1]++;
            else count[0]++;
        }
    }

  /** main()メソッド(確認用) */
    public static void main( String[] argv ) {

         Score[] s = MakeRandomData.getData( 200 );
         Graph g = new Graph( s );
         g.printGraph();
    }
}