1.帐户类 User
复制代码
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace MyBank
7 {
8 /// <summary>
9 /// 帐户类
10 /// </summary>
11 public class User
12 {
13 #region 成员变量
14 /// <summary>
15 /// 帐户姓名
16 /// </summary>
17 private string _name;
18
19 public string Name
20 {
21 get { return _name; }
22 set { _name = value; }
23 }
24
25 /// <summary>
26 /// 密码
27 /// </summary>
28 private string _password;
29
30 public string Password
31 {
32 get { return _password; }
33 set { _password = value; }
34 }
35
36 /// <summary>
37 /// 身份证号
38 /// </summary>
39 private string _identityNum;
40
41 public string IdentityNum
42 {
43 get { return _identityNum; }
44 set { _identityNum = value; }
45 }
46
47 /// <summary>
48 /// 帐户余额
49 /// </summary>
50 private double _balance;
51
52 public double Balance
53 {
54 get { return _balance; }
55 set { _balance = value; }
56 }
57
58 /// <summary>
59 /// 帐号
60 /// </summary>
61 private string _account;
62
63 public string Account
64 {
65 get { return _account; }
66 set { _account = value; }
67 }
68 #endregion
69
70 #region 取款
71 /// <summary>
72 /// 取款操作
73 /// </summary>
74 /// <param name="money">要取的金额</param>
75 /// <returns>返回余额,输入有误返回-1</returns>
76 public double MinusMoney(double money)
77 {
78 if (money > 0)
79 {
80 if (money <= _balance)
81 {
82 _balance -= money;
83 return _balance;
84 }
85 else
86 {
87 return -1;
88 }
89
90 }
91 else
92 {
93 return -1;
94 }
95 }
96 #endregion
97
98 #region 存款
99 /// <summary>
100 /// 存款
101 /// </summary>
102 /// <param name="money">存款金额</param>
103 public double SaveMoney(double money)
104 {
105 if (money > 0)
106 {
107
108 _balance += money;
109 return _balance;
110 }
111 else
112 {
113 return -1;
114 }
115 }
116 #endregion
117
118 }
119 }
复制代码
2.银行类 Bank
复制代码
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace MyBank
7 {
8 public class Bank
9 {
10 #region 成员变量的定义
11 User user = new User(); //实例化User对象并赋值
12 User[] _userGroup = new User[3];
13 const string MESSAGE = "操作成功!";
14 #endregion
15
16 #region 初始化三个帐户
17 /// <summary>
18 /// 初始化三个帐户
19 /// </summary>
20 public void Initial()
21 {
22 _userGroup[0] = new User();
23 _userGroup[0].Account = "179708064356";
24 _userGroup[0].Name = "王丽丽";
25 _userGroup[0].Password = "1234";
26 _userGroup[0].IdentityNum = "210050619890808185";
27 _userGroup[0].Balance = 1000.1111;
28
29 _userGroup[1] = new User();
30 _userGroup[1].Account = "179708064359";
31 _userGroup[1].Name = "张颖颖";
32 _userGroup[1].Password = "4321";
33 _userGroup[1].IdentityNum = "510010619891231127";
34 _userGroup[1].Balance = 2000;
35
36 _userGroup[2] = new User();
37 _userGroup[2].Account = "179708064368";
38 _userGroup[2].Name = "刘华";
39 _userGroup[2].Password = "4567";
40 _userGroup[2].IdentityNum = "410207198904051271";
41 _userGroup[2].Balance = 8000;
42 }
43 #endregion
44
45 #region 显示所有帐户信息
46 /// <summary>
47 /// 显示所有帐户的帐号、姓名、密码、身份证号、帐户余额
48 /// </summary>
49 public void ShowAllUser()
50 {
51 foreach (User userItem in _userGroup)
52 {
53 Console.WriteLine("帐户姓名:" + userItem.Name + " 帐号:" + userItem.Account + " 存款余额:" + userItem.Balance + " 密码:" + userItem.Password + " 身份证号:" + userItem.IdentityNum);
54 }
55 }
56 #endregion
57
58 #region 显示菜单
59 /// <summary>
60 /// 显示菜单
61 /// </summary>
62 public void ShowCustomMenu()
63 {
64 string option = "";
65 do
66 {
67 Console.WriteLine();
68 Console.WriteLine("==================欢迎使用自动银行服务==================");
69 Console.WriteLine("1:开户 2:存款 3:取款 4:转帐 5:查询余额 6:修改密码 0:退出");
70 Console.WriteLine("========================================================");
71 option = Console.ReadLine();
72 switch (option)
73 {
74 case "1":
75 CreateAccount();
76 continue;
77 case "2":
78 Deposit();
79 continue;
80 case "3":
81 WithDraw();
82 continue;
83 case "4":
84 InputTransferData();
85 continue;
86 case "5":
87 ShowBalance();
88 continue;
89 case "6":
90 ModifyPwd();
91 continue;
92 case "0":
93 break; //结束switch
94 default:
95 Console.WriteLine("输入无效!");
96 continue;
97 }
98
99 break; //结束do-while循环
100 } while (true);
101 }
102 #endregion
103
104 #region 开户
105 /// <summary>
106 /// 开户
107 /// </summary>
108 public void CreateAccount()
109 {
110 //接受输入的数据
111 Console.WriteLine("请输入帐户名");
112 user.Name = Console.ReadLine();
113 user.Account = "179708064356";
114 Console.WriteLine("请输入帐户密码");
115 user.Password = Console.ReadLine();
116 Console.WriteLine("请输入帐户身份证号");
117 user.IdentityNum = Console.ReadLine();
118 Console.WriteLine("请输入帐户存款金额");
119 user.Balance = double.Parse(Console.ReadLine());
120
121 Console.WriteLine("帐户:{0},帐户名:{1},存款金额:{2}创建成功!", user.Account, user.Name, user.Balance);
122 //Console.ReadLine();
123 }
124 #endregion
125
126 #region 取款
127 /// <summary>
128 /// 取款
129 /// </summary>
130 public void WithDraw()
131 {
132 string account = ""; //帐号
133 string pwd; //密码
134
135 Console.WriteLine("请输入帐号:");
136 account = Console.ReadLine();
137 if (account.Length == 0)
138 {
139 Console.WriteLine("输入的帐号不正确!");
140 return;
141 }
142 // 新增:在3个帐户中查找指定的帐户
143 User user = CheckUserByAccount(account);
144 if (user == null)
145 {
146 Console.WriteLine("输入的帐号不正确!");
147 return;
148 }
149
150
151 //接收帐户密码,并验证
152 Console.WriteLine("请输入帐户密码:");
153 pwd = Console.ReadLine();
154
155 if (user.Password != pwd)
156 {
157 Console.WriteLine("密码有误!");
158 return;
159 }
160
161 Console.WriteLine("请输入取款金额");
162 double money = double.Parse(Console.ReadLine());
163 double result = user.MinusMoney(money);
164 if (result == -1)
165 {
166 Console.WriteLine("取款失败");
167 }
168 else
169 {
170 Console.WriteLine("取款成功!当前余额:" + result);
171 }
172 }
173 #endregion
174
175
176 #region 存款
177 /// <summary>
178 /// 存款
179 /// </summary>
180 public void Deposit()
181 {
182 string account = ""; //帐号
183 double money = 0; //存款金额
184
185 Console.WriteLine("请输入帐号:");
186 account = Console.ReadLine();
187 Console.WriteLine("请输入存入金额:");
188 money = double.Parse(Console.ReadLine());
189
190 User user;
191 if ((user = CheckUserByAccount(account)) == null)
192 {
193 Console.WriteLine("您输入的帐号不存在!");
194 }
195
196 if (user.SaveMoney(money) > 0)
197 {
198 Console.WriteLine(MESSAGE + "当前余额:" + user.Balance);
199 }
200 else
201 {
202 Console.WriteLine("存款失败!");
203 }
204
205 }
206 #endregion
207
208 #region 判断帐户是否存在
209 /// <summary>
210 /// 通过帐号判断帐户是否存在
211 /// </summary>
212 /// <param name="account">帐号</param>
213 /// <returns>存在返回user对象,不存在返回null</returns>
214 private User CheckUserByAccount(string account)
215 {
216 foreach (User user in _userGroup)
217 {
218 if (user.Account == account)
219 {
220 return user;
221 }
222 }
223 return null;
224 }
225
226 /// <summary>
227 /// 根据帐号和密码判定帐户是否存在
228 /// </summary>
229 /// <param name="account">帐号</param>
230 /// <param name="pwd">密码</param>
231 /// <returns>User & null</returns>
232 private User CheckUser(string account,string pwd)
233 {
234 foreach (User user in _userGroup)
235 {
236 if (user.Account == account && user.Password ==pwd)
237 {
238 return user;
239 }
240 }
241 return null;
242 }
243 #endregion
244
245 #region 转帐
246 /// <summary>
247 /// 转帐输入输出信息
248 /// </summary>
249 public void InputTransferData()
250 {
251 Console.WriteLine("请输入转出帐号:");
252 string fromAccount = Console.ReadLine();
253 Console.WriteLine("请输入转出帐户密码:");
254 string fromPwd = Console.ReadLine();
255 Console.WriteLine("请输入转入帐号:");
256 string toAccount = Console.ReadLine();
257 Console.WriteLine("请输入转帐金额:");
258 double money = double.Parse(Console.ReadLine());
259 double fbalance = 0, tbalance = 0;
260
261 // 执行转帐操作
262 int iRet = Transfer(fromAccount, fromPwd, toAccount, money, ref fbalance, ref tbalance);
263 if (iRet == 1)
264 {
265 Console.WriteLine("转帐成功,转出帐号{0}的余额为:{1},转入帐号{2}的余额为:{3}", fromAccount, fbalance, toAccount, tbalance);
266 }
267 else if (iRet == -1)
268 {
269 Console.WriteLine("转出帐户的帐号或密码输入错误!");
270 }
271 else if (iRet == -2)
272 {
273 Console.WriteLine("转入帐号不正确!");
274 }
275 else if (iRet == -3)
276 {
277 Console.WriteLine("转帐操作失败!");
278 }
279
280 }
281
282 /// <summary>
283 /// 执行转帐操作
284 /// </summary>
285 /// <param name="fAccount">当前帐号</param>
286 /// <param name="fPwd">帐号密码</param>
287 /// <param name="tAccount">转帐帐号</param>
288 /// <param name="money">转帐金额</param>
289 /// <param name="fBalance">当前帐号余额</param>
290 /// <returns>-1:帐号或密码输入错误;1:转帐成功;0:转帐帐号不存在</returns>
291 private int Transfer(string fAccount, string fPwd, string tAccount, double money, ref double fBalance, ref double tBalance)
292 {
293 //检查转出帐号和密码
294 User userfrom = CheckUser(fAccount, fPwd);
295 if (userfrom == null) //转出帐户和密码不正确
296 {
297 return -1;
298 }
299 //检查转入帐号
300 User userTo = CheckUserByAccount(tAccount);
301 if (userTo == null) //转入帐号不正确
302 {
303 return -2;
304 }
305
306 //取款
307 if (userfrom.MinusMoney(money) == -1) //转帐操作失败
308 {
309 return -3;
310 }
311 //取得余额
312 fBalance = userfrom.Balance;
313
314 //存款
315 if (userTo.SaveMoney(money) == -1) //转帐操作失败
316 {
317 return -3;
318 }
319
320 tBalance = userTo.Balance;
321
322 return 1;
323
324 }
325 #endregion
326
327
328 #region 显示帐户余额
329 /// <summary>
330 /// 显示帐户余额
331 /// </summary>
332 public void ShowBalance()
333 {
334 string accountName = ""; //当前帐号
335 string password = ""; //当前帐户密码
336 Console.WriteLine("请输入帐号");
337 accountName = Console.ReadLine();
338 Console.WriteLine("请输入密码");
339 password = Console.ReadLine();
340 User user = CheckUser(accountName, password);
341 if (user == null)
342 {
343 Console.WriteLine("当前帐号不存在");
344 }
345 else
346 {
347 Console.WriteLine("帐户的余额是:" + user.Balance.ToString ("0.00"));
348 }
349 }
350 #endregion
351
352 #region 修改密码
353 public void ModifyPwd()
354 {
355 string accountName = ""; //当前帐号
356 string password = ""; //当前帐户密码
357 Console.WriteLine("请输入帐号");
358 accountName = Console.ReadLine();
359 Console.WriteLine("请输入原密码");
360 password = Console.ReadLine();
361
362 string newPwd1, newPwd2;
363 Console.WriteLine("请输入新密码");
364 newPwd1 = Console.ReadLine();
365 Console.WriteLine("请再次输入新密码");
366 newPwd2 = Console.ReadLine();
367
368 if(CheckPwd(accountName, password, newPwd1, newPwd2)==true)
369 Console.WriteLine("帐户密码修改成功!");
370 else
371 Console.WriteLine("帐户密码修改失败!");
372
373 }
374
375 public bool CheckPwd(string accountName, string password, string newPwd1, string newPwd2)
376 {
377 User user = CheckUser(accountName, password);
378 if (user == null)
379 {
380 Console.WriteLine("当前帐号不存在");
381 return false;
382 }
383
384 if (newPwd1 != newPwd2)
385 {
386 Console.WriteLine("两只输入的帐户密码不一致!");
387 return false;
388 }
389 else
390 {
391 user.Password = newPwd1;
392 return true;
393 }
394 }
395 #endregion
396 }
397
398 }
复制代码
3.最关键的也是最后的了,Program类, 关于系统运行
复制代码
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 namespace MyBank
7 {
8 class Program
9 {
10 static void Main(string[] args)
11 {
12 Bank myBank = new Bank();
13
14 //开户
15 //myBank.CreateAccount();
16
17 //初始化数据
18 myBank.Initial();
19
20 //显示所有帐户
21 myBank.ShowAllUser();
22
23 //显示菜单
24 myBank.ShowCustomMenu();
25
26 //取款
27 //myBank.WithDraw();
28 }
29 }
30 }