你的位置:首页 > ASP.net教程

[ASP.net教程]我们为之奋斗过的C#

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