본문 바로가기

JAVA/Mission

중간Test01_Bank

package kosta.bank;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class BankSystem {
	private MyBank myBank;		//MyBank 
	
	public BankSystem(){	
		myBank = new MyBank();
		showMenu();
	}
	
	public void showMenu(){		//show method 만들기
		String  menu = null;			
		String id = null;
		String name = null;
		long balance = 0;
		
		do{
		
			System.out.println("****메뉴를 입력하세요****");
			System.out.println("1. 고객등록");
			System.out.println("2. 고객보기(1명)");
			System.out.println("3. 고객전체보기");
			System.out.println("4. 고객예금출금");
			System.out.println("5. 고객예금입금");
			System.out.println("***끝내기***");
			System.out.println("***************");
			System.out.print(">>");			
			
			menu = readFromKeyboard();			
		
			if(menu.equals("1")){				//고객등록
				
				System.out.print("ID를 입력하세요: ");
				id = readFromKeyboard();
				
				System.out.print("이름을 입력하세요: ");
				name = readFromKeyboard();
				
				System.out.print("잔고를 입력하세요: ");
				balance = Long.parseLong(readFromKeyboard());
				
				myBank.addCustomer(id, name, balance);
				
			}else if(menu.equals("2")){
				System.out.print("고객ID를 입력하세요: ");
				id = readFromKeyboard();
				Customer cust = myBank.getCustomer(id);
				if(cust == null){
					System.out.println("등록된 고객이 아닙니다.");
				}else {
				System.out.println(cust.getID() +":" + cust.getName() + ": "
						+ cust.getAccount().getBalance());	
				}
			}else if(menu.equals("3")){
				
				Customer[] allCust = myBank.getAllCustomers();
				
				for(int i=0;i<allCust.length;i++){
					System.out.println(allCust[i].getID() + ": " +
													allCust[i].getName() + " :" +
													allCust[i].getAccount().getBalance());
				}
				
			}else if(menu.equals("4")){
				
				System.out.print("고객의 ID를 입력하세요.: ");
				id = readFromKeyboard();
				
				Customer cust = myBank.getCustomer(id);
				
				if(cust == null){
					System.out.println("등록된 고객이 아닙니다.");
				
				}else{
					System.out.print("출금액을 입력하세요: ");
					balance = Long.parseLong(readFromKeyboard());
					
					if(cust.getAccount().withdraw(balance)){
						System.out.println("정상적으로 출금되었습니다.");
						System.out.println("출금후 잔고는 :" + cust.getAccount().getBalance());
					}else{
						System.out.println("잔고가 부족합니다.");
					}
				}
				
			}else if(menu.equals("5")) {
				System.out.print("고객의 ID를 입력하세요.: ");
				id = readFromKeyboard();
				
				Customer cust = myBank.getCustomer(id);
				
				if(cust == null){
					System.out.println("등록된 고객이 아닙니다.");
				
				}else{
					System.out.print("입금액을 입력하세요: ");
					balance = Long.parseLong(readFromKeyboard());
					cust.getAccount().deposit(balance);
					System.out.println("입금후 잔고는 :" + cust.getAccount().getBalance());
				}
				
			}
			
			
		}while(!menu.equals("q"));
	}
	


	public String readFromKeyboard(){
		String input = null;
		try{
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			input = br.readLine();
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
		return input;
	}
	
	public static void main(String[] args) {
		BankSystem bank = new BankSystem();

	}

}










package kosta.bank;

public class Customer {
	private String ID;
	private String name;
	private Account account;
	public Customer() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Customer(String ID, String name, long balance) {
		super();
		this.ID = ID;
		this.name = name;
		this.account=new Account(ID, balance);
		
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Account getAccount() {
		return account;
	}
	public void setAccount(Account account) {
		this.account = account;
	}
	public String getID() {
		return ID;
	}
	
	
}
package kosta.bank;

public class MyBank {
	private Customer[] customers;
	private int customersNum;
	
	public MyBank() {
		super();
		customers=new Customer[10];
		customersNum=0;
	}

	public void addCustomer(String ID, String name, long balance) {
		customers[customersNum++]=new Customer(ID,name,balance);
		
	}
	public Customer getCustomer(String ID)  {
		int index=-1;
		for (int i = 0; i < customersNum; i++) {
			if(customers[i].getID().equals(ID)) {
				index=i;
			}
		}
		if(index!=-1) {
			return customers[index];
		}else {
			return null;
		}
	}
	public Customer[] getAllCustomers() {
		Customer[] Allcustomers=new Customer[customersNum]; 
		for (int i = 0; i < customersNum; i++) {
			Allcustomers[i]=this.customers[i];
		}
		return Allcustomers;
	}
	
	public int getCustomersNum() {
		return customersNum;
	}
	
	
}
package kosta.bank;

public class Account {
	private String ID;
	private long balance;
	public Account() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Account(String ID, long balance) {
		super();
		ID = ID;
		this.balance = balance;
	}
	public String getID() {
		return ID;
	}
	public long getBalance() {
		return balance;
	}
	
	public void deposit(long amount) {
		this.balance+=amount;
	}
	public boolean withdraw(long amount) {
		if(balance>=amount) {
			balance-=amount;
			return true;
		}else {
			return false;
		}
	}
}