银行

来源:互联网 发布:贝乐虎儿歌软件 编辑:程序博客网 时间:2024/03/29 22:33
using System;namespace BankSim {    class Program {        static void Main(string[] args) {            ATM atm = new ATM();            while (true) {                Console.Write("插入银行卡: ");                string no = Console.ReadLine();                if (atm.ReadCard(no)) {                    Console.Write("请输入密码: ");                    string pass = Console.ReadLine();                    if (atm.Verify(pass)) {                        bool jx = true;                        do {                            Console.WriteLine("1. 查询余额");                            Console.WriteLine("2. 存款");                            Console.WriteLine("3. 取款");                            Console.WriteLine("4. 修改密码");                            Console.WriteLine("5. 转账");                            Console.WriteLine("6. 退卡");                            Console.Write("请选择: ");                            int choice = Convert.ToInt32(Console.ReadLine());                            switch (choice) {                                case 1:                                    Console.WriteLine("您的余额为: " + atm.ShowBalance());                                    break;                                case 2:                                    Console.Write("请放入钞票: ");                                    int money1 = Convert.ToInt32(Console.ReadLine());                                    if (atm.PutMoney(money1)) {                                        Console.WriteLine("存入成功!!!");                                    }                                    else {                                        Console.WriteLine("无法识别!!!");                                    }                                    break;                                case 3:                                    Console.Write("请输入取款金额: ");                                    int money2 = Convert.ToInt32(Console.ReadLine());                                    if (atm.GetMoney(money2)) {                                        Console.WriteLine("请从出钞口取走钞票");                                    }                                    else {                                        Console.WriteLine("余额不足!!!");                                    }                                    break;                                case 4:                                    Console.Write("请输入原密码: ");                                    string oldPass = Console.ReadLine();                                    Console.Write("请输入新密码: ");                                    string newPass1 = Console.ReadLine();                                    Console.Write("请再次输入新密码: ");                                    string newPass2 = Console.ReadLine();                                    if (newPass1 == newPass2) {                                        if (atm.ChangePassword(oldPass, newPass1)) {                                            Console.WriteLine("修改成功!!!");                                        }                                        else {                                            Console.WriteLine("修改失败!!!");                                        }                                    }                                    else {                                        Console.WriteLine("两次输入不一致!!!");                                    }                                    break;                                case 5:                                    Console.Write("请输入转入账户的账号: ");                                    string toAccountNo = Console.ReadLine();                                    Console.Write("请输入转账金额: ");                                    double money3 = Convert.ToDouble(Console.ReadLine());                                    if (atm.Transfer(toAccountNo, money3)) {                                        Console.WriteLine("转账成功!!!");                                    }                                    else {                                        Console.WriteLine("转账失败!!!");                                    }                                    break;                                case 6:                                    atm.QuitCard();                                    jx = false;                                    break;
namespace BankSim {    public class ATM {        private Account[] accounts = new Account[3];        private Account currentAccount = null;        public ATM() {            accounts[0] = new Account("11223344", "123321", 2300);            accounts[1] = new Account("22334455", "147258", 500);            accounts[2] = new Account("33445566", "808080", 9800);        }        public Account Account {            get {                throw new System.NotImplementedException();            }            set {            }        }        /// <summary>        /// 读卡        /// </summary>        /// <param name="no">卡号</param>        /// <returns>读卡成功返回true, 否则返回false</returns>        public bool ReadCard(string no) {            currentAccount = FindByNo(no);            return currentAccount != null;        }        /// <summary>        /// 退卡        /// </summary>        public void QuitCard() {            currentAccount = null;        }        /// <summary>        /// 密码验证        /// </summary>        /// <param name="password">输入密码</param>        /// <returns>密码正确返回true, 否则返回false</returns>        public bool Verify(string password) {            return currentAccount.Password == password;        }        /// <summary>        /// 查看余额        /// </summary>        /// <returns></returns>        public double ShowBalance() {            return currentAccount.Balance;        }        /// <summary>        /// 转账        /// </summary>        /// <param name="toAccountNo">转入账号</param>        /// <param name="money">转入金额</param>        /// <returns>转账成功返回true, 否则返回false</returns>        public bool Transfer(string toAccountNo, double money) {            Account toAccount = FindByNo(toAccountNo);            if (money > 0) {                if (toAccount != null) {                    if (currentAccount.Withdraw(money)) {                        toAccount.Deposit(money);                        return true;                    }                }            }            return false;        }        /// <summary>        /// 存款        /// </summary>        /// <param name="money">存入金额</param>        /// <returns>存入成功返回true, 否则返回false</returns>        public bool PutMoney(int money) {            return currentAccount.Deposit(money);        }        /// <summary>        /// 取款        /// </summary>        /// <param name="money">取出金额</param>        /// <returns>取出成功返回true, 否则返回false</returns>        public bool GetMoney(int money) {            return currentAccount.Withdraw(money);        }        /// <summary>        /// 修改密码        /// </summary>        /// <param name="oldPass">原密码</param>        /// <param name="newPass">新密码</param>        /// <returns>修改成功返回true, 否则返回false</returns>        public bool ChangePassword(string oldPass, string newPass) {            if (currentAccount.Password == oldPass) {                currentAccount.Password = newPass;                return true;            }            return false;        }        private Account FindByNo(string no) {            for (int i = 0; i < accounts.Length; i++) {                if (accounts[i].No == no) {                    return accounts[i];                }            }            return null;        }    }}
namespace BankSim {    /// <summary>    /// 银行账户    /// </summary>    public class Account {        /// <summary>        /// 卡号        /// </summary>        public string No { get; private set; }        /// <summary>        /// 余额        /// </summary>        public double Balance { get; private set; }        /// <summary>        /// 密码        /// </summary>        public string Password { get; set; }        /// <summary>        /// 构造器        /// </summary>        /// <param name="no">卡号</param>        /// <param name="password">初始密码</param>        /// <param name="balance">预存金额</param>        public Account(string no, string password, double balance) {            this.No = no;            this.Password = password;            this.Balance = balance;        }        /// <summary>        /// 存款        /// </summary>        /// <param name="money">存入金额</param>        /// <returns>存款成功返回true, 否则返回false</returns>        public bool Deposit(double money) {            if (money > 0) {                Balance += money;                return true;            }            return false;        }        /// <summary>        /// 取款        /// </summary>        /// <param name="money">取款金额</param>        /// <returns>取款成功返回true, 否则返回false</returns>        public bool Withdraw(double money) {            if (money > 0 && money <= Balance) {                Balance -= money;                return true;            }            return false;        }    }}


} } while (jx); } else { Console.WriteLine("密码错误!!!"); } } else { atm.QuitCard(); Console.WriteLine("不要拿石头来开玩笑!!!"); } } } }}

原创粉丝点击