Java基礎知識綜合練習_簡單的銀行賬戶作業系統
阿新 • • 發佈:2019-01-09
使用java實現一個簡單的銀行賬戶類,
其中包括:
賬戶資訊:
賬號、
姓名、
開戶時間、
身份證號碼、
賬戶上的金額
等成員。
有:
存款方法、
取款方法、
顯示開戶時間的方法、
獲得賬上的金額的方法
等。
並編寫測試類。
賬戶類:
1 public class TestDay12_2_Account { 2 3 String id;//帳號 4 int password;//密碼 5 String name;//姓名 6 String personId;//身份證號 7 double balance = 0.0; 8 String time;9 10 public TestDay12_2_Account() { 11 super(); 12 } 13 14 public TestDay12_2_Account(String id, int password, String name, String personId, String time) { 15 super(); 16 this.id = id; 17 this.password = password; 18 this.name = name; 19 this.personId = personId; 20 this.time = time; 21 } 22 23 // 存款方法 24 public void deposit(double balance) { 25 this.balance += balance; 26 System.out.println("成功存入" + balance + "元"); 27 System.out.println("當前總餘額為:" + this.balance + "元"); 28 } 29 30 // 取款方法 31public void withdraw(double balance) { 32 this.balance -= balance; 33 System.out.println("成功取出" + balance + "元"); 34 System.out.println("當前總餘額為:" + this.balance + "元"); 35 } 36 37 // 輸出資訊 38 public String test() { 39 return "id:" + id + "\r姓名:" + name + "\r身份證號:" + personId + "\r當前餘額:" + balance + "\r開戶時間:" + time; 40 } 41 }
賬戶操作類:
1 public class TestDay12_2_AccountTool { 2 3 // 起始介面 4 public static int begin() { 5 System.out.println("請選擇您要執行的操作(輸入數字):"); 6 System.out.println("1.登入"); 7 System.out.println("2.註冊"); 8 System.out.println("0.退出"); 9 int operation = TestDay12_2_AccountTool.getInt("==================="); 10 return operation; 11 } 12 13 // 註冊方法 14 public static TestDay12_2_Account register() { 15 TestDay12_2_Account a = new TestDay12_2_Account(); 16 17 a.id = TestDay12_2_AccountTool.getString("請設定使用者名稱:"); 18 a.password = TestDay12_2_AccountTool.getInt("請設定密碼(數字):");// 密碼 19 a.name = TestDay12_2_AccountTool.getString("請輸入您的姓名:");// 姓名 20 a.personId = TestDay12_2_AccountTool.getString("請輸入您的身份證號:");// 身份證號 21 a.balance = 0.0; 22 // 建立日期物件 23 Date d = new Date(); 24 // 給定模式 25 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 26 String s = sdf.format(d); 27 a.time = s; 28 return a; 29 } 30 31 // 登入密碼錯誤執行 32 public static int loginerror() { 33 int x = 0; 34 System.out.println("使用者名稱或密碼錯誤,請選擇您要執行的操作(輸入數字):"); 35 System.out.println("1.重試"); 36 System.out.println("2.退出"); 37 int operationerror = TestDay12_2_AccountTool.getInt("==================="); 38 switch (operationerror) { 39 case 1: 40 break; 41 case 2: 42 x = 1; 43 break; 44 default: 45 System.out.println("請輸入指定的數字"); 46 break; 47 } 48 return x; 49 } 50 51 // 登入成功執行 52 public static void loginyes(TestDay12_2_Account a) { 53 System.out.println("======登入成功======"); 54 while (true) { 55 System.out.println("請選擇您要執行的操作(輸入數字):"); 56 System.out.println("1.查詢"); 57 System.out.println("2.存款"); 58 System.out.println("3.取款"); 59 System.out.println("0.退出"); 60 61 // 獲取運算元字 62 int operationnum = TestDay12_2_AccountTool.getInt("==================="); 63 // 判斷是否退出 64 if (operationnum == 0) { 65 break; 66 } 67 68 // 執行運算元 69 TestDay12_2_AccountTool.operationnum(a, operationnum); 70 } 71 } 72 73 // 具體操作方法 74 public static void operationnum(TestDay12_2_Account a, int operationnum) { 75 // 具體操作執行 76 switch (operationnum) { 77 case 1: 78 // 輸出資訊 79 System.out.println(a.test()); 80 break; 81 case 2: 82 // 存款操作 83 System.out.println("請輸入存入金額"); 84 double deposit = Double.parseDouble(TestDay12_2_AccountTool.getmoney("===================")); 85 a.deposit(deposit); 86 break; 87 case 3: 88 // 取款操作 89 System.out.println("請輸入取出金額"); 90 double withdraw = Double.parseDouble(TestDay12_2_AccountTool.getmoney("===================")); 91 a.withdraw(withdraw); 92 break; 93 default: 94 System.out.println("請輸入指定的數字"); 95 break; 96 } 97 } 98 99 // 獲取文字資料 100 public static String getString(String i) { 101 // 建立鍵盤物件 102 @SuppressWarnings("resource") 103 Scanner sc = new Scanner(System.in); 104 105 // 輸入提示 106 System.out.println(i); 107 // 賦值資料 108 String x = sc.next(); 109 return x; 110 } 111 112 // 獲取整數資料 113 public static int getInt(String i) { 114 // 建立鍵盤物件 115 @SuppressWarnings("resource") 116 Scanner sc = new Scanner(System.in); 117 118 // 輸入提示 119 System.out.println(i); 120 while (true) { 121 if (sc.hasNextInt()) { 122 // 賦值資料 123 int x = sc.nextInt(); 124 return x; 125 } else { 126 System.out.println("請輸入整數數字"); 127 sc = new Scanner(System.in); 128 } 129 } 130 } 131 132 // 獲取金額資料(整數/小數) 133 public static String getmoney(String i) { 134 // 建立鍵盤物件 135 @SuppressWarnings("resource") 136 Scanner sc = new Scanner(System.in); 137 138 // 輸入提示 139 System.out.println(i); 140 while (true) { 141 if (sc.hasNextDouble()) { 142 String x = Double.toString(sc.nextDouble()); 143 return x; 144 } else { 145 System.out.println("請輸入數字"); 146 sc = new Scanner(System.in); 147 } 148 } 149 } 150 }
主類:
1 import java.util.ArrayList; 2 3 public class TestDay12_2 { 4 public static void main(String[] args) { 5 ArrayList<TestDay12_2_Account> l = new ArrayList<TestDay12_2_Account>(); 6 // 建立物件 7 TestDay12_2_Account a = new TestDay12_2_Account("yang", 123456, "楊金儒", "21102219*********", "[email protected]"); 8 l.add(a); 9 System.out.println("======歡迎光臨======"); 10 // 賬戶操作迴圈 11 while (true) { 12 int operation = TestDay12_2_AccountTool.begin(); 13 if (operation == 1) { 14 System.out.println("======請登入======"); 15 // 登入迴圈 16 while (true) { 17 // String id = DiyToolsaaa.DiyOperation.getString(i); 18 String id = TestDay12_2_AccountTool.getString("請輸入使用者名稱:"); 19 int password = Integer.parseInt(TestDay12_2_AccountTool.getString("請輸入密碼:")); 20 //登入成功標記 21 boolean access = false; 22 for (TestDay12_2_Account user : l) { 23 if (id.equals(user.id) && password == user.password) { 24 access = true; 25 TestDay12_2_AccountTool.loginyes(user); 26 break; 27 } 28 } 29 if (!access) { 30 // 登入密碼錯誤執行 31 int loginerrorreturn = TestDay12_2_AccountTool.loginerror(); 32 if (loginerrorreturn == 1) { 33 break; 34 } 35 } 36 } 37 } else if (operation == 2) { 38 l.add(TestDay12_2_AccountTool.register()); 39 System.out.println("======註冊成功======"); 40 } else if (operation == 0) { 41 break; 42 } else { 43 System.out.println("請輸入指定的數字"); 44 } 45 } 46 System.out.println("---------------"); 47 System.out.println("程式已結束"); 48 } 49 }