首先感謝大家抽出寶貴的時間來看這個Bank系統,這是我最近學的Bank系統,你們看我剛一學完就給你們分享了我的所學以及學習的一些經驗,所以大家一定要耐心看下去,真的你會有所收獲的,不信你看看.下面話不多說.我們直接切入正題,怎樣來做這個Bank系統.還記得我給大家分享的經驗嗎?做這樣的題目需要先理清邏輯思路,然后在來做.
1.這個Bank要實現的功能是:
1.開戶2.存款3.取款4.查詢余額5.轉賬6.修改密碼7退出
2首先這個Bank系統需要這幾個類:
Card類(銀卡類)
Bank類(Bank系統中的核心類);
程序的入口類(實質上就是Manin方法)
3 核心類bank類中定義方法:
初始化100張卡的前3張卡信息,給前3張卡的信息賦值方法: EvaluationCard()
輸出出三張卡的信息的方法outputCardShow()
歡迎菜單的方法Welcome();
開戶的方法CreateAccount()
存款的方法MoneyIn()
取款的方法MoneyOut()
轉賬的方法TransferMoney()
查詢余額的方法SelectMoney()
修改密碼的方法ModifyPwd()
退出的方法ExitSystem()
4在Main方法中調用方法.
下面就是代碼的部分的,來自五湖四海的朋友們,認真看吧!
Card類
public class Card { //字段 PRivate string cardName;//持卡人姓名 private int cardNumber;//卡賬戶 private string cardPwd;//卡密碼 private double cardMoney;//卡余額 private string idCard;//身份證號 //屬性 public string IdCard { get { return idCard; } set { idCard = value; } } public double CardMoney { get { return cardMoney; } set { cardMoney = value; } } public string CardPwd { get { return cardPwd; } set { cardPwd = value; } } public int CardNumber { get { return cardNumber; } set { cardNumber = value; } } public string CardName { get { return cardName; } set { cardName = value; } }}
Bank類(核心類)
public class Bank { Card[] card = new Card[100];//實例化一個數組對象給定一個長度為100;
Bank類中的方法.
初始化100張卡的前3張卡信息,給前3張卡的信息賦值方法: EvaluationCard()
public void EvaluationCard() { Card card1 = new Card();//實例化一個card1對象 card1.CardName = "汪蘇瀧"; card1.CardMoney = 10000; card1.CardNumber = 11111111; card1.CardPwd = "11111111"; card[0] = card1; Card card2 = new Card();//實例化一個card2對象 card2.CardName = "林俊杰"; card2.CardMoney = 1000; card2.CardNumber = 22222222; card2.CardPwd = "22222222"; card[1] = card2; Card card3 = new Card();//實例化一個card3對象 card3.CardName = "王力宏"; card3.CardMoney = 10000; card3.CardNumber = 33333333; card3.CardPwd = "33333333"; card[2] = card3; } 打印出三張卡的信息的方法outputCardShow() public void outputCardShow() { Console.WriteLine("********************************************"); foreach (Card item in card)//用foreach循環遍歷數組 { if (item != null)//保證數組對象中的值不為null. { Console.WriteLine("用戶名:{0}/t/t銀行賬戶:{1}", item.CardName, item.CardNumber); } } Console.WriteLine("********************************************"); } 歡迎菜單的方法Welcome() public void Welcome() { //調用打印三張卡信息,在屏幕中顯示,后續開戶功能會增加更多卡信息 outputCardShow(); Console.WriteLine("歡迎進入淚灑星辰ATM自助取款系統"); Console.WriteLine("功能:1.開戶 2.存款 3.取款 4.查詢余額 5.轉賬 6.修改密碼 7.退出"); Console.WriteLine("請選擇您要操作的功能模塊,親"); string result = Console.ReadLine(); switch (result)//根據對應的數字選擇對應的功能模塊 { case "1": //調用開戶的方法 CreateAccount(); break; case "2": //調用存款的方法 MoneyIn(); break; case "3": //調用取款的方法 MoneyOut(); break; case "4": //調用查詢余額的方法 SelectMoney(); break; case "5": //調用轉賬的方法 TransferMoney(); break; case "6": //調用修改密碼的方法 ModifyPwd(); break; case "7": // 調用退卡的方法 ExitSystem(); Console.WriteLine("成功退卡!"); break; default: Console.WriteLine("沒有對應的功能模塊!"); break; } }
開戶的方法CreateAccount()
public void CreateAccount() { Console.WriteLine("==================="); Console.WriteLine("這里是開戶模塊"); Console.WriteLine("==================="); Console.WriteLine("請輸入省份證號碼:"); string id = Console.ReadLine(); Random ran = new Random();//實例化一個隨機數對象 //讓系統隨機產生一個10000000~99999999之間的隨機數 int RandKey = ran.Next(10000000, 99999999); //向屏幕打印出用戶的銀行賬號 Console.WriteLine("請牢記您的賬戶:{0}", RandKey); Console.WriteLine("請輸入用戶名:"); string name = Console.ReadLine(); Console.WriteLine("請輸入密碼:"); string mima = Console.ReadLine(); Console.WriteLine("請輸入預存余額:"); double money = double.Parse(Console.ReadLine()); Card cards = new Card(); cards.IdCard = id; cards.CardName = name; cards.CardPwd = mima; cards.CardMoney = money; cards.CardNumber = RandKey; for (int i = 0; i < card.Length; i++) { if (card[i] == null) { card[i] = cards; Console.WriteLine("*******************"); Console.WriteLine("恭喜開戶成功!"); Console.WriteLine("*******************"); break; } } Welcome(); }
存款的方法MoneyIn()
public void MoneyIn() { Console.WriteLine("==================="); Console.WriteLine("這里是存款"); Console.WriteLine("==================="); Console.WriteLine("請輸入賬號:"); int number = int.Parse(Console.ReadLine()); bool flag = false;//定義一個標記,標記指示卡號默認是不存在 for (int i = 0; i < card.Length; i++)//用for循環遍歷數組 { //如果數組中的值不為null并且輸入的賬號要和數組中的賬號一致才能輸入密碼. if (card[i] != null && number.Equals(card[i].CardNumber)) { flag = true;//改變標記這里賬號已經審核成功 Console.WriteLine("請輸入密碼:"); string pwd = Console.ReadLine(); if (pwd.Equals(card[i].CardPwd))//如果密碼一致,才能進行下一步 { Console.WriteLine("{0},您好!登錄成功", card[i].CardName); Console.WriteLine("============================"); Console.WriteLine("請輸入你的存款金額:"); Console.WriteLine("============================"); double money = double.Parse(Console.ReadLine()); //存款金額=存款金額+賬戶已有余額; card[i].CardMoney = card[i].CardMoney + money; Console.WriteLine("============================"); Console.WriteLine("存款成功!目前賬戶余額為:{0}", card[i].CardMoney); Console.WriteLine("============================"); Welcome();//調用歡迎菜單,返回主菜單 break; } else { Console.WriteLine("============================"); Console.WriteLine("對不起你輸入的密碼有誤!"); Console.WriteLine("============================"); break; } } } //出了循環證明沒有匹配的賬號flag的值沒被改過判定flag標記是否為false if(flag==false) { Console.WriteLine("============================"); Console.WriteLine("對不起!沒檢測到該卡"); Console.WriteLine("============================"); } }
取款的方法MoneyOut()
public void MoneyOut() { Console.WriteLine("==================="); Console.WriteLine("這里是取款"); Console.WriteLine("==================="); Console.WriteLine("請輸入賬號:"); int number = int.Parse(Console.ReadLine()); bool flag = false; for (int i = 0; i < card.Length; i++) { if (card[i] != null && number.Equals(card[i].CardNumber)) { flag = true; Console.WriteLine("請輸入密碼:"); string pwd = Console.ReadLine(); if (pwd.Equals(card[i].CardPwd)) { Console.WriteLine("{0},您好!登錄成功", card[i].CardName); Console.WriteLine("請輸入你的取款金額:"); double money = double.Parse(Console.ReadLine()); if (money > card[i].CardMoney) { Console.WriteLine("============================"); Console.WriteLine("對不起!你的余額不足本次取款"); Console.WriteLine("============================"); } else { //如果輸入的取款數不是100的整數倍那么輸入的金額就會不合法,知道輸入合法才可退出 while (money % 100 != 0) { Console.WriteLine("您輸入的不合法"); Console.WriteLine("請輸入取款金額"); money = Convert.ToInt32(Console.ReadLine()); } //代碼執行到這里,證明轉賬金額合法 card[i].CardMoney = card[i].CardMoney - money; Console.WriteLine("============================"); Console.WriteLine("取款成功!目前賬戶余額為:{0}", card[i].CardMoney); Console.WriteLine("============================"); Welcome();//調用歡迎菜單,返回主菜單 break; } } else { Console.WriteLine("============================"); Console.WriteLine("對不起你輸入的密碼有誤!"); Console.WriteLine("============================"); break; } } } if (flag == false) { Console.WriteLine("對不起!沒檢測到該卡"); } }
轉賬的方法”難點”(這塊可能要花大量時間理解if結構嵌套關系太多)TransferMoney()
public void TransferMoney() { Console.WriteLine("============================"); Console.WriteLine("這里是轉賬"); Console.WriteLine("============================"); Console.WriteLine("請輸入轉出卡卡號"); int outnum = int.Parse(Console.ReadLine()); bool flag = false;//默認轉出卡不存在 bool outCardFlag = false;//默認轉入卡不存在 int type = 0; foreach (Card card1 in card) { if (card1!= null) { if (card1.CardNumber.Equals(outnum)) { flag = true; Console.WriteLine("請輸入轉出卡密碼"); string outpwd = Console.ReadLine(); if (card1.CardPwd.Equals(outpwd)) //判斷密碼是否一致 { //用戶名 密碼均正確,可以執行后續內容 Console.WriteLine("請輸入轉入卡卡號"); int intnum = int.Parse(Console.ReadLine()); foreach (Card card2 in card) { if (card2 != null) { if (card2.CardNumber.Equals(intnum)) //判斷轉入卡是否存在 { type = 1; //存在,可以提示輸入轉賬金額 Console.WriteLine("請輸入轉賬金額"); int money = Convert.ToInt32(Console.ReadLine()); if (money <= card1.CardMoney) //合法 { while (money % 100 != 0) //不是面值100的 { Console.WriteLine("============================"); Console.WriteLine("您輸入的不合法"); Console.WriteLine("請輸入轉賬金額"); Console.WriteLine("============================"); money = Convert.ToInt32(Console.ReadLine()); } //代碼執行到這里,證明轉賬金額合法 //改變雙方的余額 card1.CardMoney -= money; card2.CardMoney += money; Console.WriteLine("轉賬成功!"); outCardFlag = true; Console.WriteLine("============================"); Console.WriteLine("轉出卡余額{0}/t轉入卡余額{1}", card1.CardMoney, card2.CardMoney); Console.WriteLine("============================"); Welcome();//調用歡迎菜單,返回主菜單 } else { Console.WriteLine("============================"); Console.WriteLine("余額不足!"); Console.WriteLine("============================"); } break; } } } if (outCardFlag == false && type == 0) { Console.WriteLine("============================"); Console.WriteLine("轉入卡不存在!"); Console.WriteLine("============================"); } } else { Console.WriteLine("============================"); Console.WriteLine("轉出卡密碼錯誤!"); Console.WriteLine("============================"); } break; } } } //出了循環,如果flag還是false,就證明沒有該卡! if (flag == false) { Console.WriteLine("============================"); Console.WriteLine("沒有該卡"); Console.WriteLine("============================"); } }
查詢余額的方法SelectMoney()
public void SelectMoney() { Console.WriteLine("==================="); Console.WriteLine("這里是查詢余額"); Console.WriteLine("==================="); Console.WriteLine("請輸入賬號:"); int number = int.Parse(Console.ReadLine()); bool flag = false; for (int i = 0; i < card.Length; i++) { if (card[i] != null && number.Equals(card[i].CardNumber)) { flag = true; Console.WriteLine("請輸入密碼:"); string pwd = Console.ReadLine(); if (pwd.Equals(card[i].CardPwd)) { Console.WriteLine("{0},您好!登錄成功", card[i].CardName); Console.WriteLine("============================"); Console.WriteLine("目前賬戶余額為:{0}", card[i].CardMoney); Console.WriteLine("============================"); Welcome();//調用歡迎菜單,返回主菜單 break; } else { Console.WriteLine("============================"); Console.WriteLine("對不起你輸入的密碼有誤!"); Console.WriteLine("============================"); break; } } } if (flag == false) { Console.WriteLine("============================"); Console.WriteLine("對不起!沒檢測到該卡"); Console.WriteLine("============================"); } }
修改密碼的方法ModifyPwd()
public void ModifyPwd() { Console.WriteLine("==================="); Console.WriteLine("這里是修改密碼"); Console.WriteLine("==================="); Console.WriteLine("請輸入賬號:"); int number = int.Parse(Console.ReadLine()); bool flag = false; for (int i = 0; i < card.Length; i++) { if (card[i] != null && number.Equals(card[i].CardNumber)) { flag = true; Console.WriteLine("請輸入密碼:"); string pwd = Console.ReadLine(); if (pwd.Equals(card[i].CardPwd)) { Console.WriteLine("{0},您好!登錄成功", card[i].CardName); Console.WriteLine("請輸入你的新密碼:"); string newpwd = Console.ReadLine(); Console.WriteLine("請確認你的密碼:"); string newpwdone = Console.ReadLine(); if (newpwdone.Equals(newpwd))//判斷兩次輸入的密碼是否一致 { //代碼執行到這說明密碼已經一致 card[i].CardPwd = newpwdone; Console.WriteLine("============================"); Console.WriteLine("修改密碼成功!修改后的密碼為{0};請牢記密碼.", card[i].CardPwd); Console.WriteLine("============================"); Welcome();//調用歡迎菜單,返回主菜單 } else { Console.WriteLine("============================"); Console.WriteLine("對不起!前后密碼不一致!未能更改密碼:"); Console.WriteLine("============================"); } break; } else { Console.WriteLine("============================"); Console.WriteLine("對不起你輸入的密碼有誤!"); Console.WriteLine("============================"); break; } } } if (flag == false) { Console.WriteLine("============================"); Console.WriteLine("對不起!沒檢測到該卡"); Console.WriteLine("============================"); } }
退出的方法ExitSystem()
public void ExitSystem() { Console.WriteLine("============================"); Console.WriteLine("謝謝您的使用!"); Console.WriteLine("============================"); }
最后在程序的入口類(Main方法)中調用
static void Main(string[] args) { Bank bank = new Bank();//創建bank對象 bank. EvaluationCard();//調用EvaluationCard()方法.保證前三項有值 bank.Welcome();//調用歡迎菜單的方法,上面代碼中功能模塊的方法已經在case塊中調用 Console.ReadLine(); }
到這終于結束了,希望對剛入門的一些人士有幫助,也在此感謝大家能夠看完,感覺寫的還可以的支持一下,如若有其他的一些問題,請發送到
我的郵箱:18813091329@163.com.
QQ:2991635691
新聞熱點
疑難解答