본문 바로가기
study/JAVA

이것이 자바다 6장 확인문제 20번

by stilinski 2022. 4. 3.
728x90

문제사진

 

 

 

 

import java.util.Scanner;

public class BankApplication {
	private static Account[] accountArray = new Account[100];
	private static Scanner scanner = new Scanner(System.in);
	
	public static void main(String[] args) {
		boolean run = true;		
		while(run) {
			System.out.println("----------------------------------------------------------");
			System.out.println("1.계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5.종료");
			System.out.println("----------------------------------------------------------");
			System.out.print("선택> ");
			
			int selectNo = scanner.nextInt();
			
			if(selectNo == 1) {
				createAccount();
			} else if(selectNo == 2) {
				accountList();
			} else if(selectNo == 3) {
				deposit();
			} else if(selectNo == 4) {
				withdraw();
			} else if(selectNo == 5) {
				run = false;
			}
		}
		System.out.println("프로그램 종료");
	}
	
	//계좌생성하기
	private static void createAccount() {
		System.out.print("계좌번호 :");
		String ano = scanner.next();
		System.out.print("계좌주 :");
		String owner = scanner.next();
		System.out.print("초기입금금액 :");
		int balance = scanner.nextInt();
		
		Account acc = new Account(ano,owner,balance);
		
		for(int i = 0;i<accountArray.length;i++) {
			if(accountArray[i] == null) {
			accountArray[i] = acc;
			System.out.println("결과: 계좌가 생성되었습니다.");
			break;
		}
		
	}}
	
	//계좌목록보기
	private static void accountList() {
		for(int i = 0;i < accountArray.length;i++) {
			if(accountArray[i]==null) {
				return;
			}
			System.out.println(accountArray[i].getAno() + " " + accountArray[i].getOwner() + " " +accountArray[i].getBalance());
		}
	}
	
	//에금하기
	private static void deposit() {
		
		System.out.print("계좌번호: ");
		String ano  = scanner.next();
		System.out.print("예금액: ");
		int balance = scanner.nextInt();
		
		
		Account acc = findAccount(ano);
		
		if(acc == null) {
			System.out.println("계좌정보 찾을 수 없음");
		}else {
		System.out.println();
		acc.setBalance(acc.getBalance()+balance);
		}
			
	}
	
	//출금하기
	private static void withdraw() {
		System.out.print("계좌번호: ");
		String ano  = scanner.next();
		System.out.print("출금액: ");
		int balance  = scanner.nextInt();
		
		Account acc = findAccount(ano);
		
		if(acc == null) {
			System.out.println("계좌정보 찾을 수 없음");
		}else if(balance > acc.getBalance()) {
			System.out.println("예금보다 더 큰 금액은 출금불가");
		}
		else {
		System.out.println();
		acc.setBalance(acc.getBalance()-balance);
		}
	}	
	
	//Account 배열에서 ano와 동일한 Account 객체 찾기
	private static Account findAccount(String ano) {
		for(int i = 0;i < accountArray.length;i++) {
			if(accountArray[i].getAno().equals(ano)) {
				return accountArray[i];
		}
	}
		return null;
	}
}

앞 문제들은 완전 쉬웠는데

마지막 문제 갑자기 난이도 무엇..?

지금 시간이 없어서 촉박해가지고 충분히 생각도 못하고

인터넷에 올라온 다른 사람 꺼에서 보고 힌트를 얻어서 풀었다 젠장...

다 하고 나니 뿌듯하긴 한데... 완전히 내가 한건 아니라서 찝찝하다.

내일 다시 혼자 처음부터 풀어봐야겠다.

 

확실히 책에 있는 문제들을 풀어보니까 배운 것들 하나하나 아 이럴 때 쓰는 거구나 조금이나마 알 수 있어서 좋은 거 같다.

 

 

 

짜증 나는 건 이것이 자바다 문제 파일들이 뭘 해도 한국어로 인코딩이 안됨..^^ 그거 때문에 49분 날렸다. ㅡㅡ 시간도 없어 죽겠고만. 결국 한국어 깨진 곳은 알아서 타이핑해서 씀. 에효 어쩔 수 없지

 

 

화이팅!~!!

728x90

댓글