Java基础知识综合练习_简单的银行账户操作系统(登录、注册、存取款、查看信息)

时间:2024-02-22 21:57:28

使用java实现一个简单的银行账户类,

中包括:
账户信息:
账号、
姓名、
开户时间、
身份证号码、
账户上的金额
等成员。
有:
存款方法、
取款方法、
显示开户时间的方法、
获得账上的金额的方法
等。
并编写测试类。

 

账户类:

 1 import java.util.ArrayList;
 2 
 3 public class TestDay18_5_Account {
 4     {
 5         l.add(new TestDay18_5_Account("yang", 123456, "杨金儒", "21102219*********", "123456@qq.com"));
 6     }
 7     private static ArrayList<TestDay18_5_Account> l = new ArrayList<TestDay18_5_Account>();
 8     private String id;//帐号
 9     private int password;//密码
10     private String name;//姓名
11     private String personId;//身份证号
12     private double balance = 0.0;
13     private String time;
14 
15     public TestDay18_5_Account() {
16         super();
17     }
18 
19     public TestDay18_5_Account(String id, int password, String name, String personId, String time) {
20         super();
21         this.id = id;
22         this.password = password;
23         this.name = name;
24         this.personId = personId;
25         this.time = time;
26     }
27 
28     public static ArrayList<TestDay18_5_Account> getL() {
29         return l;
30     }
31     
32     public String getId() {
33         return id;
34     }
35 
36     public void setId(String id) {
37         this.id = id;
38     }
39 
40     public int getPassword() {
41         return password;
42     }
43 
44     public void setPassword(int password) {
45         this.password = password;
46     }
47 
48     public String getName() {
49         return name;
50     }
51 
52     public void setName(String name) {
53         this.name = name;
54     }
55 
56     public String getPersonId() {
57         return personId;
58     }
59 
60     public void setPersonId(String personId) {
61         this.personId = personId;
62     }
63 
64     public double getBalance() {
65         return balance;
66     }
67 
68     public void setBalance(double balance) {
69         this.balance = balance;
70     }
71 
72     public String getTime() {
73         return time;
74     }
75 
76     public void setTime(String time) {
77         this.time = time;
78     }
79 
80     // 存款方法
81     public void deposit(double balance) {
82         this.balance += balance;
83         System.out.println("成功存入" + balance + "元");
84         System.out.println("当前总余额为:" + this.balance + "元");
85     }
86 
87     // 取款方法
88     public void withdraw(double balance) {
89         this.balance -= balance;
90         System.out.println("成功取出" + balance + "元");
91         System.out.println("当前总余额为:" + this.balance + "元");
92     }
93 
94     // 输出信息
95     public String test() {
96         return "id:" + id + "\r姓名:" + name + "\r身份证号:" + personId + "\r当前余额:" + balance + "\r开户时间:" + time;
97     }
98 }

 

