文件名称:关于ATM的C#源代码,完整!!
文件大小:34KB
文件格式:RAR
更新时间:2012-01-07 16:29:55
关于ATM的C#源代码
老师认为较成功的程序 // ATM.cs // ATM项目中的ATM类源文件 using System; using System.Collections.Generic; using System.Text; namespace ATM { class ATM { private const string quitCode = "20060824"; private Bank bank; public ATM(Bank bank) { this.bank = bank; } public void Start() { while (true) { // 主界面 PrintLogo(); Console.WriteLine(" 1. 开户 "); Console.WriteLine(" 2. 登录 "); 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("----------------------------------------------"); } 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); // 递归调用InputNumber } 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("---------------------------"); } } }
【文件预览】:
ATM
----ATM.sln(898B)
----ATM()
--------Program.cs(347B)
--------Account.cs(4KB)
--------ClassDiagram2.cd(1B)
--------obj()
--------bin()
--------ClassDiagram1.cd(1KB)
--------ATM.cs(8KB)
--------Properties()
--------ATM.csproj(2KB)
--------Bank.cs(2KB)
----ATM.suo(17KB)