1. 程式人生 > >Java基礎知識綜合練習_簡單的銀行賬戶作業系統

Java基礎知識綜合練習_簡單的銀行賬戶作業系統

使用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 // 取款方法 31
public 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 }