# 10. Java 9일차(230825~230827) [국비교육]

brand_mins·2023년 8월 25일

Java

목록 보기
10/47

1. 사용자 메뉴 만들기

  • 따로 예제 구글링하여 만들어보기

(1) 예제

  • 전체 메뉴 선택하는 프로그램 구현하기
package com.human.ex;
import java.util.Scanner;
public class JavaStart00 {
	public static void main(String[] args) {
		String inputString = "9";
		while(!inputString.equals("0")) {
			System.out.println("전체메뉴: 1. 1번메뉴 | 2. 2번메뉴 | 3. 3번메뉴 | 0. 종료");
			Scanner scanner = new Scanner(System.in);
			inputString = scanner.nextLine();
			if(inputString.equals("1")) {
				System.out.println("1번 메뉴");
			} else if(inputString.equals("2")) {
				System.out.println("2번 메뉴");
			} else if(inputString.equals("3")) {
				System.out.println("3번 메뉴");
			} else if(inputString.equals("0")) {
				System.out.println("메뉴 종료");
			} else {
				System.out.println("잘못 입력");
				}
			}
	   System.out.println("프로그램 종료");
	}
}
  • switch문으로 바꿔서 사용 가능
package com.human.ex;
import java.util.Scanner;
public class JavaStart00 {
	public static void main(String[] args) {
		int inputString = 9;
		while(!(inputString == 0)) {
			System.out.println("전체메뉴: 1. 1번메뉴 | 2. 2번메뉴 | 3. 3번메뉴 | 0. 종료");
			Scanner scanner = new Scanner(System.in);
			inputString = scanner.nextInt();
			switch(inputString) {
			case 1:
				System.out.println("1번 메뉴");
				break;
			case 2:
				System.out.println("2번 메뉴");
				break;
			case 3:
				System.out.println("3번 메뉴");
				break;
			case 0:
				System.out.println("종료");
				break;
			default:
				System.out.println("잘못 입력");
				break;
			}
		}
	}
}
  • 학생 50명 출석부 만들기
//1. 50명의 학생의 출석정보를 저장할 수 있는 변수 선언
		//boolean배열로 50개 선언하고 true이면 출석, false이면 결석
		boolean student[] = new boolean[50];
		//2. 기본값 true설정.
		for(int i=0; i<student.length; i++) {
			student[i] = true;
		}
		//3. 메뉴제작: 1. 전체 출석사항 2. 결석자 추가 3. 출석자 추가 6. 프로그램 종료
		// a) 반복 입력 변수 선언 b) while문 제작 c) 메뉴 출력 d) 사용자 입력 e) 메뉴처리 switch문 제작		
		String input="";
		while(!input.equals("6")) {
			System.out.println("1. 출석사항 | 2. 결석자 추가 | 3. 출석자 추가 | 6. 프로그램 종료");
			Scanner scanner = new Scanner(System.in);
			input = scanner.nextLine();
			switch(input) {
			case "1":
				System.out.println("출석사항");
				for(int i=1; i<student.length; i++) {
					String str = i + "번 학생의 출석 사항은 ";
					if(student[i]==true) {
						str = str+"출석입니다.";
					} else {
						str = str+"결석입니다.";
					}
					System.out.println(str);
					}
					break;
			case "2":
				System.out.println("결석한 학생번호를 입력해주세요 0~49");
				int i = Integer.parseInt(scanner.nextLine());
				student[i] = false;
				break;
			case "3":
				System.out.println("출석한 학생번호를 입력해주세요 0~49");
				i = Integer.parseInt(scanner.nextLine());
				student[i] = true;
				break;				
			case "6":
				System.out.println("프로그램을 종료하였습니다.");
				break;			
			default:
				System.out.println("입력을 잘못하였습니다");
			}
		}
  • 은행 입출금 관련 프로그램 구현하기
