본문 바로가기

자바(java)

투표 통계 분석: 투표 결과를 분석하고 그래프로 시각화하여 표시합니다.

반응형

투표 통계 분석: 자바 구현

1. 내용 설명

투표 통계 분석 프로그램은 사용자로부터 여러 후보에 대한 투표 결과를 입력받아, 각 후보의 투표 수와 전체 투표 중 각 후보가 차지하는 비율을 계산합니다. 이 결과를 바탕으로 간단한 텍스트 기반의 막대 그래프를 생성하여 시각적으로 표시합니다.

2. 프로그램 간 사용 함수 설명

  • inputVotes(): 사용자로부터 후보별 투표 수를 입력받습니다.
  • calculatePercentages(): 각 후보의 투표 비율을 계산합니다.
  • drawGraph(): 투표 비율에 따라 막대 그래프를 그립니다.
  • displayResults(): 최종 결과를 화면에 표시합니다.

3. 코딩 내용

import java.util.*;

public class VoteStatistics {
    private Map<String, Integer> votes;
    private int totalVotes;

    public VoteStatistics() {
        votes = new HashMap<>();
        inputVotes();
        calculatePercentages();
        drawGraph();
    }

    private void inputVotes() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("후보별 투표 수를 입력하세요. 입력을 마치려면 'end'를 입력하세요.");

        while (true) {
            Systehttp://m.out.print("후보 이름: ");
            String name = scanner.nextLine();
            if ("end".equalsIgnoreCase(name)) {
                break;
            }

            Systehttp://m.out.print(name + "의 투표 수: ");
            int count = scanner.nextInt();
            scanner.nextLine(); // 버퍼 비우기

            votes.put(name, count);
            totalVotes += count;
        }
    }

    private void calculatePercentages() {
        for (String key : votes.keySet()) {
            int count = votes.get(key);
            double percentage = 100.0 * count / totalVotes;
            votes.put(key, (int) percentage);
        }
    }

    private void drawGraph() {
        for (String key : votes.keySet()) {
            Systehttp://m.out.print(key + ": ");
            int percentage = votes.get(key);
            for (int i = 0; i < percentage; i++) {
                Systehttp://m.out.print("*");
            }
            System.out.println(" (" + percentage + "%)");
        }
    }

    public static void main(String[] args) {
        new VoteStatistics();
    }
}

 

4. 전문용어

  • Map: 키-값 쌍을 저장하는 자바 컬렉션입니다.
  • Scanner: 사용자 입력을 읽는 자바 유틸리티입니다.
  • 투표 비율 계산: 전체 투표 수에 대한 각 후보의 투표 비율을 계산합니다.
  • 막대 그래프: 데이터를 막대 형태로 시각적으로 표현하는 그래프 유형입니다.

5. 라이브러리 추가 및 실행 방법

  • 본 프로그램은 자바 표준 라이브러리만 사용합니다.

컴파일:
javac -encoding UTF-8 VoteStatistics.java

 

실행:
java VoteStatistics

반응형