ATM.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System;
  2. namespace FacadePattern
  3. {
  4. public class ATM
  5. {
  6. public void DisplayUi()
  7. {
  8. var facade = new AtmFacade();
  9. while (true)
  10. try
  11. {
  12. if (!facade.IsLogin())
  13. {
  14. Console.WriteLine("请输入银行卡号:");
  15. var bkNo = Console.ReadLine();
  16. Console.WriteLine("请输入密码:");
  17. var pwd = Console.ReadLine();
  18. facade.Login(bkNo, pwd);
  19. }
  20. else
  21. {
  22. ShowBusiness(facade);
  23. }
  24. }
  25. catch (Exception ex)
  26. {
  27. Console.ForegroundColor = ConsoleColor.Red;
  28. Console.WriteLine(ex.Message);
  29. Console.ResetColor();
  30. }
  31. }
  32. private static void ShowBusiness(AtmFacade facade)
  33. {
  34. Console.WriteLine("==========================================");
  35. Console.WriteLine("欢迎你!请选择服务项目:");
  36. Console.WriteLine("1、取款");
  37. Console.WriteLine("2、存款");
  38. Console.WriteLine("3、转账");
  39. Console.WriteLine("4、查询余额");
  40. Console.WriteLine("5、清屏");
  41. Console.WriteLine("==========================================");
  42. var pressKey = Console.ReadKey();
  43. switch (pressKey.Key)
  44. {
  45. case ConsoleKey.D1:
  46. Console.WriteLine();
  47. Console.WriteLine("请输入取款金额:");
  48. var money = Convert.ToInt32(Console.ReadLine());
  49. facade.WithdrewCash(money);
  50. break;
  51. case ConsoleKey.D2:
  52. Console.WriteLine();
  53. Console.WriteLine("请输入存款金额:");
  54. var depositNum = Convert.ToInt32(Console.ReadLine());
  55. facade.DepositCash(depositNum);
  56. break;
  57. case ConsoleKey.D3:
  58. Console.WriteLine();
  59. Console.WriteLine("请输入目标账号:");
  60. var targetNo = Console.ReadLine();
  61. Console.WriteLine("请输入转账金额:");
  62. var transferNum = Convert.ToInt32(Console.ReadLine());
  63. facade.TransferMoney(targetNo, transferNum);
  64. break;
  65. case ConsoleKey.D4:
  66. Console.WriteLine();
  67. facade.QueryBalance();
  68. break;
  69. case ConsoleKey.D5:
  70. Console.Clear();
  71. break;
  72. default:
  73. Console.ForegroundColor = ConsoleColor.Red;
  74. Console.WriteLine("输入有误,请重新输入");
  75. Console.ResetColor();
  76. break;
  77. }
  78. }
  79. }
  80. }