package com.human.test2;
import java.util.Scanner;
public class Account {
	public static void main(String[] args) {
		boolean run = true;	
		int balance = 0;
		Scanner scanner = new Scanner(System.in);		
		while(run) {
			System.out.println("---------------------------------");
			System.out.println("1. 입금 | 2. 출금 | 3. 조회 | 0. 종료");
			System.out.println("---------------------------------");
			System.out.print("선택> ");		
			int menuNum = Integer.parseInt(scanner.nextLine());
			switch(menuNum) {
			case 1:
				System.out.print("입금액> ");
				balance += Integer.parseInt(scanner.nextLine());
				break;
			case 2:
				System.out.print("출금액> ");
				balance -= Integer.parseInt(scanner.nextLine());
				break;
			case 3:
				System.out.print("조회> ");
				System.out.println(balance);
				break;
			case 0:
				System.out.println("프로그램 종료");
				break;
			default:
				System.out.println("잘못 입력하였습니다");
				break;
			}
		}
	}
}
  • 환전 프로그램 구현
String exchange = "";		
		Scanner scanner = new Scanner(System.in);		
		while(!exchange.equals("2")) {
			System.out.println("--------------------------------------------------");
			System.out.print("안녕하세요, oo은행입니다. 환전하시겠습니까?(1. 예 / 2. 아니오)> ");
			exchange = scanner.nextLine();
			if(exchange.equals("1")) {
				System.out.print("환전할 금액을 입력해주세요> ");
				Scanner change = new Scanner(System.in);
				int moneyChange = Integer.parseInt(change.nextLine());
				int change1000;
				int change500;
				int change100;
				int change50;
				int change10;
				System.out.println("--------------------------------------------------");								
				if(moneyChange%10 == 0 && moneyChange>=10) {
					change1000 = moneyChange/1000;
					change500 = (moneyChange%1000)/500;
					change100 = (moneyChange%500)/100;
					change50 = (moneyChange%100) /50;
					change10 = (moneyChange%50) /10;
					System.out.printf("천원짜리 %d장, 오백원짜리 %d개, 100원짜리 %d개, 50원짜리 %d개, 10원짜리 %d개 환전되었습니다.", change1000, change500, change100, change50, change10);
			} else {
				System.out.println("10원 이하는 입력받지 않는다.");		
			} 
		} else {
			System.out.println("프로그램을 종료합니다. oo은행을 찾아주셔서 감사합니다.");
			}
		}
  • 자판기 프로그램 구현
boolean choice = true;
		String str = "";
		int balance = 0;
		Scanner scanner = new Scanner(System.in);		
		while(choice) {
			System.out.println("-----------------------------------------------------------------------------------");
			System.out.println("1. 사이다: 700원 | 2. 콜라: 500원 | 3. 환타: 300원 | 4. 1000원 투입 | 5. 500원 투입 | 0. 반환");
			System.out.println("-----------------------------------------------------------------------------------");
			System.out.print("선택해주세요> ");		
			int menuNum = Integer.parseInt(scanner.nextLine());
			switch(menuNum) {
			case 1:
				System.out.print("지불할 금액을 입력해주세요> ");
				balance -= Integer.parseInt(scanner.nextLine());
				str = str + "(사이다)";
				System.out.println("사이다를 반환구에서 찾아주세요.");		
				break;
			case 2:
				System.out.print("지불할 금액을 입력해주세요> ");
				balance -= Integer.parseInt(scanner.nextLine());
				str = str + "(콜라)";
				System.out.println("콜라를 반환구에서 찾아주세요.");
				break;
			case 3:
				System.out.print("지불할 금액을 입력해주세요> ");
				balance -= Integer.parseInt(scanner.nextLine());
				str = str + "(환타)";
				System.out.println("환타를 반환구에서 찾아주세요.");
				break;
			case 4:
				System.out.println("1000원 투입합니다");
				balance += 1000;
				break;
			case 5:
				System.out.println("500원 투입합니다");
				balance += 500;
				break;			
			case 0:
				System.out.printf("음료 반환구에 %s이 있음." + "\n", str);
				System.out.println();
				System.out.println("천원짜리: " + (balance/1000) + "장");
				System.out.println("오백원짜리: " + ((balance%1000) / 500) + "개");
				System.out.println("백원짜리: " + ((balance%500) / 100) + "개");
				System.out.println("오십원짜리: " + ((balance%100) / 50) + "개");
				System.out.println("자판기를 이용해주셔서 감사합니다. 다음에 또 이용해주세요.");
				break;
			default:
				System.out.println("잔돈이 부족합니다.");
			}			
		}
  • 369 해답지 만들기
