JavaベースのBack-END開発者と情報処理業界技術者コース12日目まとめ
33832 ワード
カテゴリ
授業実習
例1。次の要件を満たす銀行プログラムを作成します。
계좌생성
・입금
・출금
・계좌이체
・잔액확인
・고객리스트
・・종료
・계좌생성
機能のみが最初に反映される.입금
羅保有잔액 확인
/고객 리스트
/종료
・계좌 정보
고객 번호
市、고객 이름
自動付与(0、1、2…最大99)private int clientNum; // 고객 번호
private String clientName; // 고객 이름
private String accountNum; // 고객 계좌번호
private int balance; // 계좌 잔액
public int getClientNum() {
return clientNum;
}
public void setClientNum(int clientNum) {
this.clientNum = clientNum;
}
public String getClientName() {
return clientName;
}
public void setClientName(String clientName) {
this.clientName = clientName;
}
public String getAccountNum() {
return accountNum;
}
public void setAccountNum(String accountNum) {
this.accountNum = accountNum;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
Bank Manager(アカウントを管理するクラス)Scanner sc = new Scanner(System.in);
// 널널하게 BankInfo 객체 100개짜리 배열 선언
private BankInfo[] bankList = new BankInfo[100];
private BankInfo account;
// 고객 번호를 자동으로 지정해 줄 변수
private int count = 0;
// 메뉴 보여줄 메소드
public void showMenu() {
System.out.println("=========================================================================");
System.out.println("| 1. 계좌생성 | 2. 입금 | 3. 출금 | 4. 계좌이체 | 5. 잔액 | 6. 고객리스트 | 7. 종료 |");
System.out.println("=========================================================================");
System.out.print("메뉴 선택 : ");
}
// 메뉴 숫자 입력받을 때 사용할 메소드
public int inputNum() {
int input = sc.nextInt();
return input;
}
// 계좌 생성 메소드
public void createAccount() {
// 현재 계좌를 최대한으로 담을 수 있는 배열 크기가 100이므로
if (count < 100) {
account = new BankInfo();
System.out.print("이름 입력 : ");
String clientName = sc.next();
account.setClientName(clientName);
System.out.print("계좌번호 입력 : ");
String accountNum = sc.next();
account.setAccountNum(accountNum);
System.out.print("초기 잔고 입력 : ");
int balance = sc.nextInt();
account.setBalance(balance);
// 고객 번호 부여
account.setClientNum(count);
// 고객 계좌정보 배열에 고객 정보 대입
bankList[count] = account;
// 고객 번호 1만큼 증가
++count;
System.out.println("계좌가 생성되었습니다.");
}
}
// 고객 리스트 출력 메소드
public void clientList() {
// 고객 배열을 순환하며,
for (int i = 0; i < bankList.length; i++) {
// 고객 배열의 요소 (고객 정보) 가 있다면 (!= null)
if (bankList[i] != null) {
System.out.print("고객 번호 : " + bankList[i].getClientNum());
System.out.print("| 고객 이름 : " + bankList[i].getClientName());
System.out.print("| 계좌 번호 : " + bankList[i].getAccountNum());
System.out.println("| 현재 잔액 : " + bankList[i].getBalance());
}
}
}
// 잔액 조회 기능 메소드
public void balanceCheck() {
System.out.println("잔액 확인 메뉴입니다.");
System.out.print("계좌번호 입력 : ");
// 검색할 계좌번호를 받아온다
String accountNum = sc.next();
// 받아온 계좌번호를 인덱스 검색 기능 메소드에 넘기고 index를 받아온다.
int index = searchIndex(accountNum);
// 만약 해당하는 계좌 번호가 존재한다면,
if (index > -1) {
// 해당하는 계좌의 잔액을 출력해준다.
System.out.println("현재 잔액 : " + bankList[index].getBalance());
// 찾는 계좌가 존재하지 않는다면,
} else {
// 계좌를 찾을 수 없다는 멘트를 출력.
System.out.println("계좌를 찾을 수 없습니다.");
}
}
// 인덱스 검색 기능 메소드
public int searchIndex(String accountNum) {
// 계좌를 찾지 못했을 경우, 이 값 그대로 반환
int index = -1;
for (int i = 0; i < bankList.length; i++) {
// 고객 정보가 존재한다면
if (bankList[i] != null) {
// 매개 변수로 받은 계좌번호 (검색할 번호)가 존재한다면, (배열 내 고객정보 요소와 일치한다면)
if (accountNum.equals(bankList[i].getAccountNum())) {
// 해당 요소의 위치를 index에 저장
index = i;
break;
}
}
}
// index값 반환
return index;
}
// 입금 기능 메소드
public void deposit() {
System.out.println("입금 메뉴입니다.");
System.out.print("계좌번호 입력 : ");
// 계좌번호를 받아오고
String accountNum = sc.next();
// 계좌번호가 있는지 검색
int index = searchIndex(accountNum);
// 해당하는 계좌정보가 존재한다면
if (index > -1) {
System.out.print("입금할 금액 : ");
// 입금할 금액을 입력받고, 해당 계좌의 현재 잔액을 불러온다.
int deposit = sc.nextInt();
int balance = bankList[index].getBalance();
// 그리고 현재 잔액에 입금액을 더해준 다음,
int result = balance + deposit;
// 해당하는 계좌에 합한 금액을 입금한다.
bankList[index].setBalance(result);
// 입금 완료 메시지 출력
System.out.println("입금이 완료되었습니다.");
System.out.println("현재 잔액 : " + bankList[index].getBalance());
// 계좌를 찾지 못한 경우
} else {
System.out.println("계좌를 찾지 못했습니다.");
}
}
BankMain(実際に動作するMainクラス)BankManager bankMgr = new BankManager();
boolean run = true;
while (run) {
bankMgr.showMenu();
int menuSel = bankMgr.inputNum();
switch (menuSel) {
case 1:
// 계좌 생성
bankMgr.createAccount();
break;
case 2:
// 입금 기능
bankMgr.deposit();
break;
case 3:
break;
case 4:
break;
case 5:
// 잔액 확인
bankMgr.balanceCheck();
break;
case 6:
// 고객 리스트 확인
bankMgr.clientList();
break;
case 7:
run = false;
break;
default:
System.out.println("잘못된 선택입니다.");
}
}
System.out.println("종료되었습니다.");
Reference
この問題について(JavaベースのBack-END開発者と情報処理業界技術者コース12日目まとめ), 我々は、より多くの情報をここで見つけました https://velog.io/@crisine/Java기반-Back-End-개발자-정보처리산업기사-과정-강의-12일차-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol