Notice
Recent Posts
Recent Comments
Link
250x250
develope_kkyu
[JAVA] 은행 계좌 만들기 본문
728x90
Account.java
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; // this.ano
}
public void setAno(String ano) {
this.ano = ano;
}
public String getOwner() {
return owner; // this.owner
}
public void setOwner(String owner) {
this.owner = owner;
}
public int getBalance() {
return balance; // this.balance
}
public void setBalance(int balance) {
this.balance = balance;
}
}
BankApplication.java
import java.util.Scanner;
public class BankApplication {
private static Account[] accountArray = new Account[100];
// accountArray 100개의 공간이 있는 배열변수.
// 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.print("선택 > ");
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 createAccount() {
System.out.println("-------");
System.out.println("계좌생성");
System.out.println("-------");
System.out.print("계좌번호: ");
String ano = sc.next();
System.out.print("계좌주: ");
String owner = sc.next();
System.out.print("초기입금액: ");
int balance = sc.nextInt();
int a = 0 ;
Account ac = new Account(ano, owner, balance);
// ac.getAno()
// 입력된 정보를 기반으로 Account 객체 생성
for(a=0;a<accountArray.length;a++) {
// accountArray.length = 100
// accountArray변수에 앞에서 탐색하면서 비어있는 곳에 Account 클래스의 객체를 대입함.
// 대입한 순간 break문으로 반복문 빠져나옴.
// 빠져나올때의 a값이 신규 생성된 계좌가 담긴 위치임.
if(accountArray[a] == null) {
accountArray[a] = ac;
break;
}
}
System.out.printf("%d번째 계좌가 생성되었습니다\n", a+1);
}
private static void accountList() {
System.out.println("-------");
System.out.println("계좌목록");
System.out.println("-------");
// 반복문을 통해서 계좌목록을 가져옴.
// accountArray변수는 Account객체들을 담아놓은 배열변수이므로.
// a번째 계좌번호를 가져오려면.. accountArray[i].getAno()로 처리가능.
for(int a=0; a<accountArray.length; a++) {
if(accountArray[a] == null) {
break;
}
System.out.printf("%s\t%s\t%d\n", accountArray[a].getAno(), accountArray[a].getOwner(), accountArray[a].getBalance());
}
}
private static void deposit() {
System.out.println("-------");
System.out.println("예금");
System.out.println("-------");
System.out.print("계좌번호: ");
String ano = sc.next();
Account ac = findAccount(ano);
// 사용자가 입력한 ano 값을 기반으로 accountArray배열변수에서 위치를 찾음.
System.out.print("예금액: ");
int deposit = sc.nextInt();
int currentBalance = ac.getBalance();
int nextBalance = currentBalance + deposit;
ac.setBalance(nextBalance);
System.out.printf("예금이 성공하였으며 현재 잔고는 %d입니다.\n", nextBalance); //or ac.getBalance()도 가능
}
private static void withdraw(){
System.out.println("-------");
System.out.println("출금");
System.out.println("-------");
System.out.print("계좌번호: ");
String ano = sc.next();
Account ac = findAccount(ano);
System.out.print("출금액: ");
int withdraw = sc.nextInt();
int currentBalance = ac.getBalance();
int nextBalance = currentBalance - withdraw;
ac.setBalance(nextBalance);
System.out.printf("출금이 성공하였으며 현재 잔고는 %d입니다.\n", nextBalance); //or ac.getBalance()도 가능
}
private static Account findAccount(String ano) {
int a = 0;
for( a =0; a<accountArray.length; a++) {
if(ano.equals(accountArray[a].getAno())) {
// 사용자가 입력한 ano와 배열변수에 담긴 객체의 ano를 비교해서 같으면 break;
// break 시점의 a위치에 담긴 accountArray를 리턴
break;
}
}
return accountArray[a];
}
}
728x90
'JAVA > Java SE' 카테고리의 다른 글
[JAVA] 현재 시간 (0) | 2022.12.21 |
---|---|
[JAVA] 은행 계좌 만들기(비밀번호 추가) (0) | 2022.12.21 |
[JAVA] 두 개의 주사위 눈의 합 (0) | 2022.12.21 |
[JAVA] 1부터 100까지 더하기 (0) | 2022.12.21 |
[JAVA] 점수로 장학생 여부 판별 (0) | 2022.12.21 |