Scanner scanner = new Scanner(System.in);
		System.out.print("시작할 숫자를 입력하세요> ");
		int start = Integer.parseInt(scanner.nextLine());
		System.out.print("종료 숫자를 입력해주세요> ");
		int end = Integer.parseInt(scanner.nextLine());		
		for(int i=start; i<=end; i++) {
			String strNum = Integer.toString(i);
			boolean Answer369 = false;
			for (int j=0; j<strNum.length(); j++) {
				char answer = strNum.charAt(j);
				if(answer == '3' || answer == '6' || answer == '9') {
					Answer369 = true;
					break;
				}
			}			
			if(Answer369) {
				System.out.println("짝");
			} else {
				System.out.println(i);
			}
		}
  • 랜덤연산 퀴즈 구현
Scanner scanner = new Scanner(System.in);
		Random random = new Random();	
		int level = 1;		
		while(level<=4) {
			System.out.println("------------레벨 " + level + "------------");
			char operator;
			if(level == 1) {
				operator = '+';
			} else if(level == 2) {
				operator = '-';
			} else if(level == 3) {
				operator = '*';
			} else {
				operator = '/';
			}
			//랜덤한 두 수 선언
			int num1 = random.nextInt(90)+10; // 10이상 99이하
			int num2 = random.nextInt(90)+10;			
			// 문제 생성
			System.out.println(num1 + " " + operator + " " + num2 + " = ");
			int userAnswer = Integer.parseInt(scanner.nextLine());			
			// 정답 확인
			int correctAnswer;
			if(operator == '+') {
				correctAnswer = num1 + num2;
			} else if(operator == '-') {
				correctAnswer = num1 - num2;
			} else if(operator == '*') {
				correctAnswer = num1 * num2;
			} else {
				correctAnswer = num1 / num2;
			}			
			if(userAnswer == correctAnswer) {
				System.out.println("정답입니다.");
				level++;
			} else {
				System.out.println("오답입니다. 정답은 " + correctAnswer + "입니다.");
				level = 1; // 레벨 초기화
			}				
		}
  • 에버랜드 티켓 구매 프로그램 구현
