본문 바로가기

Spring

Java 연습 2008-1 Banking

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