当前位置: 代码迷 >> C# >> 小弟我们为之奋斗过的C#Bank系统
  详细解决方案

小弟我们为之奋斗过的C#Bank系统

热度:196   发布时间:2016-04-28 08:44:14.0
我们为之奋斗过的C#-----Bank系统

首先感谢大家抽出宝贵的时间来看这个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();        }

 

 

 

到这终于结束了,希望对刚入门的一些人士有帮助,也在此感谢大家能够看完,感觉写的还可以的支持一下,如若有其他的一些问题,请发送到

我的邮箱:[email protected]

           QQ:2991635691

  相关解决方案