大家知道我们以前古老的Bank系统到底有多少漏洞吗?当然是由我和大家介绍一下!!
从学习Java到C#我陆陆续续的学习了这两种语言的一点小知识!和大家分享一下!当然上面的都是为了吸引小伙伴的!下面接入正题!请大神们多多手下留情
一般的Bank系统由:开户,存款,取款,查询,转账,修改密码这几部分组成!
首先大家先把要写的代码的提纲打出来,这样就会有目标的一步一步的填充,和解决困难!
1 public void Welcome() 2 { 3 Console.WriteLine("欢迎进入微冷的雨ATM系统,亲"); 4 Console.WriteLine("功能:1.开户 2.存款 3.取款 4.查询余额 5.转账 6.修改密码 7.退出"); 5 Console.WriteLine("请选择您要操作的功能模块,亲"); 6 string choice = Console.ReadLine(); 7 switch (choice) 8 { 9 case "1": 10 //开户 11 CreateAccount(); 12 break; 13 case "2": 14 //存款 15 MoneyIn(); 16 break; 17 case "3": 18 //取款 19 MoneyOut(); 20 break; 21 case "4": 22 //查询余额 23 SelectMoney(); 24 break; 25 case "5": 26 //转账 27 TransferMoney(); 28 break; 29 case "6": 30 //修改密码 31 ModifyPwd(); 32 break; 33 case "7": 34 Console.WriteLine("成功退卡!"); 35 break; 36 37 38 } 39
然后当然就是该一步步的填充!当然一般我们储存数据一般都是用数组!而要储存的内容有 :1.用户名 2.帐号 3.密码 4.余额
所以要开出4个数组,每个数组都给适当的空间,而我那么大方的人,所以我每个数组给的空间都是100。
class Card { private int cardNum; //卡号 private string cardName; //持卡人 private int password; //密码 private double money; //余额 public double Money { get { return money; } set { money = value; } } public int Password { get { return password; } set { password = value; } } public string CardName { get { return cardName; } set { cardName = value; } } public int CardNum { get { return cardNum; } set { cardNum = value; } } }
并且初始化了3个用户
class Bank { Card[] card=new Card[100]; //定义卡的对象数组 //给前三张卡初始化 public void InitialData() { Card card1 = new Card(); //创建卡的第一个对象 card1.CardName = "张三"; card1.CardNum = 1234; card1.Password = 1234; card1.Money = 1000; card[0] = card1; //将第一个卡的对象中的元素存储到数组中去. Card card2 = new Card(); //创建卡的第二个对象 card2.CardName = "李四"; card2.CardNum = 12345; card2.Password = 12345; card2.Money = 9850; card[1] = card2; //将第二个卡的对象中的元素存储到数组中去. Card card3 = new Card(); //创建卡的第三个对象 card3.CardName = "王五"; card3.CardNum = 123456; card3.Password = 123456; card3.Money = 10000; card[2] = card3; //将第三个卡的对象中的元素存储到数组中去. }
初步做完后就是开始写方法了,这些方法我就不一一介绍了,我就单独给大家说说转账这一方面的难题吧!
public void ChangeMoney() { Console.WriteLine("请输入卡号"); int cardNo = int.Parse(Console.ReadLine()); Console.WriteLine("请输入密码"); int cardPwd = int.Parse(Console.ReadLine()); for (int i = 0; i < card.Length; i++) { if (card[i] == null) { Console.WriteLine("输入相关卡的信息错误!"); break; } else if (cardNo == card[i].CardNum && cardPwd == card[i].Password) //判断账户和密码是否正确 { Console.WriteLine("请输入对方卡号:"); int cardNb = int.Parse(Console.ReadLine()); for (int j = 0; j < card.Length; j++) { if (card[j] == null) { Console.WriteLine("输入信息错误!!"); break; } else if (cardNb == card[j].CardNum) //判断是否存在该转账人信息 { Console.WriteLine("请输入转账金额:"); double changeMoney = double.Parse(Console.ReadLine()); if (changeMoney > card[i].Money) //判读余额是否足够转账 { Console.WriteLine("操作失败!!您的余额不足!"); break; } else { card[i].Money -= changeMoney; //转账人扣除相应的金额 card[j].Money += changeMoney; //接收人增加相应金额 Console.WriteLine("转账成功!!!"); break; } } } break; } } Welcome(); } //展示用户信息功能 public void show() { foreach (Card item in card) //foreach循环输出对象数组中的对象值 { if (item!= null) { Console.WriteLine("用户名:{0} 账号:{1}",item.CardName,item.CardNum); } } Welcome(); } }
转账功能最主要的就是判断用户输入的帐号密码,是否存在和正确,还有就是判断转账的余额是否满足转账!所以这些都需要大家紧密的思维和运用if嵌套结构的用法啦!
剩下的就不多多介绍了!我这人就是有些懒!不知道写的符不符合大家的胃口!希望能对大家有帮助!也谢谢你们抽出宝贵的时间来看!!!!