티스토리 뷰
이것이 자바다 1권 6장 확인문제.
- 다음은 키보드로부터 계좌정보를 입력받아서, 계좌를 관리하는 프로그램입니다. 실행 결과를 보고, 알맞게 BankApplication 클래스의 메소드를 작성해보세요.
1. getter/setter/toString
package com.self;
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;
}
@Override
public String toString() {
return ano + " " + owner + " " + balance + '\n';
}
}
2. BankApplication Class
package com.self;
import java.util.Scanner;
public class BankApplication {
private static Account[] accountArray = new Account[100];
private static Scanner sc = new Scanner(System.in);
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.println("선택 > ");
int selectNo = sc.nextInt();
if (selectNo == 1) {
createAccount();
} else if (selectNo == 2) {
accountList();
} else if (selectNo == 3) {
deposit();
} else if (selectNo == 4) {
withdraw();
} else if (selectNo == 5) {
run = false;
}
}
System.out.println("프로그램 종료");
}
private static void circlePrintln01() {
System.out.println("-------------");
System.out.println("계좌 생성");
System.out.println("-------------");
}
private static void circlePrintln02() {
System.out.println("-------------");
System.out.println("계좌 목록");
System.out.println("-------------");
}
private static void circlePrintln03() {
System.out.println("-------------");
System.out.println("예금");
System.out.println("-------------");
}
private static void circlePrintln04() {
System.out.println("-------------");
System.out.println("출금");
System.out.println("-------------");
}
// 계좌 생성하기
private static void createAccount() {
circlePrintln01();
System.out.println("계좌번호(000-000형식) : ");
String accountNum = sc.next();
System.out.println("계좌주 : ");
String accountOwner = sc.next();
System.out.println("초기 입금액 : ");
int accountBal = sc.nextInt();
Account newAccount = new Account(accountNum, accountOwner, accountBal);
for (int i = 0; i < accountArray.length; i++) {
if (accountArray[i] == null) {
accountArray[i] = newAccount;
System.out.println("결과 : 계좌가 생성되었습니다.");
break;
}
}
}
// 계좌목록 보기
private static void accountList() {
circlePrintln02();
for (int i = 0; i < accountArray.length; i++) {
Account account = accountArray[i];
if (accountArray[i] != null) {
System.out.println(account.toString());
}
}
}
// 예금하기
private static void deposit() {
circlePrintln03();
System.out.println("계좌 번호(000-000형식) : ");
String accountNum = sc.next();
System.out.println("예금액 : ");
int accountBal = sc.nextInt();
Account account = findAccount(accountNum);
if (account == null) {
System.out.println("계좌가 존재하지 않습니다.");
return;
}
if (!account.getAno().equals(accountNum)) {
System.out.println("계좌번호를 잘못 입력하셨습니다.");
return;
}
account.setBalance(account.getBalance() + accountBal);
System.out.println("예금이 성공되었습니다.");
}
// 출금하기
private static void withdraw() {
circlePrintln04();
System.out.println("계좌번호(000-000형식) : ");
String accountNum = sc.next();
System.out.println("출금액 : ");
int accountBal = sc.nextInt();
Account account = findAccount(accountNum);
if (account == null) {
System.out.println("계좌가 존재하지 않습니다.");
return;
}
if (!account.getAno().equals(accountNum)) {
System.out.println("계좌번호를 잘못 입력하셨습니다.");
return;
}
if (account.getBalance() == 0 || account.getBalance() < accountBal || account.getBalance() - accountBal < 0) {
System.out.println("잔액이 부족합니다.");
return;
}
account.setBalance(account.getBalance() - accountBal);
System.out.println("출금이 성공되었습니다.");
}
private static Account findAccount(String ano) {
Account account = null;
for (int i = 0; i < accountArray.length; i++) {
if (accountArray[i] != null) {
String accountNum = accountArray[i].getAno();
if (accountNum.equals(ano)) {
account = accountArray[i];
break;
}
}
}
return account;
}
}
'☕️JAVA' 카테고리의 다른 글
이것이 자바다 1권 8장 확인문제 풀이 (0) | 2019.11.26 |
---|---|
이것이 자바다 1권 8장 인터페이스 TIL 정리 - 2 (0) | 2019.11.25 |
이것이 자바다 1권 8장 인터페이스 TIL 정리 - 1 (0) | 2019.11.25 |
[JAVA] 클래스(Class)관련 TIL 정리 1 (1) | 2019.11.12 |
[JAVA] 구구단 예제 풀어보기 (0) | 2019.09.16 |
댓글