2008년 여름 자바 교육받을 때 coding 했던 단순 Banking 프로그램이닷 ㅎㅎ
최근에 Spring Framework 교육받다가 예전에 저장해 두었던 폴더에서 파일 발견...
반가운 마음에 블로그로 가져와 파묻히지 않도록 ㅋㅋ
import java.util.*;
import java.io.*;
import javax.swing.*;
class Value{
int balance[] = new int[10]; // balance[numberofaccounts]
int account_array[] = new int[10]; // 계좌번호
int secret_array[] = new int[10]; // 비밀번호
int numberofaccounts=0; // 등록된 계좌 넘버링
int secret_num = 1;
int bank_account = 1;
//////////////////////////////////////////////////////////////////////////////
public int Checkanexception(String x) {
int ss = -1003;
try {
int y = Integer.parseInt(x);
ss = y;
} catch (Exception e) {
System.out.println("잘못 입력하였습니다.");
return ss;
}
return ss;
} // endline of Checkanexception
//////////////////////////////////////////////////////////////////////////////
public int Finalbalance(int x) {
balance[numberofaccounts] = balance[numberofaccounts] + (x);
return balance[numberofaccounts];
} // endline of Finalbalance
//////////////////////////////////////////////////////////////////////////////
public int Transfer_account(){
int checkingt;
int acct=0;
int passingt=0;
int acctt=0;
do {
System.out.println("이체할 계좌 번호를 입력하시오");
Scanner account = new Scanner(System.in);
int transfer_account = Checkanexception(account.next());
checkingt = transfer_account;
for(acct=0; acct<10; acct++){
if (this.account_array[acct] == transfer_account){
passingt = -1;
acctt=acct;
break;}
} // for 문 종료;
System.out.println("확인 3");
if( acct == 10 )
System.out.println("잘못입력했습니다. 이체할 계좌 번호를 다시 입력하시오 ");
System.out.println("확인 2");
} while (passingt != -1);
return acctt;
}
/////////////////////////////////////////////////////////////////////////////
public int IDCheck() {
int checking = 0;
int accx = 0;
int passing=0;
System.out.println("계좌 번호를 입력하시오");
do {
Scanner account = new Scanner(System.in);
int input_account = Checkanexception(account.next());
System.out.println("확인 1");
checking = input_account;
for(accx=0; accx<10; ){
if (this.account_array[accx] == input_account){
passing = this.account_array[accx];
break;}
accx++;} // for 문 종료;
System.out.println("확인 1.5");
if( accx == 10 )
System.out.println("잘못입력했습니다. 계좌 번호를 다시 입력하시오 ");
System.out.println("확인 2");
} while (passing != checking);
int secnum=0;
int escape=0;
do{
System.out.println("비밀번호를 입력하시오");
Scanner secret = new Scanner(System.in);
int input_secret = Checkanexception(secret.next());
checking = input_secret;
if (this.secret_array[accx] != input_secret){
System.out.println("잘못입력했습니다. ");
System.out.println("비밀번호 입력 오류 " + (secnum+1) + " 회차입니다.");
System.out.println("비밀번호 입력 제한 횟수 " + (7-(secnum+1)) + " 회 남았습니다.");
secnum++;}
if (this.secret_array[accx] == input_secret)
escape=-10;
// if 문 종료
}while(escape!=-10); // 내측 do 문 종료;
if(this.secret_array[accx] == checking)
System.out.println("현재 계좌 " + this.account_array[accx] +" 의 잔고는 " + balance[accx] + " 원 입니다.");
return accx;
} // endline of IDCheck
//////////////////////////////////////////////////////////////////////////////
public void Menu() {
System.out.println("=============================");
System.out.println(" 1. 출금");
System.out.println(" 2. 입금");
System.out.println(" 3. 이체");
System.out.println(" 4. 종료");
System.out.println("=============================");
System.out.print(" 은행 업무를 선택하시오 : _");
} // endline of Menu
} // endline of class Value
/////////////////////////////////////////////////////////////////////////////
/////////////////////////// main ///////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
public class Banking extends Value implements Runnable {
public static void main(String args[]) throws InterruptedException {
Value value_final = new Value();
int end = 0;
int aaa = 0;
int accountnumbering=0;
do{
int input_account=-1003;
int input_secret =-1003;
System.out.println("생성할 계좌 번호를 입력하시오. 숫자만 가능.");
do{
Scanner account = new Scanner(System.in);
input_account = value_final.Checkanexception(account.next());
}while(input_account == -1003);
System.out.println(input_account);
value_final.account_array[accountnumbering] = input_account;
System.out.println("생성할 비밀 번호를 입력하시오 8자리 이내 및 숫자만 가능.");
do{
Scanner secret = new Scanner(System.in);
input_secret = value_final.Checkanexception(secret.next());
}while( input_secret == -1003);
value_final.secret_array[accountnumbering] = input_secret;
System.out.println((accountnumbering+1) +" 번째 계좌 "+ value_final.account_array[accountnumbering] +" 이 생성되었습니다.");
value_final.balance[accountnumbering] = 100000; // 계좌 에 100000원을 기본으로 입금시킴
accountnumbering += 1;
System.out.println(" 축하합니다. 계좌 만든 보너스로 100000 원을 넣어 드렸습니다.");
System.out.println("계좌를 더 생성하시겠습니까 yes 1 no 0");
Scanner addaccount = new Scanner(System.in);
int addacc = value_final.Checkanexception(addaccount.next());
if(addacc==0)
aaa = -1;
}while(aaa != -1);
System.out.println("계좌 생성을 종료합니다.");
System.out.println("등록된 계좌의 개수는 " + accountnumbering +" 개 입니다.");
for (int accy=0; accy<accountnumbering; accy++)
System.out.println("계좌번호 "+ value_final.account_array[accy] + " 비밀번호 " + value_final.secret_array[accy] );
for(int bb=0; bb<2; bb++)
System.out.println();
System.out.println("은행 업무를 보러 오셨군요 !");
do { // 새로운 고객 접속
accountnumbering = value_final.IDCheck(); // 고객정보에 접근하기 위해서 지정
do { // 전체메뉴의 실행 반복
value_final.Menu();
int sel, deposit_money = 0, draw_money = 0;
Scanner s = new Scanner(System.in);
sel = s.nextInt();
System.out.println(sel);
switch (sel){
case 1:
Scanner money1;
do {
System.out.println("출금할 금액을 입력하시오");
money1 = new Scanner(System.in);
draw_money = value_final.Checkanexception(money1.next());
if (value_final.balance[accountnumbering] < draw_money) {
System.out.println("잔액이 부족합니다");
System.out.println("현재 잔액은 " + value_final.balance[accountnumbering] + " 원 입니다");
} // endline of if condition
} while (draw_money == -1003 | value_final.balance[accountnumbering] < draw_money);
System.out.println("출금할 금액은 " + draw_money + " 원 입니다 ");
System.out.println(draw_money + " 원이 인출되었습니다 ");
value_final.Finalbalance(-(draw_money));
System.out.println("인출 후 잔액은 " + value_final.balance[accountnumbering] + " 원 입니다");
break; // case1 의 break
case 2:
Scanner money2;
do {
System.out.println("입금할 금액을 입력하시오");
money2 = new Scanner(System.in);
deposit_money = value_final.Checkanexception(money2.next());
} while (deposit_money == -1003);
System.out.println("입금할 금액은 " + deposit_money + " 원 입니다 ");
System.out.println(deposit_money + " 원이 입금되었습니다 ");
value_final.Finalbalance(deposit_money);
System.out.println("입금후 잔액은 " + value_final.balance[accountnumbering] + " 원 입니다");
break; // case2 의 break
case 3:
int checking_original_account;
System.out.println("현재 계좌의 잔액은 " + value_final.balance[accountnumbering] + " 원 입니다");
checking_original_account=accountnumbering;
accountnumbering = value_final.Transfer_account(); // 계좌 입력 및 존재 여부 확인 메서드
System.out.println("이체하실 계좌 번호는 " + value_final.account_array[accountnumbering] +" 입니다.");
System.out.println("이체할 금액을 입력하시오");
Scanner transfer = new Scanner(System.in);
int transfer_money = value_final.Checkanexception(transfer.next());
value_final.balance[checking_original_account] = value_final.balance[checking_original_account] - transfer_money;
value_final.balance[accountnumbering]+=transfer_money; // 계좌이체
System.out.println(" 이체 계좌 " + value_final.account_array[accountnumbering]);
System.out.println(" 이체 금액 " + transfer_money);
System.out.println(" 이체 계좌의 잔고 " + value_final.balance[accountnumbering]);
System.out.println(" 인출후 귀하의 계좌 잔고 " + value_final.balance[checking_original_account]);
accountnumbering=checking_original_account; // 본인 계좌로 다시 넘어 옴
break; // case 3 의 break
case 4:
System.out.println("종료합니다");
end = -1;
break;
default:
System.out.println("잘못 입력하였습니다. 다시 입력하세요");
} // endline of case switch
System.out.println("3 초 후 메뉴로 이동합니다");
Banking b = new Banking();
Thread t = new Thread(b);
t.start();
t.join();// 대기
} while (end != -1); // do - while 전체 실행 반복
for(int bb=0; bb<100; bb++)
System.out.println();
} while(end != 7777);
} // endline of void main
public void run() {
try {
Thread.sleep(2200); //
} catch (Exception e) {
}
} // endline of run()
} // end of class Banking
'Spring' 카테고리의 다른 글
Spring cglib (0) | 2011.09.12 |
---|---|
Spring fw AOP and Paypal soap (0) | 2011.09.04 |
자바 - Log4j 사용법 ( 설명 자세히 잘 되어 있음 ) (0) | 2011.08.26 |
Spring 과 iBatis 연동 (0) | 2011.08.23 |
스프링 First class 2010 .07 .03 (토) (0) | 2011.08.23 |