ClientManagement.java - 계좌 정보와 입출금내역 출력 함수
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@Override
public String toString() {
if(super.getIsDeposit()){ // getIsDeposit() 입금 여부 판별
return "이름: " + super.getName() + "|" + "은행명: " + super.getBankName() + "|"+ "계좌번호: " + super.getAccountNum().replaceAll(LAST_10_CHAR_PATTERN, "**********")+"|" +
"입금액: " + super.getMoney() + "|" + "잔고: " + super.getBalance()+ "| " + super.getTransactionDate();
} else if (super.getIsWithdrawal()) { // getIsWithrawal() 출금 여부 판별
return "이름: " + super.getName() + "|" + "은행명: " + super.getBankName() + "|"+ "계좌번호: " + super.getAccountNum().replaceAll(LAST_10_CHAR_PATTERN, "**********")+"|" +
"출금액: " + super.getMoney() + "|" + "잔고: " + super.getBalance()+ "| " + super.getTransactionDate();
}
else{
return null;
}
}
|
cs |
BankAccount.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
|
static List<ClientManagement> transactionHistory = new ArrayList<>(); // 거래 내역을 저장할 객체
private void clientManagement() { // 계좌 관리
Iterator<ClientManagement> ite = transactionHistory.iterator();
while (ite.hasNext()) {
System.out.println(ite.next() + " ");
}
}
private void accountDeposit() { // 예금
sc.nextLine();
String account = getStrInput("계좌 번호를 입력하세요. :");
String tradeDate;
int money = 0; // 입금액
int newBalance = 0; // 입금액이 더해질 새로운 잔고
boolean isDeposit = false;
boolean isAccountExist;
for (int i = 0; i < bankusers.size(); i++) {
if (account.equals(bankusers.get(i).getAccountNum())) { // 입력값과 기존 계좌번호가 동일한지 판별
money = getNumInput("입금액 입력 :");
newBalance = Integer.parseInt(bankusers.get(i).getBalance()) + money; // Integer.parseInt(String s) 문자열을 정수 값으로 변환 후
// 입금 금액 더해 줌
bankusers.get(i).setTransactionDate(DateTimeFormatter.ofPattern("yyyy년MM월dd일 HH시mm분").format(LocalDateTime.now()));
bankusers.get(i).setMoney(money);
bankusers.get(i).setBalance(String.valueOf(newBalance)); // String.valueOf() 숫자 값을 문자열로 변환
tradeDate = bankusers.get(i).getTransactionDate();
bankusers.get(i).setTransactionDate(tradeDate);
isDeposit = true;
bankusers.get(i).setIsDeposit(isDeposit); // 입금여부 true
bankusers.get(i).setIsWithdrawal(false); // 출금여부 false
/*계좌 정보와 입금 내역 추가*/
transactionHistory.add(new ClientManagement(bankusers.get(i).getName(), bankusers.get(i).getBankName(),
account, String.valueOf(newBalance), money, tradeDate, bankusers.get(i).getIsDeposit(), bankusers.get(i).getIsWithdrawal()));
System.out.println(money + "원이 입금되었습니다. 현재 잔액: " + bankusers.get(i).getBalance() + "원 입금날짜 :" + bankusers.get(i).getTransactionDate());
break;
} else {
if (i < bankusers.size() - 1) {
continue;
} else {
System.out.println("계좌 번호를 확인하세요.");
}
}
}
}
private void accountWithdrewal() { // 출금
sc.nextLine();
String account = getStrInput("계좌 번호를 입력 :");
String tradeDate;
int money = 0;
int newBalance = 0;
for (int i = 0; i < bankusers.size(); i++) {
if (account.equals(bankusers.get(i).getAccountNum())) { // 입력값과 기존 계좌번호가 동일한지 판별
money = getNumInput("출금액 입력 :");
if (Integer.parseInt(bankusers.get(i).getBalance()) > money){
newBalance = Integer.parseInt(bankusers.get(i).getBalance()) - money; // Integer.parseInt(String s) 문자열을 정수 값으로 변환 후
// 입금 금액 차감
bankusers.get(i).setTransactionDate(DateTimeFormatter.ofPattern("yyyy년MM월dd일 HH시mm분").format(LocalDateTime.now()));
bankusers.get(i).setMoney(money);
bankusers.get(i).setBalance(String.valueOf(newBalance)); // String.valueOf() 숫자 값을 문자열로 변환
tradeDate = bankusers.get(i).getTransactionDate();
bankusers.get(i).setTransactionDate(tradeDate);
bankusers.get(i).setIsDeposit(false); // 입금여부 false
bankusers.get(i).setIsWithdrawal(true); // 출금여부 true
/*계좌 정보와 출금 내역 추가*/
transactionHistory.add(new ClientManagement(bankusers.get(i).getName(), bankusers.get(i).getBankName(),
account, String.valueOf(newBalance), money, tradeDate, bankusers.get(i).getIsDeposit(), bankusers.get(i).getIsWithdrawal()));
System.out.println(money + "원이 출금되었습니다. 현재 잔액: " + bankusers.get(i).getBalance() + "원 입금날짜 :" + bankusers.get(i).getTransactionDate());
break;
}else{
System.out.println("잔액이 부족합니다. 출금 가능액 :" + bankusers.get(i).getBalance() + "원");
}
} else {
if (i < bankusers.size() - 1) {
continue;
} else {
System.out.println("계좌 번호를 확인하세요.");
}
}
}
}
|
cs |
입출금 시에 입출금 여부를 설정하고 거래 내역을 ClientMangement 객체인 transactionHistory 리스트에 추가한다.

출력 화면
'JAVA' 카테고리의 다른 글
| [알고리즘 Lv.1] 달리기 경주(HashMap을 아니?, 깊은 복사) (0) | 2023.04.19 |
|---|---|
| 2022.12.01 인터페이스, 람다, 스트림, Optional (0) | 2022.12.01 |
| 2022.11.24 은행 관리 시스템 입, 출금 기능 구현 (0) | 2022.11.24 |
| 2022.11.23 MemoList Class (0) | 2022.11.23 |
| 2022.11.07 TIL 객체지향, 오버라이딩, 오버로딩 (0) | 2022.11.07 |