가상 대선 당선 시뮬레이션 프로그램
- 수행 목적 : 조건문 및 반복문과 배열을 통한 당선 시뮬레이션 로직 작성
- 간략 소개 : 올해는 대통령 선거가 있는 해입니다. 이에 대한 가상 시뮬레이션을 통해서 당선인을 결정하는 시뮬레이션 프로그램을 작성해 보세요.
※ 필수 준수사항
1. 기호 1번 이재명, 기호 2번 윤석열, 기호 3번 심상정, 기호 4번 안철수 순으로 진행
2. 총 투표수 10,000건 진행
3. 각 투표수의 결과는 4명의 대선주자들이 동일한 비율로 랜덤하게 발생(단, 당선자는 동율이 안됨)
4. 임의 번호는 Random 함수의 nextInt() 함수를 통해 생성

작성 코드
// 가상 대선 당선 시뮬레이션 프로그램
import java.util.Random;
public class vote {
public static void main(String[] args) {
Random rnd = new Random();
// String[] name = new String[4];
// name[0] = "이재명";
// name[1] = "윤석열";
// name[2] = "심상정";
// name[3] = "안철수";
String[] name = {"이재명", "윤석열", "심상정", "안철수"};
int voter = 10000; // 투표자
int[] votenumber = new int[4]; // 득표수
for (int i = 1; i <= voter; i++) {
int member = rnd.nextInt(4); // 랜덤으로 투표 (0~3사이의 랜덤 수)
double voterturnout = i / (double)voter * 100; // 투표율
votenumber[member]++; // 해당 후보 투표수 + 1
//투표진행률
System.out.printf("[투표진행율]:%.2f%%, %d명 투표 => %s", voterturnout, i, name[member]);
//후보별 투표 진행률
for (int j = 0; j < name.length; j++) {
System.out.println();
System.out.printf("[기호:%d] %s: %.2f%%, (투표수: %d)", j + 1, name[j], votenumber[j] / (double)voter * 100, votenumber[j]);
}
System.out.println();
}
// 가장 많은 득표를 받은 후보 구하기
int max = votenumber[0];
int maxfinal = 0;
for (int i = 0; i < name.length; i++) {
if (votenumber[i] > max) {
max = votenumber[i];
maxfinal = i;
}
}
System.out.println("[투표결과]당선인 :" + name[maxfinal]);
}
}
https://gist.github.com/coha96/4cfe52707ec7a162e2e4092b05fec823
GoodNotes


'JAVA > 백엔드_미니과제' 카테고리의 다른 글
| 연소득 과세금액 계산 프로그램 (0) | 2023.03.12 |
|---|---|
| 로또 당첨 프로그램 (0) | 2023.03.10 |
| 달력 출력 프로그램 (0) | 2023.03.08 |
| 주민등록번호 생성 프로그램 (0) | 2023.03.07 |
| 놀이동산 입장권 계산 프로그램 (0) | 2023.03.07 |