2022 대선 투표 프로그램
대선 기념으로 투표 프로그램을 제작하였다. 당선 1인은 쉽게 뽑았는데 동률일 때 2명이상의 후보자가 나오는 부분이 어려워서 같은 학원 형에게 도움을 받았다.
package march;
import java.util.Scanner;
public class vote_counter_1_3 {
//표수, 동률 뽑아오는 최종버전
static String[][] dn = {{" 이재명","0"},{" 윤석열","0"},{" 심상정","0"},{" 안철수","0"},{,}};//2차원배열에 후보 이름과 표를 저장(string으로 저장됨)
String duece = "";//후보(들)가 들어가는 부분
String vote_cheker(int vote_can)
{
int top = Integer.parseInt(dn[0][1]);//비교대상을 후보 1 기준으로 설정
//각 후보 득표수 더하기
if(vote_can == 1)
{
dn[0][1] = Integer.toString(Integer.parseInt(dn[0][1])+1);
}
else if(vote_can == 2)
{
dn[1][1] = Integer.toString(Integer.parseInt(dn[1][1])+1);
}
else if(vote_can == 3)
{
dn[2][1] = Integer.toString(Integer.parseInt(dn[2][1])+1);
}
else if(vote_can == 4)
{
dn[3][1] = Integer.toString(Integer.parseInt(dn[3][1])+1);
}
else
{
}
//후보들 비교해서 1등 뽑기 (후보 2명까지)
for (int i=0; i< dn.length-1; i++) //배열 길이만큼 반복
{
if (top<Integer.valueOf(dn[i][1]))//각 후보와 1번후보를 비교
{
top = Integer.valueOf(dn[i][1]);//top에 가장 득표가 많은 후보 넣기
}
}
duece = "";//후보 들어가는 부분 초기화
for (int i=0; i < dn.length-1; i++) //배열 길이만큼 반복
{
if (top == Integer.valueOf(dn[i][1])) //가장득표가 많은 후보와 다른후보가 같다면
{
duece += dn[i][0];//듀스에 표가 같은 후보 2명이상 반환
}
}
return duece;//듀스값 반환
}
public static void main(String[] args) {
int vote_can = 0;//사용자 투표 번호
String vote_chk;//투표 할지 안할지
Scanner sc = new Scanner(System.in);//문자
Scanner sd = new Scanner(System.in);//정수
vote_counter_1_3 vc = new vote_counter_1_3();
System.out.println("[2022 대선 투표 프로그램]");
System.out.println();
while(true)
{
System.out.printf("안녕하세요. 투표하시겠습니까? (y/n) ");
vote_chk = sc.nextLine();
if(vote_chk.equals("y"))
{
System.out.println();
System.out.println("1.이재명 2.윤석열 3.심상정 4.안철수");
System.out.printf("투표하실 후보를 선택해주세요 : ");
vote_can = sd.nextInt();//1,2,3,4 중에 한값 받음
vc.vote_cheker(vote_can);//위에 선언한 함수 사용
System.out.println();
System.out.printf("현재 1등후보는%s 입니다\n", vc.duece);
System.out.printf("이재명 [%s]표 || 윤석열 [%s]표 || 심상정 [%s]표 || 안철수 [%s]표\n",dn[0][1],dn[1][1],dn[2][1],dn[3][1]);
System.out.println();
}
else
{
break;
}
}
System.out.printf("최종 당선인은%s 입니다.\n",vc.duece);
System.out.println("안녕히가십쇼.");
}
}
실행 결과는 다음과 같이 나온다.
[2022 대선 투표 프로그램]
안녕하세요. 투표하시겠습니까? (y/n) y
1.이재명 2.윤석열 3.심상정 4.안철수
투표하실 후보를 선택해주세요 : 1
현재 1등후보는 이재명 입니다
이재명 [1]표 || 윤석열 [0]표 || 심상정 [0]표 || 안철수 [0]표
안녕하세요. 투표하시겠습니까? (y/n) y
1.이재명 2.윤석열 3.심상정 4.안철수
투표하실 후보를 선택해주세요 : 2
현재 1등후보는 이재명 윤석열 입니다
이재명 [1]표 || 윤석열 [1]표 || 심상정 [0]표 || 안철수 [0]표
안녕하세요. 투표하시겠습니까? (y/n) y
1.이재명 2.윤석열 3.심상정 4.안철수
투표하실 후보를 선택해주세요 : 3
현재 1등후보는 이재명 윤석열 심상정 입니다
이재명 [1]표 || 윤석열 [1]표 || 심상정 [1]표 || 안철수 [0]표
안녕하세요. 투표하시겠습니까? (y/n) y
1.이재명 2.윤석열 3.심상정 4.안철수
투표하실 후보를 선택해주세요 : 4
현재 1등후보는 이재명 윤석열 심상정 안철수 입니다
이재명 [1]표 || 윤석열 [1]표 || 심상정 [1]표 || 안철수 [1]표
안녕하세요. 투표하시겠습니까? (y/n) y
1.이재명 2.윤석열 3.심상정 4.안철수
투표하실 후보를 선택해주세요 : 2
현재 1등후보는 윤석열 입니다
이재명 [1]표 || 윤석열 [2]표 || 심상정 [1]표 || 안철수 [1]표
안녕하세요. 투표하시겠습니까? (y/n) n
최종 당선인은 윤석열 입니다.
안녕히가십쇼.
duece로 동률을 뽑아내기 위해서는 top값을 위해 한번, 동률을 위해 한번, 총 두번의 반복문을 돌려 나온 값을 duece에 담는다.