본문 바로가기

IT/연습문제

클래스 연습문제 풀어보기(계좌관리 프로그램)

반응형

문제

 

키보드로부터 계좌 정보를 입력 받아서 계좌를 관리하는 프로그램을 만들어보기.

BankApplication 클래스의 메소드를 작성할 것.

 

출력 예시

1. 계좌생성

2. 계좌목록 보기

 

3. 예금하기

 

4. 출금하기

 

 

코드 작성

 

Account.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Account {
    private String ano;
    private String owner;
    private int balance;
    
    public Account (String ano, String owner, int balance) {
        this.ano = ano;
        this.owner = owner;
        this.balance = balance;
    }
 
    public String getAno() {return ano;}
    public void setAno(String ano) {this.ano = ano;}
    public String getOwner() {return owner;}
    public void setOwner(String owner) {this.owner = owner;}
    public int getBalance() {return balance;}
    public void setBalance(int balance) {this.balance = balance;}
    
}
 
 
 
cs

BankApplication.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import java.util.Scanner;
 
public class BankApplication {
    private static Account[] accountArray = new Account[100];
    private static Scanner scanner = new Scanner(System.in);
    static int num = 0;
    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) {
                System.exit(0);
            } else {
                System.out.println("잘못된 값을 입력 하였습니다.");
            }
        }
 
    }
 
    //계좌 생성 하기
    private static void createAccount() {
        String ano = null;
        String owner = null;
        int balance = 0;
        accountArray[num] = new Account(ano, owner, balance);
        System.out.println("------");
        System.out.println("계좌 생성");
        System.out.println("------");
        System.out.print("계좌번호 : ");
        ano = scanner.next();
        accountArray[num].setAno(ano); 
        System.out.print("계좌주 : ");
        owner = scanner.next();
        accountArray[num].setOwner(owner);
        System.out.print("초기입금액 : ");
        balance = scanner.nextInt();
        accountArray[num].setBalance(balance);
        System.out.println("결과 : 계좌가 생성되었습니다.");
 
        num++;
    }
 
    // 계좌 목록 보기
    private static void accountList() {
        for (int i = 0 ; i < num; i++ ) {
            System.out.println(accountArray[i].getAno()+"\t"+accountArray[i].getOwner()+"\t"+accountArray[i].getBalance());
        }
    }
 
    // 예금하기
    private static void deposit() {
        System.out.println("------");
        System.out.println("예금");
        System.out.println("------");
        System.out.print("계좌번호 : ");
        String ano = scanner.next();
        System.out.print("예금액 : ");
        findAccount(ano).setBalance(findAccount(ano).getBalance() + scanner.nextInt());
        System.out.println("결과 : 예금이 성공되었습니다.");
    }
    
    // 출금하기
    private static void withdraw() {
        System.out.println("------");
        System.out.println("출금");
        System.out.println("------");
        System.out.println("계좌번호  : ");
        String ano = scanner.next();
        System.out.print("출금액 : ");
        int remain = findAccount(ano).getBalance() - scanner.nextInt();
        if (remain < 0) {
            System.out.println("결과 : 출금 가능액을 초과하였습니다.");
        } else {
            findAccount(ano).setBalance(remain);
            System.out.println("결과 : 출금이 성공되었습니다.");
        }
        
        
    }
    
    // Account 배열에서 ano와 동일한 Account 객체 찾기
    private static Account findAccount(String ano) {
        for (int i = 0 ; i < num; i++) {
            if (accountArray[i].getAno().equals(ano)) {
                return accountArray[i];
            }
        }
        System.out.println("해당 계좌번호를 찾을 수 없습니다.");
        return null;
    }
}
 
 
 
 
cs

 

반응형