/*
*细节不完善,先存一下
*/
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 }