📄 atm.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
namespace ATM
{
class ATM
{
private const string quitCode = "3";
private Bank bank;
public ATM(Bank bank)
{
this.bank = bank;
}
public void Start()
{
while (true)
{
// 主界面
PrintLogo();
Console.WriteLine(" 1. 开户 ");
Console.WriteLine(" 2. 登录 ");
Console.WriteLine(" 3. 退出 ");
Console.WriteLine("----------------------------------------------");
Console.WriteLine("");
Console.Write("你的选择(回车结束):");
string code = Console.ReadLine();
// quit system
if (code == quitCode) // 退出
return;
if (code == "1") // 开户
OpenAccount();
else if (code == "2") // 登陆
LoginAccount();
}
}
private void LoginAccount()
{
PrintLogo();
Console.WriteLine(" 请输入你的帐号的用户名和密码 ");
Console.WriteLine("----------------------------------------------");
Console.WriteLine("");
string name = Input("用户名(回车结束):");
string password = Input("密码(回车结束):");
// 登录帐号
Account account;
if (!bank.LoginAccount(name, password, out account))
{
Console.Write("登录错误,请检查用户名和密码是否正确。按Enter键继续...");
Console.Read();
}
else
{
ManageAccount(ref account);
}
}
private void OpenAccount()
{
PrintLogo();
Console.WriteLine(" 请输入你的帐号的用户名和密码 ");
Console.WriteLine("----------------------------------------------");
Console.WriteLine("");
string name = Input("用户名(回车结束):");
string password = Input("密码(回车结束):");
// 开户
Account account;
if (!bank.OpenAccount(name, password, out account))
{
Console.Write("开户错误,用户名可能已经存在。按Enter键继续...");
Console.Read();
}
else
{
Print("开户", 0, account);
Pause();
ManageAccount(ref account);
}
}
private void ManageAccount(ref Account account)
{
while (true)
{
// 管理帐号界面
PrintLogo();
Console.WriteLine(" 1. 存款 ");
Console.WriteLine(" 2. 取款 ");
Console.WriteLine(" 3. 查询余额 ");
Console.WriteLine(" 4. 修改密码 ");
Console.WriteLine(" 5. 退出 ");
Console.WriteLine("----------------------------------------------");
Console.WriteLine("");
Console.Write("你的选择(回车结束):");
string code = Console.ReadLine();
decimal amount;
bool succeed;
switch (code)
{
case "1":
amount = InputNumber("\n输入存款数目:");
succeed = account.Deposit(amount);
if (succeed)
{
Print("存入", amount, account);
}
else
{
Console.WriteLine("存款失败!");
}
Pause();
break;
case "2":
amount = InputNumber("\n输入取款数目:");
succeed = account.Withdraw(amount);
if (succeed)
{
Print("取出", amount, account);
}
else
{
Console.WriteLine("取款失败!");
}
Pause();
break;
case "3":
Print(account);
Pause();
break;
case "4":
string oldPassword = Input("当前密码(回车结束):");
string newPassword = Input("新密码(回车结束):");
succeed = account.ChangePassword(oldPassword, newPassword);
if (succeed)
Console.WriteLine("密码修改成功!");
else
Console.WriteLine("密码修改失败!");
Pause();
break;
case "5":
return;
default:
break;
}
}
}
private void PrintLogo()
{
Console.WriteLine("\n----------------------------------------------");
Console.WriteLine(" {0}自动取款机 ", bank.Name);
Console.WriteLine(" 用户第一 瓜瓜至上");
Console.WriteLine("----------------------------------------------");
}
private string Input(string prompt)
{
Console.Write(prompt);
string str = Console.ReadLine();
while (str == "")
{
Console.Write("不能为空,{0}", prompt);
str = Console.ReadLine();
}
return str;
}
private decimal InputNumber(string prompt)
{
Console.Write(prompt);
string s = Console.ReadLine();
decimal amount = 0;
try
{
amount = Decimal.Parse(s);
}
catch (Exception)
{
Console.Write("输入的数值格式不正确,请重新输入!");
amount = InputNumber(prompt);
}
return amount;
}
private void Pause()
{
Console.Write("按Enter键继续...");
Console.Read();
}
private void Print(string operation, decimal amount, Account account)
{
Console.WriteLine("---------------------------");
Console.WriteLine("姓名: {0}", account.Name);
Console.WriteLine("{0}: {1}", operation, amount);
Console.WriteLine("余额: {0}", account.Balance);
Console.WriteLine("---------------------------");
Console.WriteLine("{0}成功!", operation);
}
public void Print(Account account)
{
Console.WriteLine("---------------------------");
Console.WriteLine("姓名: {0}", account.Name);
Console.WriteLine("余额: {0}", account.Balance);
Console.WriteLine("---------------------------");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -