오늘 과제도 재밌어서 올려본다.
조건은 아래와 같다;
-값을 입력받을 때 scanner는 사용하지 말 것.
-기본출력문은
1.계좌생성
2.계좌목록
3.예금
4.출금
5.종료
-계좌번호는 자동발행되게 할 것. Bank-0001, Bank-0002 식으로.
-계좌는 여러개 생성 가능
-계좌를 선택하여 입/출금 가능
-계좌 잔액 부족 시 출금이 안되게 할 것
그림을 그려보자. 그간의 좋은 친구였던 scanner를 사용할 수 없으니 오늘 배운 BufferReader를 사용해야할 것이고,
계좌, 즉 account 클래스의 필드 중 하나인 계좌번호는 글자와 숫자 조합이니 string으로 선언해줘야겠으나 생성할 때마다 숫자가 하나씩 업되어야하기에 DecimalFormat을 사용해야할 것이다.
이외엔 어려울건 없다.
계좌생성 메소드에서 DecimalFormat을 통해 계좌번호가 Bank-0000의 형태로 저장되도록 설정해주었다.
계좌 홀더는 멜론머스크씨로 통일했다.
메소드에서 받는 매개변수로는 계좌번호에 들어갈 숫자를 넣어주었는데, 이 숫자는:
메인클래스에서 초기값 1로 설정되고 계좌생성 메소드가 돌 때마다 1씩 올라가는 식으로 세팅했다.
입출금 메소드가 다소 난잡하다.
메소드 호출 후 입금 메소드에서 계좌번호를 입력받아야하는데 Bank-0000 형태로 입력 받기엔 사용자가 귀찮을 수 있으니 네자리 숫자만 입력하여 검색할 수 있게 구성했다. 그렇다보니 더 난잡해진 것.
약간의 고민이 필요했던 부분은, for문을 통해 입력 받은 번호를 저장된 계좌번호들과 조회하는 과정에서, 조회되는 계좌번호가 없을 때 해당 계좌가 존재하지 않는다고 안내문이 출력되게 하는 부분이다. 예를 들어 0005번의 계좌를 검색하면 1,2,3,4번 계좌 순으로 입력된 값과 일치하는지 확인이 되기 때문에 if문 밖에 아무 생각없이 안내문을 출력시키면 "일치하는 계좌가 조회되지 않습니다"라는 안내문이 네번이나 출력되고나서 0005번의 계좌에 입금을 할 수 있게된다.
그렇기에 cnt 정수를 하나 0으로 선언해주고, 39라인 for문 바깥쪽인 45라인 else에 cnt를 1씩 업 시키는 구조를 만들었다. 이렇게하면 입력된 계좌번호가 저장된 계좌번호 0001부터 일치 여부를 확인하여 불일치할 때마다 cnt가 1씩 올라가고, cnt가 저장된 총 계좌번호의 수와 같아지면 그 때 조회불가 안내문을 출력되게 하는 것이다.
'Programming Language > Java' 카테고리의 다른 글
[Java] 클래스, 메소드 개념 정리 (0) | 2022.10.13 |
---|---|
[Java] 연습과제 - 음악플레이리스트 구성하기 (0) | 2022.10.12 |
[Java] Stream 간단 활용 (0) | 2022.10.04 |
[Java] 람다식 Rambda Expressions (0) | 2022.10.04 |
[Java] 연습과제 - 학생성적관리프로그램 구성하기 (0) | 2022.10.04 |