String input = "";
		int balance = 0;
		int week[] = {46000,39000,36000};
		int afternoon[] = {38000,32000,29000};
		int winterEvening[] = {20000,17000,16000};
		int twice[] = {74000,62000,58000};
		Scanner scanner = new Scanner(System.in);		
		while(!input.equals("0")) {
			System.out.println("-------------------------------------------------------------------------------------------");
			System.out.println("[티켓구매] 1. 주간권(1일권) | 2. 오후권(오후3시~) | 3. 윈터야간권(오후5시~) | 4. 2일권 | 5. 결제 | 0. 종료");
			System.out.println("-------------------------------------------------------------------------------------------");
			System.out.print("구매하실 티켓을 선택해주세요> ");
			input = scanner.nextLine();
			if(input.equals("1")) {
				System.out.println("------------------------------------------");
				System.out.println("주간권(1일권) 선택하였습니다.");
				System.out.println("1. 대인 | 2. 청소년 | 3. 소인/경로 ");
				System.out.print("연령대 기준을 선택해주세요> ");
				int ticketNum1 = Integer.parseInt(scanner.nextLine());
				switch(ticketNum1) {
				case 1:
					System.out.printf("대인기준 %d원 입니다"+"\n", week[0]);
					balance += week[0];
					break;
				case 2:
					System.out.printf("청소년 기준 %d원 입니다"+"\n", week[1]);
					balance += week[1];
					break;
				case 3:
					System.out.printf("소인/경로 기준 %d원 입니다"+"\n", week[2]);
					balance += week[2];
					break;
				default:
				System.out.println("잘못 입력하였습니다.");
				}
			} else if(input.equals("2")) {
				System.out.println("------------------------------------------");
				System.out.println("오후권(오후3시~) 선택하였습니다.");
				System.out.println("1. 대인 | 2. 청소년 | 3. 소인/경로 ");
				System.out.print("연령대 기준을 선택해주세요> ");
				int ticketNum1 = Integer.parseInt(scanner.nextLine());
				switch(ticketNum1) {
				case 1:
					System.out.printf("대인기준 %d원 입니다"+"\n", afternoon[0]);
					balance += afternoon[0];
					break;
				case 2:
					System.out.printf("청소년 기준 %d원 입니다"+"\n", afternoon[1]);
					balance += afternoon[1];
					break;
				case 3:
					System.out.printf("소인/경로 기준 %d원 입니다"+"\n", afternoon[2]);
					balance += afternoon[2];
					break;
				default:
				System.out.println("잘못 입력하였습니다.");
				}				
			}else if(input.equals("3")) {
				System.out.println("------------------------------------------");
				System.out.println("윈터야간권(오후5시~) 선택하였습니다.");
				System.out.println("1. 대인 | 2. 청소년 | 3. 소인/경로 ");
				System.out.print("연령대 기준을 선택해주세요> ");
				int ticketNum1 = Integer.parseInt(scanner.nextLine());
				switch(ticketNum1) {
				case 1:
					System.out.printf("대인기준 %d원 입니다"+"\n", winterEvening[0]);
					balance += winterEvening[0];
					break;
				case 2:
					System.out.printf("청소년 기준 %d원 입니다"+"\n", winterEvening[1]);
					balance += winterEvening[1];
					break;
				case 3:
					System.out.printf("소인/경로 기준 %d원 입니다"+"\n", winterEvening[2]);
					balance += winterEvening[2];
					break;
				default:
				System.out.println("잘못 입력하였습니다.");
				}
			} else if(input.equals("4")) {
				System.out.println("------------------------------------------");
				System.out.println("2일권 선택하였습니다.");
				System.out.println("1. 대인 | 2. 청소년 | 3. 소인/경로 ");
				System.out.print("연령대 기준을 선택해주세요> ");
				int ticketNum1 = Integer.parseInt(scanner.nextLine());
				switch(ticketNum1) {
				case 1:
					System.out.printf("대인기준 %d원 입니다"+"\n", twice[0]);
					balance += twice[0];
					break;
				case 2:
					System.out.printf("청소년 기준 %d원 입니다"+"\n", twice[1]);
					balance += twice[1];
					break;
				case 3:
					System.out.printf("소인/경로 기준 %d원 입니다"+"\n", twice[2]);
					balance += twice[2];
					break;
				default:
				System.out.println("잘못 입력하였습니다.");
				}
			} else if(input.equals("5")) {
				System.out.println("------------------------------------------");
				System.out.println("결제가 실행됩니다.");
				System.out.printf("티켓 금액은 총 %d원입니다"+"\n", balance);
				System.out.println("1. 결제 | 2. 취소");
				System.out.print("결제하시겠습니까?> ");
				int pay = Integer.parseInt(scanner.nextLine());
				switch(pay) {
				case 1:
					System.out.println("결제가 완료되었습니다. 즐거운 시간 보내세요");
					break;
				case 2:
					System.out.println("해당한 티켓 선택이 취소되었습니다.");
					break;
				default:
					System.out.println("잘못 입력하였습니다.");
					break;
				}
			} else {
				System.out.println("----------------------------------------");
				System.out.println("저희 에버랜드를 찾아주셔서 감사합니다. 안녕히 가세요.");
				System.out.println("----------------------------------------");
				break;
			}
		}
  • 숫자 추측 프로그램 구현
Scanner scanner = new Scanner(System.in);
		Random random = new Random();		
		int minNum = 1;
		int maxNum = 20;
		int targetNum = random.nextInt(maxNum - minNum + 1) + minNum;
		int tryCount = 0;		
		System.out.println("1부터 20 사이의 숫자를 맞춰보세요. 성공시 상품이 주어집니다.");
		while(true) {
			System.out.print("추측한 숫자를 입력해주세요");
			int userGuess = Integer.parseInt(scanner.nextLine());
			tryCount++;
			if(userGuess < minNum || userGuess > maxNum) {
				System.out.println("숫자 범위가 벗어났습니다. 1부터 20사이의 숫자를 입력하세요");
			} else if(userGuess < targetNum) {
				System.out.println("더 큰 숫자를 입력해주세요.");
			} else if(userGuess > targetNum) {
				System.out.println("더 작은 숫자를 입력해주세요.");
			} else {
				System.out.println("정답입니다! " + tryCount + "번째 응답에서 맞추셨습니다. 상품은 내일 지급될 예정입니다." );
				 break;
			}
		}
profile
IT 개발자가 되기 위한 기록

0개의 댓글