/*
*细节不完善,先存一下
*/
1 package com; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.FileWriter; 8 import java.io.IOException; 9 import java.io.ObjectInputStream; 10 import java.io.ObjectOutputStream; 11 import java.util.HashMap; 12 import java.util.Map; 13 import java.util.Properties; 14 import java.util.Scanner; 15 16 public class BankMain { 17 public static void show() { 18 System.out.println("--------欢迎使用xx银行系统--------"); 19 System.out.println("1、开户"); 20 System.out.println("2、存款"); 21 System.out.println("3、查询"); 22 System.out.println("4、取款"); 23 System.out.println("5、修改管理员密码"); 24 System.out.println("0、退出"); 25 } 26 27 // -- 系统初始化,提供管理员账户密码。 28 static { 29 File f1 = new File(".", "db"); 30 File f2 = new File("./db/", "user.db"); 31 File f3 = new File("./db/", "dat.db"); 32 if (f1.exists() && f2.exists() && f3.exists()) { 33 } else { 34 System.out.println("系统正在初始化..."); 35 try { 36 f1.mkdirs(); 37 f2.createNewFile(); 38 f3.createNewFile(); 39 Properties p = new Properties(); 40 p.load(new FileInputStream(f2)); 41 p.setProperty("name", "admin"); 42 p.setProperty("pass", "123"); 43 p.store(new FileWriter(f2), ""); 44 Thread.sleep(2000); 45 System.out.println("初始化完成,默认的登录账号是:admin,密码:123,请修改密码"); 46 } catch (Exception e) { 47 e.printStackTrace(); 48 } 49 } 50 } 51 52 public static void main(String[] args) { 53 54 // -- 开始操作 55 while (true) { 56 show(); 57 String in01 = Demo.scanner("请输入操作:"); 58 if (in01.equals("1")|| in01.equals("5")) { 59 int num = 0; 60 while (true) { 61 num++; 62 String admin = Demo.scanner("请输入管理员帐号:"); 63 String pass = Demo.scanner("请输入密码:"); 64 if (Demo.checkadmin(admin, pass)) { 65 System.out.println("登陆成功"); 66 if(in01.equals("1")){ 67 System.out.println("欢迎使用开户功能!"); 68 String name = Demo.scanner("请输入姓名:"); 69 String sfz = Demo.scanner("请输入身份证号:"); 70 String mm = Demo.scanner("请输入密码:"); 71 System.out.println("请输入存款金额"); 72 Scanner in = new Scanner(System.in); 73 int money =in.nextInt(); 74 Account a = new Account(name, sfz, mm, money); 75 Map<String, Account> map = Demo.read(); 76 map.put(a.getCard(), a); 77 Demo.save(map); 78 System.out.println("您的卡号为:" + a.getCard()); 79 break; 80 }else{ 81 System.out.println("进入修改密码页面!"); 82 String passnew = Demo.scanner("请输入新密码:"); 83 try { 84 Properties p = new Properties(); 85 p.load(new FileInputStream("./db/user.db")); 86 p.setProperty("name", "admin"); 87 p.setProperty("pass", passnew); 88 p.store(new FileWriter("./db/user.db"), ""); 89 System.out.println("修改密码成功,新密码为:"+passnew); 90 } catch (IOException e) { 91 e.printStackTrace(); 92 } 93 94 break; 95 } 96 } else { 97 System.out.println("密码错误,请重新输入!"); 98 if (num >= 3) { 99 System.out.println("密码输入错误3次,系统退出!"); 100 System.exit(0); 101 } 102 } 103 } 104 } else if (in01.equals("2") || in01.equals("3") || in01.equals("4") ) { 105 int numuser = 0; 106 while (true) { 107 numuser++; 108 System.out.println("请登录:"); 109 String zh = Demo.scanner("请输入帐号:"); 110 String mm = Demo.scanner("请输入密码"); 111 Map<String, Account> sys = Demo.read(); 112 Account aa = sys.get(zh); 113 if (aa != null) { 114 if (mm.equals(aa.getMm())) { 115 System.out.println("登陆成功"); 116 if (in01.equals("2")) { 117 System.out.println("进入存款页面!"); 118 System.out.println("请输入存款金额:"); 119 Scanner in = new Scanner(System.in); 120 int moneyset = in.nextInt(); 121 int money = aa.getMoney(); 122 money = moneyset + money; 123 String nameset = aa.getName(); 124 String sfzset = aa.getSfz(); 125 String mmset = aa.getMm(); 126 Account b = new Account(nameset,sfzset,mmset,money); 127 sys.put(zh, b); 128 Demo.save(sys); 129 System.out.println("成功存入"+moneyset+"块钱!"); 130 break; 131 } else if (in01.equals("3")) { 132 System.out.println("进入查询页面!"); 133 Account.show(zh); 134 135 break; 136 } else { 137 System.out.println("进入取款页面!"); 138 System.out.println("请输入取款金额:"); 139 Scanner in = new Scanner(System.in); 140 int moneyput = in.nextInt(); 141 int money = aa.getMoney(); 142 money = money - moneyput; 143 String nameset = aa.getName(); 144 String sfzset = aa.getSfz(); 145 String mmset = aa.getMm(); 146 Account b = new Account(nameset,sfzset,mmset,money); 147 sys.put(zh, b); 148 Demo.save(sys); 149 System.out.println("成功取出"+moneyput+"块钱!"); 150 break; 151 } 152 } else { 153 System.out.println("密码输入错误!"); 154 if (numuser >= 3) { 155 System.out.println("密码输入错误3次,系统退出!"); 156 System.exit(0); 157 } 158 } 159 } else { 160 System.out.println("卡号错误,请重新输入!!!!"); 161 } 162 } 163 } else if (in01.equals("0")) { 164 System.out.println("谢谢使用,系统结束!"); 165 System.exit(0); 166 } else { 167 System.out.println("输入错误,请重新输入!"); 168 } 169 } 170 } 171 } 172 173 174 package com; 175 176 import java.io.Serializable; 177 import java.util.HashMap; 178 import java.util.Map; 179 import java.util.Random; 180 181 public class Account implements Serializable { 182 private String name; 183 private String sfz; 184 private String mm; 185 private String card; 186 private int money; 187 188 public String getName() { 189 return name; 190 } 191 192 public void setName(String name) { 193 this.name = name; 194 } 195 196 public String getSfz() { 197 return sfz; 198 } 199 200 public void setSfz(String sfz) { 201 this.sfz = sfz; 202 } 203 204 public String getMm() { 205 return mm; 206 } 207 208 public void setMm(String mm) { 209 this.mm = mm; 210 } 211 212 public String getCard() { 213 return card; 214 } 215 216 public void setCard(String card) { 217 this.card = card; 218 } 219 220 public int getMoney() { 221 return money; 222 } 223 224 public void setMoney(int money) { 225 this.money = money; 226 } 227 228 public Account(String name, String sfz, String mm,int money) { 229 super(); 230 this.name = name; 231 this.sfz = sfz; 232 this.mm = mm; 233 this.money = money; 234 Random r = new Random(); 235 int cardnum = r.nextInt(89999)+10000; 236 this.card = cardnum+""; 237 238 } 239 public Account() { 240 super(); 241 // TODO Auto-generated constructor stub 242 } 243 244 public static void show(String zhz) { 245 Map<String,Account> sys = Demo.read(); 246 Account a = sys.get(zhz); 247 System.out.println("您的姓名为:"+a.getName()); 248 System.out.println("您的帐号为:"+zhz); 249 System.out.println("您的密码为:"+a.getMm()); 250 System.out.println("您的余额为:"+a.getMoney()+"元"); 251 } 252 253 } 254 255 256 package com; 257 258 import java.io.FileInputStream; 259 import java.io.FileNotFoundException; 260 import java.io.FileOutputStream; 261 import java.io.IOException; 262 import java.io.ObjectInputStream; 263 import java.io.ObjectOutputStream; 264 import java.util.HashMap; 265 import java.util.Map; 266 import java.util.Properties; 267 import java.util.Random; 268 import java.util.Scanner; 269 270 public class Demo { 271 272 public static String scanner(String string) { 273 Scanner in = new Scanner(System.in); 274 System.out.println(string); 275 String inputs = in.next(); 276 return inputs; 277 } 278 279 280 281 public static boolean checkadmin(String admin, String pass) { 282 boolean flag = false; 283 try { 284 Properties p = new Properties(); 285 p.load(new FileInputStream("./db/user.db")); 286 if (admin.equals(p.getProperty("name")) && pass.equals(p.getProperty("pass"))) { 287 flag = true; 288 } 289 } catch (Exception e) { 290 291 e.printStackTrace(); 292 } 293 return flag; 294 } 295 296 public static boolean check(String zh, String mm) { 297 boolean flag = false; 298 try { 299 Map<String, Account> sys = new HashMap<String, Account>(); 300 FileInputStream fis = new FileInputStream("./db/dat.db"); 301 ObjectInputStream ois = new ObjectInputStream(fis); 302 sys = (Map<String, Account>) ois.readObject(); 303 ois.close(); 304 Account aa1 = sys.get(zh); 305 if (sys.get(zh) != null && mm.equals(aa1.getMm())) { 306 flag = true; 307 } 308 } catch (Exception e) { 309 310 e.printStackTrace(); 311 } 312 return flag; 313 } 314 315 public static Map<String, Account> read() { 316 Map<String, Account> sys = new HashMap<String, Account>(); 317 318 try { 319 FileInputStream fis = new FileInputStream("./db/dat.db"); 320 ObjectInputStream ois = new ObjectInputStream(fis); 321 sys = (HashMap<String, Account>) ois.readObject(); 322 ois.close(); 323 } catch (Exception e) { 324 325 } 326 327 return sys; 328 } 329 330 public static void save(Map<String, Account> sys) { 331 try { 332 333 FileOutputStream fos = new FileOutputStream("./db/dat.db"); 334 ObjectOutputStream oos = new ObjectOutputStream(fos); 335 oos.writeObject(sys); 336 oos.close(); 337 } catch (Exception e) { 338 e.printStackTrace(); 339 } 340 } 341 342 }