账户操作类:

  1 package Day18test;
  2 
  3 import java.util.Date;
  4 import java.text.SimpleDateFormat;
  5 import java.util.Scanner;
  6 
  7 public class TestDay18_5_AccountTool {
  8 
  9 
 10     public TestDay18_5_AccountTool() {
 11         super();
 12         // TODO Auto-generated constructor stub
 13     }
 14 
 15     // 起始界面
 16     public static int begin() {
 17         System.out.println("|-----------------------------|");
 18         System.out.println("|请选择您要执行的操作(输入数字):  |");
 19         System.out.println("|1.登录                                                       |");
 20         System.out.println("|2.注册                                                       |");
 21         System.out.println("|0.退出                                                       |");
 22 //        System.out.println("|-----------------------------|");
 23         int operation = TestDay18_5_AccountTool.getInt("|-----------------------------|");
 24         return operation;
 25     }
 26 
 27     // 登录方法
 28     public static void login() {
 29 
 30         // 登录循环
 31         while (true) {
 32             // String id = DiyToolsaaa.DiyOperation.getString(i);
 33             String id = TestDay18_5_AccountTool.getString("请输入用户名:");
 34             int password = Integer.parseInt(TestDay18_5_AccountTool.getString("请输入密码:"));
 35             // 登录成功标记
 36             boolean access = false;
 37             for (TestDay18_5_Account user : TestDay18_5_Account.getL()) {
 38                 if (id.equals(user.getId()) && password == user.getPassword()) {
 39                     access = true;
 40                     TestDay18_5_AccountTool.loginyes(user);
 41                     break;
 42                 }
 43             }
 44             if (!access) {
 45                 // 登录密码错误执行
 46                 int loginerrorreturn = TestDay18_5_AccountTool.loginerror();
 47                 if (loginerrorreturn == 1) {
 48                     break;
 49                 }
 50             }
 51         }
 52     }
 53 
 54     // 注册方法
 55     public static void register() {
 56         TestDay18_5_Account a = new TestDay18_5_Account();
 57 
 58         a.setId(TestDay18_5_AccountTool.getString("请设置用户名:"));
 59         a.setPassword(TestDay18_5_AccountTool.getInt("请设置密码(数字):"));// 密码
 60         a.setName(TestDay18_5_AccountTool.getString("请输入您的姓名:"));// 姓名
 61         a.setPersonId(TestDay18_5_AccountTool.getString("请输入您的身份证号:"));// 身份证号
 62         a.setBalance(0.0);
 63         // 创建日期对象
 64         Date d = new Date();
 65         // 给定模式
 66         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
 67         String s = sdf.format(d);
 68         a.setTime(s);
 69         TestDay18_5_Account.getL().add(a);
 70     }
 71 
 72     // 登录密码错误执行
 73     public static int loginerror() {
 74         int x = 0;
 75         System.out.println("|------------------------------------------|");
 76         System.out.println("|用户名或密码错误,请选择您要执行的操作(输入数字):|");
 77         System.out.println("|1.重试                                                                                     |");
 78         System.out.println("|2.退出                                                                                     |");
 79 //        System.out.println("|------------------------------------------|");
 80         int operationerror = TestDay18_5_AccountTool.getInt("|------------------------------------------|");
 81         switch (operationerror) {
 82         case 1:
 83             break;
 84         case 2:
 85             x = 1;
 86             break;
 87         default:
 88             System.out.println("请输入指定的数字");
 89             break;
 90         }
 91         return x;
 92     }
 93 
 94     // 登录成功执行
 95     public static void loginyes(TestDay18_5_Account a) {
 96         System.out.println("======登录成功======");
 97         while (true) {
 98             System.out.println("|-----------------------------|");
 99             System.out.println("|请选择您要执行的操作(输入数字):  |");
100             System.out.println("|1.查询                                                       |");
101             System.out.println("|2.存款                                                       |");
102             System.out.println("|3.取款                                                       |");
103             System.out.println("|0.退出                                                       |");
104 //            System.out.println("|-----------------------------|");
105 
106             // 获取操作数字
107             int operationnum = TestDay18_5_AccountTool.getInt("|-----------------------------|");
108             // 判断是否退出
109             if (operationnum == 0) {
110                 break;
111             }
112 
113             // 执行操作数
114             TestDay18_5_AccountTool.operationnum(a, operationnum);
115         }
116     }
117 
118     // 具体操作方法
119     public static void operationnum(TestDay18_5_Account a, int operationnum) {
120         // 具体操作执行
121         switch (operationnum) {
122         case 1:
123             // 输出信息
124             System.out.println(a.test());
125             break;
126         case 2:
127             // 存款操作
128             System.out.println("请输入存入金额");
129             double deposit = Double.parseDouble(TestDay18_5_AccountTool.getmoney("==================="));
130             a.deposit(deposit);
131             break;
132         case 3:
133             // 取款操作
134             System.out.println("请输入取出金额");
135             double withdraw = Double.parseDouble(TestDay18_5_AccountTool.getmoney("==================="));
136             a.withdraw(withdraw);
137             break;
138         default:
139             System.out.println("请输入指定的数字");
140             break;
141         }
142     }
143 
144     // 获取文本数据
145     public static String getString(String i) {
146         // 创建键盘对象
147         @SuppressWarnings("resource")
148         Scanner sc = new Scanner(System.in);
149 
150         // 输入提示
151         System.out.println(i);
152         // 赋值数据
153         String x = sc.next();
154         return x;
155     }
156 
157     // 获取整数数据
158     public static int getInt(String i) {
159         // 创建键盘对象
160         @SuppressWarnings("resource")
161         Scanner sc = new Scanner(System.in);
162 
163         // 输入提示
164         System.out.println(i);
165         while (true) {
166             if (sc.hasNextInt()) {
167                 // 赋值数据
168                 int x = sc.nextInt();
169                 return x;
170             } else {
171                 System.out.println("请输入整数数字");
172                 sc = new Scanner(System.in);
173             }
174         }
175     }
176 
177     // 获取金额数据(整数/小数)
178     public static String getmoney(String i) {
179         // 创建键盘对象
180         @SuppressWarnings("resource")
181         Scanner sc = new Scanner(System.in);
182 
183         // 输入提示
184         System.out.println(i);
185         while (true) {
186             if (sc.hasNextDouble()) {
187                 String x = Double.toString(sc.nextDouble());
188                 return x;
189             } else {
190                 System.out.println("请输入数字");
191                 sc = new Scanner(System.in);
192             }
193         }
194     }
195 }

 

主类:

 1 package Day18test;
 2 
 3 public class TestDay18_5 {
 4     public static void main(String[] args) {
 5 
 6         System.out.println("======欢迎光临======");
 7         // 账户操作循环
 8         while (true) {
 9             int operation = TestDay18_5_AccountTool.begin();
10             if (operation == 1) {
11                 System.out.println("======请登录======");
12                 TestDay18_5_AccountTool.login();
13             } else if (operation == 2) {
14                 TestDay18_5_AccountTool.register();
15             } else if (operation == 0) {
16                 break;
17             } else {
18                 System.out.println("请输入指定的数字");
19             }
20         }
21         System.out.println("---------------");
22         System.out.println("程序已结束");
23     }
24 }