입력받은 값들의 분포를 시각적으로 볼 수 있는 히스토그램(histogram)을 만드는 프로그램을 작성 하시오.
이 프로그램은 1과 100사이의 정수 10개를 읽어야 하고 1-10, 11-20 등의 범위에 드는 값들의 횟수를 아래와 같이 출력하여야 한다.
조건1 배열을 사용
조건2 1~100까지의 정수 10개
결과
1 - 10:
11 - 20:
21 - 30: * *
31 - 40: *
41 - 50: * * *
51 - 60:
61 - 70: * *
71 - 80: * *
81 - 90:
91 - 100:
public static void main(String[] args) {
Histogram histo = new Histogram(); // Histogram class의 객체 histo 생성
histo.getnum(); // histo 객체의 getnum 메소드 호출
histo.print(); // histo 객체의 print 메소드 호출
}
class Histogram
{
private int num;
private int[] count = new int[10];
public void getnum() { // 랜덤으로 정수 10개를 입력받아 해당범위의 값 증가
for(int i =0;i<10;i++){
num = (int)(Math.random()*100)+1; // num변수에 랜덤정수 저장
/* 정수가 각 범위에 해당되면 해당범위의 값 증가 */
if(num<=10)
count[0]++;
else if(num<=20)
count[1]++;
else if(num<=30)
count[2]++;
else if(num<=40)
count[3]++;
else if(num<=50)
count[4]++;
else if(num<=60)
count[5]++;
else if(num<=70)
count[6]++;
else if(num<=80)
count[7]++;
else if(num<=90)
count[8]++;
else if(num<=100)
count[9]++;
}
}
public void print() {
/* 각 범위의 값을 가지고 print 메소드 호출 */
System.out.print("1 - 10: ");
star(count[0]);
System.out.print("11 - 20: ");
star(count[1]);
System.out.print("21 - 30: ");
star(count[2]);
System.out.print("31 - 40: ");
star(count[3]);
System.out.print("41 - 50: ");
star(count[4]);
System.out.print("51 - 60: ");
star(count[5]);
System.out.print("61 - 70: ");
star(count[6]);
System.out.print("71 - 80: ");
star(count[7]);
System.out.print("81 - 90: ");
star(count[8]);
System.out.print("91 - 100: ");
star(count[9]);
}
public void star(int c) {
/* *을 찍고 다음줄로 내림 */
for(int i=0;i<c;i++){
System.out.print("* ");
}
System.out.println();
}
}
'JAVA' 카테고리의 다른 글
JAVA 클래스와 객체(class & object) - 객체(object), 클래스(class) (2) | 2014.05.12 |
---|---|
JAVA 16진수의 문자열을 2진수 문자열로 반환하자 (1) | 2014.05.12 |
JAVA 클래스와 객체 - 캡슐화, 상속, 다형성 (0) | 2014.05.03 |
JAVA 클래스를 생성하여 입력한 년,월,일 출력하기 (0) | 2014.05.03 |
JAVA 원하는 항만큼 피보나치수열 출력하기 (0) | 2014.05.03 |