본문 바로가기
공부/과제.

JAVA 문제풀이 16

by 햄이; 2021. 5. 7.

 

Q1. 랜덤 함수를 통해 0~25까지의 값을 랜덤으로 받아서 알파벳 문자 만들기 함수화

(A=65 ~ Z=90이다.) (단, Q가 나오는 순간 반복문이 종료되고, 현재까지 받아진 문자열을 출력할 것) 

 

package Day12;

import java.util.Random;

/*
 * Q.27
 * Q.5번 문제를 최소 2개 이상의 함수화로 구현해주세요
 * */
public class Question1 {

	public static int ran() {
		Random r = new Random();
		int num = r.nextInt(24);
		
		return num;
	}
	
	public static void make() {
		char i = 'A';
		String language = "";
		while(true) {
		int num = ran();
		num += (int)i;
		char temp = (char)num;
		
		if(temp == 'Q')
			break;
		language += temp;
		}
		System.out.println(language);
		
		
	}
	
	public static void main(String[] args) {
		make();
	}
}

 

 

위 실행 결과

 

Q2. 비행기 예약 프로그램 함수화

 

package Day12;

import java.util.Scanner;

/*
 * Q,28
 * Q18문제를 최소 3개 이상의 함수화로 구현을 해주세요
 * 비행기 예약 프로그램
 * */
public class Question3 {

	//티켓팅
	public static int[][] ticketing(int[][] seat) {
		
		
		Scanner sc = new Scanner(System.in);
		int cnt = 0;
		for(int i=0; i<8; i++) {
			for(int j=0; j<2; j++) {
				if(seat[i][j]==0) {
					cnt++;
				}
			}
		}

		if(cnt != 0) {
			System.out.println("예매하실 좌석을 선택해주세요 ex) 0~7줄 0~1좌석");
			System.out.println("0~7사이의 줄을 선택해주세요 ");
			int userRow = sc.nextInt();
			System.out.println("0~1사이의 좌석을 선택해주세요.");
			int userCol = sc.nextInt();

			if(userRow>=0 && userRow<=7 && userCol>=0 && userCol<=1) {

				if(seat[userRow][userCol] == 0) {
					seat[userRow][userCol] = 1;
					System.out.println("감사합니다. 좌석이 예매 완료되었습니다.");
					System.out.println("처음 화면으로 돌아갑니다.");
					System.out.println();
				}else {
					System.out.println("죄송합니다. 이미 예약된 좌석입니다.");
					System.out.println("처음 화면으로 돌아갑니다.");
					System.out.println();
				}
			}else {
				System.out.println("잘못된 좌석 선택입니다. 처음 화면으로 돌아갑니다.");
				System.out.println();
			}
		}else {
			System.out.println("모든 좌석의 예매가 끝났습니다.처음 화면으로 돌아갑니다.");
			System.out.println();
		}
		return seat;
	}
	
	//조회
	public static void select(int[][] seat) {
		System.out.println("빈 좌석 조회 화면입니다. 현재 빈 좌석은");
		for(int i=0; i<8; i++) {
			for(int j=0; j<2; j++ ) {
				if(seat[i][j] == 0) {
					System.out.print(i+" "+j+"  ");
				}
			}
		}
		System.out.println("좌석입니다.");
		System.out.println("초기화면으로 돌아갑니다.");
		System.out.println();
	}
	
	public static void proStart() {
		
		Scanner sc = new Scanner(System.in);
		int [][] seat = new int[8][2];
		
		while(true) {
			System.out.println("비행기 예약 프로그램입니다. 원하시는 메뉴를 선택해주세요.");
			System.out.println("1. 좌석 예매  | 2. 빈 좌석 조회  | 3. 프로그램 종료 ");
			int choice = sc.nextInt();
			
			if(choice == 1) {
				seat = ticketing(seat);
			}else if(choice == 2) {
				select(seat);
			}else if(choice == 3) {
				System.out.println("프로그램을 종료합니다.");
				break;
			}else {
				System.out.println("잘못된 메뉴 입력입니다. 초기화면으로 돌아갑니다.");
				System.out.println();
			}
			
		}
		
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		proStart();
	}

}

 

 

위 실행 결과

 

기존에 풀었던 문제들을

함수화 시키기

'공부 > 과제.' 카테고리의 다른 글

JAVA 문제풀이 18  (0) 2021.07.02
JAVA 문제풀이 17  (0) 2021.07.02
JAVA 문제풀이 15  (0) 2021.05.07
JAVA 문제풀이 14  (0) 2021.05.07
JAVA 문제풀이 13 배열 낚시 게임  (0) 2021.04.28

댓글