투표 통계 분석: 자바 구현
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
'자바(java)' 카테고리의 다른 글
낙서 판: 마우스를 사용하여 그림을 그릴 수 있는 간단한 그림판을 개발합니다. (0) | 2023.12.20 |
---|---|
윈도우 알람 시계 애플리케이션: 알람을 설정하고 시간에 맞춰 알람을 울리는 앱을 설계합니다. (0) | 2023.12.20 |
퀴즈 게임: 다양한 주제의 퀴즈를 제공하고 사용자의 정답을 평가하는 게임을 만듭니다. (0) | 2023.12.20 |
블랙잭 카드 게임: 블랙잭 룰에 따라 카드 게임을 구현합니다. (0) | 2023.12.20 |
미로 탐험 게임: 미로 내에서 캐릭터를 움직여 목적지에 도달하는 게임을 제작합니다. (0) | 2023.12.20 |