namespace MyBank
{
class User
{
private string name; //姓名
public string Name
{
get { return name; }
set { name = value; }
}
private string password; //密码
public string Password
{
get { return password; }
set { password = value; }
}
private string id; //身份证号
public string Id
{
get { return id; }
set { id = value; }
}
private double balance; //存款余额
public double Balance
{
get { return balance; }
set { balance = value; }
}
private string account; //账号
public string Account
{
get { return account; }
set { account = value; }
}
public double MinusMoney(double money) //取款
{
if (money > 0)
{
if (balance >= money)
{
balance -= money;
return balance;
}
else
{
return -1;
}
}
else
{
return -1;
}
}
public double SaveMoney(double money) //存款
{
if (money>0)
{
balance += money;
return balance;
}
else
{
return -1;
}
}
}
}
namespace MyBank
{
class Bank
{
User user = new User();
const string MESSAGE = "操作成功!";
User[] userGroup = new User[3];
public void Initial()
{
//初始化第一个对象
userGroup[0] = new User();
userGroup[0].Account = "1";
userGroup[0].Name = "王丽丽";
userGroup[0].Password = "1234";
userGroup[0].Id = "111111";
userGroup[0].Balance = 1000;
//初始化第二个对象
userGroup[1] = new User();
userGroup[1].Account = "2";
userGroup[1].Name = "张颖颖";
userGroup[1].Password = "4321";
userGroup[1].Id = "222222";
userGroup[1].Balance = 2000;
//初始化第三个对象
userGroup[2] = new User();
userGroup[2].Account = "3";
userGroup[2].Name = "刘华";
userGroup[2].Password = "4567";
userGroup[2].Id = "333333";
userGroup[2].Balance = 8000;
}
public void CreateAccount() //开户
{
Console.WriteLine("请输入用户名:");
user.Name = Console.ReadLine();
user.Account = "179708064356";
Console.WriteLine("请输入用户密码:");
user.Password = Console.ReadLine();
Console.WriteLine("请输入用户身份证号:");
user.Id = Console.ReadLine();
Console.WriteLine("请输入用户存款金额:");
user.Balance = double.Parse(Console.ReadLine());
Console.WriteLine("账户{0},用户名:{1},存款金额:{2} 创建成功!",user.Account,user.Name,user.Balance);
}
public void WithDraw() //取款
{
string account = ""; //账号
string pwd; //密码
Console.WriteLine("请输入账号:");
account = Console.ReadLine();
if (account.Length == 0)
{
Console.WriteLine("输入的账号不正确!");
return;
}
Console.WriteLine("请输入账户密码:");
pwd = Console.ReadLine();
if (user.Password != pwd)
{
Console.WriteLine("密码有误!");
return;
}
Console.WriteLine("请输入取款金额");
double money = double.Parse(Console.ReadLine());
double result = user.MinusMoney(money);
if (result == -1)
{
Console.WriteLine("取款失败");
}
else
{
Console.WriteLine("取款成功!当前余额:"+result);
}
}
public void ShowCustomMenu() //菜单
{
string option = "";
do
{
Console.WriteLine("==================欢迎使用自动银行服务==================");
Console.WriteLine("1:开户 2:存款 3:取款 4:转账 5:查询余额 6:修改密码 0:退出");
Console.WriteLine("========================================================");
option = Console.ReadLine();
switch (option)
{
case "1": //开户
CreateAccount();
continue;
case "2": //存款
Deposit();
continue;
case "3": //取款
WithDraw();
continue;
case "4": //转账
InputTransferData();
continue;
case "5": //查询余额
ShowUser();
continue;
case "6": //修改密码
ModifyPwd();
continue;
case "0": //退出
break;
default:
Console.WriteLine("输入无效");
continue;
}
break;
} while (true);
}
public void Deposit() //存款
{
string account = "";
double money = 0;
Console.WriteLine("请输入账号:");
account=Console.ReadLine();
if ((user=CheckUserByAccount(account))==null)
{
Console.WriteLine("您输入的账号不存在!");
}
Console.WriteLine("请输入存款金额:");
money=double.Parse(Console.ReadLine());
if (user.SaveMoney(money) > 0)
{
Console.WriteLine(MESSAGE+"当前余额:"+user.Balance);
}
else
{
Console.WriteLine("存款失败!");
}
}
private User CheckUserByAccount(string account) //判断用户是否存在
{
foreach (User user in userGroup)
{
if (user.Account == account)
{
return user;
}
}
return null;
}
private User CheckUser(string account, string pwd) //根据账号密码判定用户是否存在
{
foreach (User user in userGroup)
{
if (user.Account == account && user.Password == pwd)
{
return user;
}
}
return null;
}
public void InputTransferData() //转账
{
Console.WriteLine("请输入转出账号:");
string fromAccount = Console.ReadLine();
Console.WriteLine("请输入转出账户密码:");
string fromPwd = Console.ReadLine();
Console.WriteLine("请输入转入账号:");
string toAccount = Console.ReadLine();
Console.WriteLine("请输入转账金额:");
double money = double.Parse(Console.ReadLine());
double fbalance = 0, tbalance = 0;
int iRet = Transfer(fromAccount, fromPwd, toAccount, money, ref fbalance, ref tbalance);
if (iRet == 1)
{
Console.WriteLine("转账成功,转出账号{0}的余额为:{1},转入账号{2}的余额位:{3}",fromAccount,fbalance,toAccount,tbalance);
}
else if(iRet==-1)
{
Console.WriteLine("转出账户的账号或密码输入错误!");
}
else if (iRet==-2)
{
Console.WriteLine("转入账号不正确!");
}
else if (iRet==-3)
{
Console.WriteLine("转账操作失败!");
}
}
///<param name="fAccount">转出账号</param>
///<param name="fPwd">转出账户密码</param>
///<param name="tAccount">转入账号</param>
///<param name="money">转账金额</param>
///<param name="fBalance">转出账户存款余额</param>
///<param name="tBalance">转入账户存款余额</param>
///<returns>1:转账成功;-1:转出账号或密码不正确;
///-2:转入账号不正确;-3转账失败</returns>
private int Transfer(string fAccount, string fPwd, string tAccount, double money, ref double fBalance, ref double tBalance)
{
//检查转出账号和密码
User userfrom = CheckUser(fAccount, fPwd);
if (userfrom==null)
{
return -1; //转出账号或密码不正确
}
//检查转入账号
User userTo = CheckUserByAccount(tAccount);
if (userTo==null)
{
return -2; //转入账号不正确
}
//取款
if (userfrom.MinusMoney(money) == -1)
{
return -3; //转账操作失败
}
//取得余额
fBalance = userfrom.Balance;
//存款
if (userTo.SaveMoney(money)==-1)
{
return -3; //转账操作失败
}
tBalance = userTo.Balance;
return 1;
}
public void ShowUser()
{
string account = "";
string pwd = "";
Console.WriteLine("请输入账号:");
account = Console.ReadLine();
Console.WriteLine("请输入密码:");
pwd = Console.ReadLine();
if ((user = CheckUserByAccount(account)) == null)
{
Console.WriteLine("当前账号不存在!");
}
else
{
if ((user=CheckUser(account,pwd))==null)
{
Console.WriteLine("输入密码不正确:");
}
else
{
Console.WriteLine("账户的余额是:"+String.Format("{0:F2}",user.Balance));
}
}
}
public void ModifyPwd() //修改密码
{
string accountName = "";
string password = "";
Console.WriteLine("请输入账号:");
accountName = Console.ReadLine();
Console.WriteLine("请输入原密码:");
password = Console.ReadLine();
string newPwd1, newPwd2;
Console.WriteLine("请输入新密码:");
newPwd1 = Console.ReadLine();
Console.WriteLine("请再次输入新密码:");
newPwd2 = Console.ReadLine();
if (CheckPwd(accountName,password,newPwd1,newPwd2)==true)
{
Console.WriteLine("账户密码修改成功!");
}
else
{
Console.WriteLine("账户密码修改失败!");
}
}
public bool CheckPwd(string accountName, string password, string newPwd1, string newPwd2)
{
User user = CheckUser(accountName, password);
if (user==null)
{
Console.WriteLine("当前账号不存在");
return false;
}
if (newPwd1!=newPwd2)
{
Console.WriteLine("两次输入的账户密码不一致!");
return false;
}
else
{
user.Password = newPwd1;
return true;
}
}
}
}
namespace MyBank
{
class Program
{
static void Main(string[] args)
{
Bank bank = new Bank();
//bank.CreateAccount();
bank.Initial();
bank.ShowCustomMenu();
Console.ReadLine();
}
}
}