반응형
▶메인
package may.five;
public class BankMain {
public static void main(String[] args) {
BankService bs = new BankService();
bs.init();
}
}
▶모델
package may.five;
public class Bank {
private String accountNo;
private String name;
// 소지금액
private long money;
// 출금
private long withdraw;
// 예금
private long deposit;
@Override
public String toString() {
return "Lima Bank{" +
"계좌번호='" + accountNo + '\'' +
", 계좌주='" + name + '\'' +
", 현재금액=" + money +
'}';
}
public String getAccountNo() {
return accountNo;
}
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getMoney() {
return money;
}
public void setMoney(long money) {
this.money = money;
}
public long getWithdraw() {
return withdraw;
}
public void setWithdraw(long withdraw) {
this.withdraw = withdraw;
}
public long getDeposit() {
return deposit;
}
public void setDeposit(long deposit) {
this.deposit = deposit;
}
}
▶기능
package may.five;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class BankService {
private boolean run = true;
private Scanner scanner = new Scanner(System.in);
private List<Bank> list = new ArrayList<>();
private int checkDeposit = 0;
public void init() {
while (run) {
menu();
}
}
private void menu() {
System.out.println("==== Lima Bank ====");
System.out.println("1. 계좌 생성");
System.out.println("2. 계좌 목록");
System.out.println("3. 예금");
System.out.println("4. 출금");
System.out.println("5. 종료");
System.out.println("===================");
String input = scanner.next();
doSwitch(input);
}
private void doSwitch(String input) {
switch (input) {
case "1":
createAccount();
break;
case "2":
findAll();
break;
case "3":
doDeposit();
break;
case "4":
doWithdraw();
break;
case "5":
quit();
break;
}
}
private void createAccount() {
Bank bank = new Bank();
System.out.println("==== 계좌 생성 ====");
System.out.println("계좌 번호: ");
bank.setAccountNo(scanner.next());
System.out.println("계좌 주:");
bank.setName(scanner.next());
System.out.println("초기 입금액: ");
bank.setMoney(scanner.nextLong());
list.add(bank);
System.out.println("계좌가 생성 되었습니다.");
}
private void findAll() {
System.out.println("==== 계좌 목록 ====");
list.forEach(System.out::println);
System.out.println("=================");
}
private void doDeposit() {
System.out.println("==== 입금 =====");
System.out.println("계좌 번호를 입력해 주세요.");
String account = scanner.next();
list.forEach(r -> {
if (r.getAccountNo().equals(account)) {
System.out.println("얼마를 입금 하시겠습니까?");
r.setDeposit(scanner.nextLong());
r.setMoney(r.getMoney() + r.getDeposit());
checkDeposit = 1;
System.out.println("입금이 완료 되었습니다.");
}
});
if (checkDeposit == 0) {
System.out.println("계좌를 찾을 수 없습니다.");
System.out.println("메뉴로 돌아갑니다.");
}
checkDeposit = 0;
}
private void doWithdraw() {
System.out.println("==== 출금 =====");
System.out.println("계좌 번호를 입력해 주세요.");
String account = scanner.next();
list.forEach(r -> {
if (r.getAccountNo().equals(account)) {
System.out.println("얼마를 출금 하시겠습니까?");
System.out.println("현재 " + r.getName() + "님의 소지금액: " + r.getMoney());
r.setWithdraw(scanner.nextLong());
if (r.getWithdraw() > r.getMoney()) {
System.out.println("***********************************");
System.out.println("소지하신 금액보다 출금 금액이 더 많습니다.");
System.out.println("출금하실 수 없습니다.");
System.out.println("메뉴로 돌아갑니다.");
System.out.println("***********************************");
} else {
r.setMoney(r.getMoney() - r.getWithdraw());
System.out.println("출금이 완료 되었습니다.");
}
checkDeposit = 1;
}
});
if (checkDeposit == 0) {
System.out.println("계좌를 찾을 수 없습니다.");
System.out.println("메뉴로 돌아갑니다.");
}
checkDeposit = 0;
}
private void quit() {
run = false;
System.out.println("시스템을 종료합니다.");
}
}
반응형
'Study > JAVA' 카테고리의 다른 글
[20210530] JAVA 스터디 (0) | 2021.05.30 |
---|---|
[20210530] 자바 기초 코딩 실습 (0) | 2021.05.30 |
[20210521] Java 스터디 (0) | 2021.05.21 |
[20210516] JAVA 스터디 (0) | 2021.05.16 |
[20210516] 자바 기초 코딩 실습 (0) | 2021.05.16 |
댓글