• 《银行》


    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace autoBank
    {
        class Person
        {
            public string name;
            public double money;
            public string idNumber;
            public string number; 
        }
    }
    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace autoBank
    {
        class Program
        {
            static void Main(string[] args)
            {
                Bank demo = new Bank();
                demo.CreatAccount();
                demo.Theme();
                Console.ReadLine();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace autoBank
    {
        class Bank
        {
            Person[] user = new Person[30];
            public void CreatAccount()
            {
                bool result;
                  for(int i=0;i<user.Length;i++)
                  {
                      if(user[i]==null)
                      {
                        user[i]=new Person();
                        Console.WriteLine("请输入用户名:");
                        user[i].name = Console.ReadLine();
                        user[i].number = user[i].name;
                        do{
                        Console.WriteLine("请输入密码");
                        user[i].password = Console.ReadLine(); 
                        Console.WriteLine("请再次输入密码:");
                        string passwords = Console.ReadLine();
                        result=IsSame(user[i].password,passwords);
                            if(!result)
                            {
                            Console.WriteLine("两次密码不一致,重新输入:");
                            }
                        }while(!result);
                        Console.WriteLine("请输入身份证号:");
                        user[i].idNumber = Console.ReadLine();
                        Console.WriteLine("请输入存款金额:");
                        user[i].money = int.Parse(Console.ReadLine());
                        Console.WriteLine("账户:{0},用户名:{1},存款金额:{2},创建成功!", user[i].number, user[i].name, user[i].money);
                        break;
                      }
                      
                  }
           
            }
            private bool IsSame(string password,string passwords) 
            {
                if (password==passwords) 
                {
                    return true;
                }
                return false;
            }
            public void WithDraw()
            {
                Console.WriteLine("请输入账号:");
                string account = Console.ReadLine();
                Console.WriteLine("请输入密码");
                string pwd = Console.ReadLine();
                Person a = checkOutAccount(account, pwd);
                if (a != null)
                {
                    Console.WriteLine("请输入取款金额");
                    double outmoney = double.Parse(Console.ReadLine());
                    double result = UserMoney(outmoney, a);
                    if (result == -1)
                    {
                        Console.WriteLine("取款失败");
                    }
                    else
                    {
                        Console.WriteLine("取款成功,当前金额{0}", a.money);
                    }
    
                }
                else
                {
                    Console.WriteLine("账号或密码不存在");
                }
            }     
            private double UserMoney(double outmoney,Person people05)
            {
                if (outmoney > 0)
                {
                    if (outmoney <= people05.money)
                    {
                        people05.money -= outmoney;
                        return people05.money;
                    }
                    else
                    {
                        return -1;
                    }
                }
                else
                {
                    return -1;
                }
            }
            public void Show()
            {
                Console.WriteLine("请输入账号:");
                string account = Console.ReadLine();
                Console.WriteLine("请输入密码:");
                string password = Console.ReadLine();
                Person checkIn = checkOutAccount(account, password);
                if (checkIn == null)
                {
                    Console.WriteLine("账号或密码错误");
                }
                else
                {
                    Console.WriteLine("账户余额是{0}", string.Format("{0:F3}", checkIn.money.ToString()));
                }
    
            }
            public void Theme()
            {
                Console.WriteLine("=================欢迎使用自动银行服务============================");
                Console.WriteLine("1.存款2.取款3.转账4.查询余额5.退出6.修改密码 7.继续注册账户");
                Console.WriteLine("================================================================");
                do
                {
                    Console.WriteLine("请选择:");
                    int choice = int.Parse(Console.ReadLine());
                    switch (choice)
                    {
                        case 1:
                            AddMoney();
                            continue;
                        case 2:
                            WithDraw();
                            continue;
                        case 3:
                            Transfer();
                            continue;
                        case 4:
                            Show();
                            continue;
                        case 5:
                            break;
                        case 6:
                            Change();
                            continue;
                        case 7:
                            CreatAccount();
                            continue;
                        default:
                            Console.WriteLine("输入无效");
                            continue;
                    }
                    break;
                } while (true);
    
            }
            public void Transfer()
            {
                Console.WriteLine("请输入转出账号:");
                string outAccount = Console.ReadLine();
                Console.WriteLine("请输入转出账户密码");
                string outPassword = Console.ReadLine();
                Console.WriteLine("请输入转入账号");
                string inAccount = Console.ReadLine();
                Console.WriteLine("请输入转账金额");
                double tranMoney = double.Parse(Console.ReadLine());
                double outMoney = 0, inMoney = 0;
                int result = Back(outAccount, outPassword, inAccount, tranMoney, ref outMoney, ref inMoney);
                if (result == 1)
                {
                    Console.WriteLine("转账成功,转出账号{0}余额为:{1},转入账号{2}余额为:{3}", outAccount, outMoney, inAccount, inMoney);
                }
                else if (result == -1)
                {
                    Console.WriteLine("转出账户账号或密码错误");
                }
                else if (result == -2)
                {
                    Console.WriteLine("转入账号不正确");
                }
                else if (result == -3)
                {
                    Console.WriteLine("转账操作失败");
                }
            }
            public void AddMoney()
            {
                Console.WriteLine("请输入账号:");
                string account = Console.ReadLine();
                Person a = InAccount(account);
                if (a != null)
                {
                    Console.WriteLine("请输入存款:");
                    int addMoney = int.Parse(Console.ReadLine());
                    a.money += addMoney;
                    Console.WriteLine("存款成功:余额{0}", a.money);
                }
                else 
                {
                    Console.WriteLine("账号不存在");
                }
            } 
            public void Change()
            {
                Console.WriteLine("请输入账号:");
                string isAccount = Console.ReadLine();
                Console.WriteLine("请输入密码:");
                string isPassword = Console.ReadLine();
                Person c = AChange(isAccount, isPassword);
                if (c != null)
                {
                    Console.WriteLine("请输入新密码:");
                    string password1 = Console.ReadLine();
                    Console.WriteLine("请再次输入密码:");
                    string password2 = Console.ReadLine();
                    if (PChange(password1, password2, ref c) == null)
                    {
                        Console.WriteLine("两次密码不一致");
                    }
                    else
                    {
                        Console.WriteLine("密码修改成功");
                    }
                }
                else
                {
                    Console.WriteLine("账号或密码错误");
                }
            }
            private Person InAccount(string inAccount)
            {
                foreach (Person temp in user)
                {
                    if (inAccount == temp.number)
                    {
                        return temp;
                    }
    
                }
                return null;
            }
            private int Back(string outAccount, string outPassword, string inAccount, double tranMoney, ref double outMoney, ref double inMoney)
            {
                Person a = checkOutAccount(outAccount, outPassword);
                if (a == null)
                {
                    return -1;
                }
                Person b = checkInAccount(inAccount, outAccount);
                if (b == null)
                {
                    return -2;
                }
                outMoney = checkOutMoney(tranMoney, ref a);
                if (outMoney <= 0)
                {
                    return -3;
                }
                inMoney = checkInMoney(ref b, tranMoney);
                if (inMoney < b.money)
                {
                    return -3;
                }
    
                return 1;
            }
            private Person checkOutAccount(string outAccount, string outPassword)
            {
                foreach (Person temp in user)
                {
                    if (outAccount == temp.number && outPassword == temp.password)
                    {
                        return temp;
                    }
                }
                return null;
            }
            private Person checkInAccount(string inAccount, string outAccount)
            {
                foreach (Person temp in user)
                {
                    if (inAccount == temp.number && outAccount != inAccount)
                    {
                        return temp;
                    }
    
                }
                return null;
            }
            private double checkOutMoney(double tranMoney, ref Person people01)
            {
                if (people01 != null)
                {
                    if (tranMoney <= people01.money)
                    {
                        people01.money -= tranMoney;
                        return people01.money;
                    }
                    return people01.money;
                }
                return people01.money;
            }
            private double checkInMoney(ref Person people02, double tranMoney)
            {
                people02.money += tranMoney;
                return people02.money;
            }
            private Person AChange(string account, string oldPassword)
            {
                foreach (Person temp in user)
                {
                    if (account == temp.number && oldPassword == temp.password)
                    {
                        return temp;
                    }
                    return null;
                }
                return null;
            }
            private string PChange(string num1, string num2, ref Person people03)
            {
                if (num1 == num2)
                {
                    people03.password = num1;
                    return people03.password;
                }
                return null;
            }
           
        }
    }
  • 相关阅读:
    HDU 3605 Escape 最大流
    HDU 3416 Marriage Match IV (最短路径&&最大流)
    洛谷1508 简单记忆化搜索
    洛谷1880 区间dp+记忆化搜索 合并石子
    洛谷1063 +区间dp(经典问题)
    洛谷1074 靶状数独dfs 排序、记录、搜索
    hdu3368 dfs 下棋
    hdu1258 dfs 给一个指定的target数和一个数列,要求不重复选择其中的数使得和为target并打印,结果不可重复。
    hdu1181 dfs 字符串首尾可拼接,问是否可寻找到一条字串路径使得首尾分别是‘b’和‘m’,简单的搜索+回溯
    hdu1078 dfs+dp(记忆化搜索)搜索一条递增路径,路径和最大,起点是(0,0)
  • 原文地址:https://www.cnblogs.com/lowerma/p/10081003.html
Copyright © 2020-2023  润新知