본문 바로가기
문제를 풀어보자

JAVA) 이것이 자바다 챕터6 확인문제 20번

by 휴일이 2022. 10. 5.

학원에서 쓰는 책

이것이 자바다

//챕터6 클래스 : 확인문제 20번을 풀어보았다

 

 

 

 

먼저 DTO(VO)

package Exclass;

public class Account {
	private String name;
	private String number;
	private int balance;
	
	public Account() {
		super();
	}
	
	public Account(String name, String number, int balance) {
		super();
		this.name = name;
		this.number = number;
		this.balance = balance;
	}
	public Account(int balance) {
		super();
		this.balance += balance;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	public int getBalance() {
		return balance;
	}
	public void setBalance(int balance) {
		this.balance = balance;
	}

	@Override
	public String toString() {
		return "[이름 : " + name + ", 계좌번호 : " + number + ", 예금액 : " + balance + "]";
	}
}

 

 

Service

 

import java.util.Scanner;

public class Member {

	Scanner sc;
	
	private String id;
	private String password;
	private int age;
	private int index;
	
	static final int MIN_VALUE = 0;
	static final int MAX_VALUE = 1000000;
	
	private int balance;
	
	private String name;
	private String number;
	
	private static Account[] a = new Account[100];
	
	
	Member() {
		
	}
	
	Member(String name,String id) {
		this.name = name;
		this.id = id;
	}
	
	public void hello(Scanner sc) {
		
		boolean flag = true;
		int key = 0;
		
		while(flag) {
			System.out.println("==========================================");
			System.out.println("1.계좌생성 2.계좌목록 3.예금 4.출금 5.종료");
			System.out.println("==========================================");
			
			switch(key=sc.nextInt()) {
			case 1: //계좌 생성
				go1(sc);
				break;
			case 2: //계좌 목록
				go2(sc);
				break;
			case 3: //예금
				go3(sc);
				break;
			case 4: //출금
				go4(sc);
				break;
			case 5: //종료
				System.out.println("종료합니다");
				flag=false;
				break;
			}
		}
		
	}
	
	public void go1(Scanner sc) { //계좌생성
		
		System.out.println("계좌 번호");
		number = sc.next();
		System.out.println("계좌주");
		name = sc.next();
		System.out.println("초기 입금액");
		balance = sc.nextInt();
		System.out.println("계좌 생성됨");
		
		a[index] = new Account(name,number,balance);
		index++;
		
		
	}
	
	public void go2(Scanner sc) { //계좌목록
		System.out.println("계좌 목록");
		for(int i=0;i<index;i++) {
			System.out.println(a[i]);
			
		}
	}
	
	public void go3(Scanner sc) { //예금
		int balance = 0;
		System.out.println("예금");
		System.out.println("계좌번호");
		number = sc.next();
		System.out.println("예금액");
		balance = sc.nextInt();
		
		for(int i=0;i<index;i++) {
			if(number.equals(a[i].getNumber())) {
				int b = a[i].getBalance()+balance;
				 a[i].setBalance(b);
			}
		}
	}
	
	public void go4(Scanner sc) {
		int balance = 0;
		System.out.println("예금");
		System.out.println("계좌번호");
		number = sc.next();
		System.out.println("출금액");
		balance = sc.nextInt();
		
		for(int i=0;i<index;i++) {
			if(number.equals(a[i].getNumber())) {
				int b = a[i].getBalance()-balance;
				 a[i].setBalance(b);
			}
		}
	}
	
	
	public void setBalance(int balance) {
		if(MIN_VALUE<=balance && balance<=MAX_VALUE) {
			this.balance = balance;
		}
	}
}

 

 

 

메인

		Member m = new Member();
		Scanner sc = new Scanner(System.in);
		m.hello(sc); //문제 20번

 

다른 문제까지 같은 클래스에 풀어서

메인은 너무 더러워서 생략 ㅠㅠ

 

 

 

결과

 

 

 

객체 배열을 이용해야 하는 것이 좀 난해했는데

풀다보니 쇽쇽 지나갔다ㅎㅎ

문제 푸는 거 재미있다!

728x90