1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | private static Account[] accountArray = new Account[100]; private static Scanner scanner = new Scanner(System.in); /* 1. 성명/나이/지역 을 입력받아 저장/출력 2. 가입 조건 - 나이 : 15세 이상 , 70미만 - 성별 : 남자(1,3) , 여자(2,4) 저장한다. - 주소가 0으로 입력되면 '외국인'으로 저장 */ int nMoney = 0 , nbalance =0; int nSelectType = 0; boolean bRunCheck = true; String ano =""; // 계좌번호 String owner =""; // 계좌주 int balance = 0; // while(bRunCheck) { System.out.println("[ 계좌 생성 실행결과 ]"); System.out.println("============================================"); System.out.println("1. 계좌생성 | 2.계좌목록 | 3.예금 | 4.출금 | 5.해지 | 6.종료"); System.out.println("--------------------------------------------"); System.out.print("선택>"); nSelectType = scanner.nextInt(); if(nSelectType == 1) { createAccount(); } else if (nSelectType == 2) { // Account List accountList(); } else if (nSelectType == 3) { deposit(); } else if (nSelectType == 4) { withdraw(); } else if (nSelectType == 5) { //삭제 delectAccount(); } else if (nSelectType == 6) break; } | cs |
함수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | private void delectAccount() { //계좌 삭제 System.out.println("----------"); System.out.println("계좌 해지"); System.out.println("----------"); String strCheck ; //2. 계좌번호 while(true) { System.out.println("1. 해지하실 계좌번호를 입력하세요"); System.out.println("(000-000의 형태로 입력하세요)"); System.out.println("계좌해지를 종료하실려면 0를 입력하세요"); strCheck= scanner.next(); if(strCheck.equals("0")) return ; // 계좌 해지를 포기한다. int nCheck = findAccount(strCheck); //accountArray[nCheck] if( nCheck == -1) System.out.println("계좌정보를 다시 확인하세요."); else { if(nCheck == accountArray.length -1){ accountArray[nCheck] = null; return ; // 배열의 마지막을 삭제시, null로 해지 } for(int i = nCheck; i < accountArray.length; i ++) { if(accountArray[i] !=null) { //배열의 마지막은 for문 전에 return으로 나간다. accountArray[i] = accountArray[i+1]; } else return ; // 계좌 해지 완료 } return ; // 혹시 다른 오류로 return이 안되는 케이스가 발생을 대비해서 //for문으로 검사가 완료되고 나면 return 한다/ } } } private void createAccount() { //계좌 생성 System.out.println("---------"); System.out.println("계좌 생성"); System.out.println("---------"); String strAno = ""; String strOwner = ""; int nBalance = 0; System.out.println("계좌번호 : "); strAno = scanner.next(); System.out.println("계좌주 : "); strOwner = scanner.next(); System.out.println("초기금액 : "); nBalance = scanner.nextInt(); int nCheck = findAccount(strAno); if(nCheck == -1) { //중복되면, 생서 for(int i=0; i < accountArray.length; i++) { if(accountArray[i] == null) { accountArray[i] = new Account(strAno ,strOwner, nBalance ); if(accountArray[i+1] == null) { } break; } } } else System.out.println("동일 계좌가 존재한다."); } private void accountList() { //계좌 목록보기 System.out.println("---------"); System.out.println("계좌 리스트"); System.out.println("---------"); System.out.print( "계좌번호\t"); System.out.print( "계좌주\t"); System.out.print( "예금\n"); for(int i=0; i < accountArray.length; i++) { Account account = accountArray[i]; //account에 set으로 변경시 ,accountArray[i]도 변경된다. if(account != null) { System.out.print( accountArray[i].getStrAno() + "\t"); System.out.print( accountArray[i].getStrOwner() + "\t"); System.out.print( accountArray[i].getnBalance() + "\n"); } else break; } } private void withdraw() { //출금 하기 String strAno =""; int nBalance =0; System.out.println("---------"); System.out.println("출금"); System.out.println("---------"); System.out.println("계좌번호 : "); strAno = scanner.next(); System.out.println("출금 : "); nBalance = scanner.nextInt(); int nCheck = findAccount(strAno); if(nCheck == -1) { System.out.println("결과 : 찾는 계좌정보가 없습니다."); return ; } if(nBalance < accountArray[nCheck].getnBalance()) { accountArray[nCheck].setnBalance(accountArray[nCheck].getnBalance() - nBalance); System.out.println("결과 : 출금이 성공되었습니다."); } else System.out.println("결과 : 잔고가 부족합니다."); } private void deposit() { String strAno =""; int nBalance =0; System.out.println("---------"); System.out.println("예금"); System.out.println("---------"); System.out.println("계좌번호 : "); strAno = scanner.next(); System.out.println("예금 : "); nBalance = scanner.nextInt(); int nCheck = findAccount(strAno); if(nCheck == -1) { System.out.println("결과 : 찾는 계좌정보가 없습니다."); return ; } accountArray[nCheck].setnBalance(accountArray[nCheck].getnBalance() + nBalance); System.out.println("결과 : 입금이 성공되었습니다."); } //계좌 정보 찾기 : 못찾으면 -1 private int findAccount(String strAno) { int nRtn = -1; for(int i=0; i < accountArray.length; i++) { if(accountArray[i] != null) { if(accountArray[i].getStrAno().equals(strAno) ) { nRtn = i; break; } } } return nRtn; } | cs |
클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | public class Account { private int nBalance ; private String strAno; private String strOwner; boolean bGender; public Account(String strAno, String strName, int nBalance) { this.strAno = strAno; this.strOwner = strName; this.nBalance = nBalance; } public int getnBalance() { return nBalance; } public void setnBalance(int nBalance) { this.nBalance = nBalance; } public String getStrAno() { return strAno; } public void setStrAno(String strAno) { this.strAno = strAno; } public String getStrOwner() { return strOwner; } public void setStrOwner(String strOwner) { this.strOwner = strOwner; } public boolean isbGender() { return bGender; } public void setbGender(boolean bGender) { this.bGender = bGender; } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | // 상품 가격 : vat를 포함한다. ( vat는 정가의 1.1% 추가 ) Login login = new Login(); Service0829 service = new Service0829(); String id, pwd ; System.out.println("아이디를 입력하세요"); id = scanner.next(); System.out.println("비밀번호를 입력하세요"); pwd = scanner.next(); // if(login.getId().equals(id) && login.getPwd().equals(pwd) ) // System.out.println(id+"님 로그인 성공.1"); // else // System.out.println("로그인 실패.1"); if(!login.getId().equals(id) || !login.getPwd().equals(pwd) ) System.out.println("로그인 실패.2"); else { System.out.println(id+"님 로그인 성공.2"); //등록된 상품의 정보를 보여주고 //구매 가능하게 한다. while(true) { service.getProduct(); System.out.println("\n 구매하실 상품번호를 입력하세요"); int nChoice = scanner.nextInt(); service.setProductPrice(nChoice); System.out.println("계속 구매하시겠습니까?(Y/N)"); String strRunCheck = scanner.next().toUpperCase(); if(strRunCheck.equals("N") ) break; } //구매한 상품 리스트 출력 service.getSelectProduct(); | cs |
클래스
1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class Login { private String id = "admin"; private String pwd = "1234"; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } } | cs |
2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | public class Service0829 { private String[][] product = { {"1" , "냉장고" , "1250000" }, {"2" , "에어컨" , "1600000" }, {"3" , "세탁기" , "850000" }, {"4" , "TV" , "650000" }, {"5" , "청소기" , "1000000" } }; private String[][] selectProduct = new String[100][4]; private int nCnt = 0; public void getProduct() { // System.out.println(" ** 상 품 리 스 트 ** "); System.out.println(" =============================== "); System.out.println(" 번호\t상품명\t상품가격 "); for(int i =0; i<product.length; i++) { for(int j =0; j<product[i].length-1; j++) { System.out.print(" "+product[i][j]+"\t"); } System.out.println(String.format("%,10d", Integer.parseInt(product[i][product[i].length-1] ) )); } System.out.println(" =============================== "); } //구매한 상품을 배열에 저장 public void setProductPrice(int nNum) { // int nSelectNum = nNum - 1; int nPay; nPay = Integer.parseInt(product[nSelectNum][product[nSelectNum].length-1] ); nPay *=1.1; System.out.println(nPay); for(int j =0; j<product[nSelectNum].length; j++) { selectProduct[nCnt][j] = product[nSelectNum][j]; } System.out.println(nCnt); System.out.println(String.format("%10d", nPay )); selectProduct[nCnt][product[nSelectNum].length] = String.valueOf(nPay); nCnt++; } //구매한 상품 리스트 출력 public void getSelectProduct() { // int ntot =0; System.out.println(" ** 상 품 리 스 트 ** "); System.out.println(" =============================== "); System.out.println(" 번호\t상품명\t상품가격\t\t실제상품금액"); for(int i =0; i<nCnt; i++) { for(int j =0; j<selectProduct[i].length-2; j++) { System.out.print(" "+selectProduct[i][j]+"\t"); } System.out.print(String.format("%,10d\t", Integer.parseInt(selectProduct[i][selectProduct[i].length-2] ) )); //System.out.println(selectProduct[i][3]); System.out.println(String.format("%,10d", Integer.parseInt(selectProduct[i][selectProduct[i].length-1] ) )); ntot +=Integer.parseInt(selectProduct[i][selectProduct[i].length-1]); } System.out.println(String.format("\t\t 총 구매 액 : \t%,10d" , ntot)); System.out.println(" =============================== "); } } | cs |
첫댓글 계좌삭제처리를 뒤의 자료를 앞으로 이동처리 하셨군요.
전체적인 프로그램 분석후 편리한 방법들로 처리하면 좋죠. 수고하셨습니다.