








1 package com.kai.li.atm;
2
3 /**
4 *客户端
5 *@author kaili
6 */
7 public class Client{
8 public static void main(String[] args){
9 new MainView(); //启动主界面
10 }
11 }
1 package com.kai.li.atm;
2
3 import java.io.IOException;
4 import com.kai.li.myutils.MyUtils;
5
6 /**
7 *主界面
8 */
9 public class MainView{
10
11 private MainController mainController; //定义主界面控制变量
12
13 /*构造函数初始化主界面*/
14 MainView(){
15 mainController = new MainController(); //初始化主界面控制器
16 display(); //显示主界面视图
17 selectView(); //根据用户输入,启动相应视图界面
18 }
19
20 /*显示主界面*/
21 public void display(){
22 try{
23 System.out.println(mainController.getFileContents());
24 }catch(Exception e){
25 e.printStackTrace();
26 }
27 }
28
29 /*根据用户输入,启动相应视图界面*/
30 public void selectView(){
31 mainController.selectView(MyUtils.scanner());
32 }
33
34 }
1 package com.kai.li.atm;
2
3 /**
4 *主界面控制器
5 *根据用户输入进入子界面
6 **/
7
8 public class MainController{
9
10 /*定义主界面数据模型变量*/
11 private MainModel mainModel;
12
13 /*构造方法初始化主界面数据模型对象*/
14 MainController(){
15 this.mainModel = new MainModel();
16 }
17
18 /*根据用户输入进入相应子界面*/
19 public void selectView(String str){
20 switch(str){
21 case "0":
22 new CreatAccountView(); //启动注册账户界面视图
23 break;
24 case "1":
25 new SearchView(); //启动查询账户界面视图
26 break;
27 case "2":
28 new DepositView(); //启动存款界面视图
29 break;
30 case "3":
31 new WithdrawalView(); //启动提款界面视图
32 break;
33 case "4":
34 exit(); //退出应用程序
35 break;
36 default:
37 showMessageAndNew(); //默认提示信息并重新启动主界面视图
38 }
39 }
40
41 /*获取保存在文件中的数据内容*/
42 public String getFileContents()throws Exception{
43 return mainModel.getFileContents();
44 }
45
46 /*退出系统的方法定义*/
47 public void exit(){
48 System.out.println("您已经安全退出ATM系统。谢谢使用!");
49 System.exit(1);
50 }
51 /*信息提示并重新启动主界面视图*/
52 public void showMessageAndNew(){
53 System.out.println("
你选择的菜单不存在!");
54 System.out.println("请重新选择:");
55 new MainView();
56 }
57 }
1 package com.kai.li.atm;
2
3 import java.io.IOException;
4 import com.kai.li.myutils.MyUtils;
5
6
7 /**
8 *主界面数据模型类
9 */
10 public class MainModel{
11
12 /*获取保存在文件中的数据*/
13 public String getFileContents()throws IOException{
14 return MyUtils.readFileContents("d:/mainview.txt");
15 }
16
17 }
1 package com.kai.li.atm;
2
3 import static com.kai.li.myutils.MyUtils.scanner;
4 import com.kai.li.unionpay.ICard;
5 import com.kai.li.abc.Card;
6
7 /**
8 *开户视图类
9 */
10 public class CreatAccountView{
11
12 /**
13 *变量定义
14 */
15 private CreatAccountController creatAccountController; //定义开户控制变量
16 private Card card; //定义银行卡变量
17
18 /**
19 *构造方法完成界面功能
20 *信息提示与接收用户输入
21 */
22 CreatAccountView(){
23
24 this.creatAccountController = new CreatAccountController(); //初始化账户控制器
25 display(); //显示开户界面
26
27 showMessageName(); //提示输入姓名信息
28 String name = getName(); //获得用户输入姓名信息
29
30 showMessageId(); //提示输入身份证信息
31 String id = getId(); //获得用户输入的身份证信息
32 checkId(id); //根据用户输入身份信息的合法性完成相应功能
33
34 showMessagePassword(); //提示输入密码信息
35 String password = getPassword(); //获得用户输入的密码信息
36 checkPassword(password); //根据用户输入密码的合法性完成相应功能
37
38 card = new Card(name,id,password); //根据用户输入信息生成银行卡账户
39
40 saveInfo(); //保存银行卡信息到文件
41
42 showMessageSuccess(); //显示开户成功的提示信息
43
44 new MainView(); //返回主界面
45
46 }
47
48 /*从文件获得数据并显示在界面*/
49 public void display(){
50 try{
51 //将从文件获得的数据显示在界面视图中
52 System.out.println(creatAccountController.getFileContents());
53 }catch(Exception e){
54 e.printStackTrace();
55 }
56 }
57
58 /*保存用户信息到文件*/
59 public void saveInfo(){
60 creatAccountController.saveInfo(card); //通过Card类传递数据保存到硬盘中的文件
61 }
62
63 /*接收用户输入姓名,身份证,密码信息*/
64 public String getName(){ //获取用户输入的姓名
65 return scanner();
66 }
67 public String getId(){ //获取用户输入的身份证号
68 return scanner();
69 }
70 public String getPassword(){ //获取用户输入的密码
71 return scanner();
72 }
73
74 /*显示提示性信息*/
75 public void showMessageName(){
76 System.out.println("请输入你的姓名:"); //提示姓名输入
77 }
78 public void showMessageId(){
79 System.out.println("请输入你的身份证号:"); //提示身份证号输入
80 }
81 public void showMessagePassword(){
82 System.out.println("请输入你的密码:"); //提示密码输入
83 }
84 public void showMessageSuccess(){
85 System.out.println("开户成功,谢谢使用!"); //开户成功的提示信息
86 }
87
88 /*身份证信息检查*/
89 public void checkId(String id){
90 while(!creatAccountController.checkId(id)){
91 System.out.println("身份证格式无效,请重新输入:");
92 id = getId();
93 }
94 }
95 /*密码信息检查*/
96 public void checkPassword(String password){
97 while(!creatAccountController.checkPassword(password)){
98 System.out.println("密码格式无效,请重新输入:");
99 password = getPassword();
100 }
101 }
102
103 }
1 package com.kai.li.atm;
2
3 import java.io.IOException;
4 import com.kai.li.abc.Card;
5 import java.util.regex.Matcher;
6
7 /**
8 *开户控制器
9 */
10 public class CreatAccountController{
11
12 /*定义开户模型*/
13 private CreatAccountModel creatAccountModel;
14
15 /*构造方法*/
16 CreatAccountController(){
17 this.creatAccountModel = new CreatAccountModel();
18 }
19
20 /*从文件获取数据*/
21 public String getFileContents()throws IOException{
22 return creatAccountModel.getFileContents();
23 }
24
25 /*检查身份证信息合法性*/
26 public boolean checkId(String id){
27 if(id.length()==18&&id.matches("[0-9]+"))
28 return true;
29 else
30 return false;
31 }
32
33 /*检查密码信息合法性*/
34 public boolean checkPassword(String password){
35 if(password.length()==6&&password.matches("[0-9]+"))
36 return true;
37 else
38 return false;
39 }
40
41 /*保存用户开户信息*/
42 public void saveInfo(Card card){
43 if(card != null)
44 creatAccountModel.saveInfo(card);
45 }
46 }
1 package com.kai.li.atm;
2
3 import java.io.IOException;
4 import com.kai.li.myutils.MyUtils;
5 import com.kai.li.abc.Card;
6
7 /**
8 *开户数据模型类
9 */
10 public class CreatAccountModel{
11
12 /*获取文件中的数据*/
13 public String getFileContents()throws IOException{
14 return MyUtils.readFileContents("d:/creataccountview.txt");
15 }
16
17 /*将用户输入的数据保存到硬盘中的文件中*/
18 public void saveInfo(Card card){
19 try{
20 MyUtils.writeToFile("d:/card.txt",card);
21 }catch(Exception e){
22 e.printStackTrace();
23
24 }
25 }
26
27 }
1 package com.kai.li.atm;
2
3 import static com.kai.li.myutils.MyUtils.scanner;
4
5 /**
6 *查询视图界面类
7 */
8 public class SearchView{
9
10 /*定义查询控制器变量*/
11 private SearchController searchController;
12
13 /*构造方法完成用户输入及视图展现*/
14 public SearchView(){
15
16 searchController = new SearchController(); //实例化查询控制器
17
18 showMessageIndex(); //显示提示信息
19
20 showMessageCardnumber(); //提示用户输入卡号
21 String cardnumber = getCardnumber(); //获取用户输入的卡号
22 checkCardnumber(cardnumber); //根据卡号输入的合法性执行相应功能
23
24 showMessagePassword(); //提示用户输入密码
25 String password = getPassword(); //获取用户输入的密码
26 checkPassword(password); //根据密码输入的合法性执行相应功能
27 }
28
29 /*界面信息提示的相关方法*/
30 public void showMessageIndex(){ //提示本视图界面功能信息
31 System.out.println("****************");
32 System.out.println("你选择的为查询功能");
33 }
34 public void showMessageCardnumber(){ //提示用户输入卡号
35 System.out.println("请输入您要查询的卡号:");
36 }
37 public void showMessagePassword(){ //提示用户输入密码
38 System.out.println("请输入您的密码:");
39 }
40 public void showMessageEnd(){ //输出成功查询后的相关信息
41 System.out.println();
42 System.out.println("你查询的账号信息为:");
43 System.out.println("*****************************");
44 System.out.println(searchController.searchModel.card);
45 }
46
47 /*数值合法性检查的相关方法*/
48 public void checkCardnumber(String cardnumber){ //检测卡号是否存在
49 while(!searchController.checkCardnumber(cardnumber)){
50 System.out.println("您查询的账户不存在!请重新输入:");
51 cardnumber = getCardnumber();
52 }
53 }
54 public void checkPassword(String password){ //检测密码是否正确
55 int i = 1;
56 while(!searchController.checkPassword(password) && i<3){ //循环判断密码是否正确
57 System.out.println("您的密码不正确!请重新输入:");
58 i++;
59 password = getPassword();
60 }
61 if(i == 3)
62 new MainView(); //如果3次输入错误,则返回主界面
63 showMessageEnd(); //查询成功后的提示信息
64 new MainView(); //启动主界面
65 }
66
67 /*获取用户输入的相关方法*/
68 public String getCardnumber(){ //获取用户输入的卡号
69 return scanner();
70 }
71 public String getPassword(){ //获取用户输入的密码
72 return scanner();
73 }
74
75 }
1 package com.kai.li.atm;
2
3
4 /**
5 *查询账户的控制器类
6 */
7 public class SearchController{
8
9 /*定义查询功能的数据模型变量*/
10 SearchModel searchModel;
11
12 /*构造方法实例化数据模型类并获取账户信息*/
13 public SearchController(){
14
15 this.searchModel = new SearchModel();
16
17 setCard();
18 }
19
20 /*检测卡号是否存在*/
21 public boolean checkCardnumber(String cardnumber){
22 if(!cardnumber.equals(searchModel.card.getCardnumber().trim()))
23 return false;
24 return true;
25 }
26
27 /*检测密码是否正确*/
28 public boolean checkPassword(String password){
29 if(!password.equals(searchModel.card.getPassword().trim()))
30 return false;
31 return true;
32 }
33
34 /*获取账户信息并保存在card对象中*/
35 public void setCard(){
36 try{
37 searchModel.setCard();
38 }catch(Exception e){
39 e.printStackTrace();
40 }
41
42 }
43 }
1 package com.kai.li.atm;
2
3 import static com.kai.li.myutils.MyUtils.readFileContents;
4 import com.kai.li.abc.Card;
5 import java.util.List;
6 import java.util.ArrayList;
7
8 /**
9 *查询功能的数据模型类
10 *没有去实现一个文件中保存多个账户的情况
11 *写入文件的构造方法需要改成true,以追加文本
12 *可以在Card的toString方法中添加字符“账户:”进行分割
13 *分割后其余步骤同下
14 */
15 public class SearchModel{
16
17 /*定义储蓄卡的变量及列表变量*/
18 Card card = new Card();
19 List<String[]> list = new ArrayList<>();
20
21 /*从硬盘文件中读取数据*/
22 public String[] getCardInfo()throws Exception{
23 return readFileContents("d:/card.txt").split("
");
24 }
25
26 /*将读取到的数据转换成card对象的属性*/
27 public void setCard()throws Exception{
28 String[] strs = getCardInfo(); //定义临时变量保存按行分割后的字符数组
29 for(String str:strs){ //遍历数组并按:分割后保存进列表
30 list.add(str.split(":"));
31 }
32 for(String[] str:list){ //遍历列表,根据数组下标给card对象赋值
33 switch(str[0]){
34 case "姓名":
35 card.setName(str[1]); //给card对象的name属性赋值
36 continue;
37 case "身份证":
38 card.setId(str[1]); //给card对象的id属性赋值
39 continue;
40 case "卡号":
41 card.setCardnumber(str[1]); //给card对象的cardnumber属性赋值
42 continue;
43 case "密码":
44 card.setPassword(str[1]); //给card对象的password属性赋值
45 continue;
46 case "余额":
47 card.setBalance(str[1]); //给card对象的balance属性赋值
48 continue;
49 }
50 }
51 }
52
53 }
1 package com.kai.li.atm;
2
3 import static com.kai.li.myutils.MyUtils.scanner;
4
5 /**
6 *存款的试图界面
7 *本类主要完成视图输出以及用户输入的功能
8 */
9 public class DepositView{
10
11 /*定义控制器变量*/
12 DepositController depositController;
13
14 /*构造方法*/
15 public DepositView(){
16
17 depositController = new DepositController(); //实例化控制器变量
18
19 showMessageIndex(); //界面信息提示
20 String cardnumber = getCardnumber(); //获取用户输入卡号
21 checkCardnumber(cardnumber); //根据用户输入卡号合法性给出相应界面信息
22
23 showMessagePassword(); //界面信息提示,提示用户输入密码
24 String password = getPassword(); //获取用户输入密码
25 checkPassword(password); //根据用户输入密码合法性给出相应界面信息
26
27 showMessageDeposit(); //界面信息提示,输出用户账户信息
28 showMessageCardInfo(); //输出用户的账户具体信息
29
30 showMessageMoney(); //界面信息提示,提示用户输入存款金额
31 String money = getMoney(); //获取用户输入存款金额
32 checkMoney(money); //根据用户输入金额合法性给出相应界面信息
33
34 }
35
36 /*获取用户输入*/
37 public String getCardnumber(){ //获取用户卡号
38 return scanner();
39 }
40 public String getPassword(){ //获取用户密码
41 return scanner();
42 }
43 public String getMoney(){ //获取用户存款金额
44 return scanner();
45 }
46
47 /*根据用户输入数据合法性展示界面提示*/
48 public void checkCardnumber(String cardnumber){ //根据用户输入卡号合法性给出相应界面信息
49 while(!depositController.checkCardnumber(cardnumber)){
50 showMessageCardnumber();
51 cardnumber = getCardnumber();
52 }
53 }
54 public void checkPassword(String password){ //根据用户输入密码合法性给出相应界面信息
55 while(!depositController.checkPassword(password)){
56 showMessageResetPassword();
57 password = getPassword();
58 }
59 }
60 public void checkMoney(String money){ //根据用户输入存款金额合法性给出相应界面信息
61 while(!depositController.checkMoney(money)){
62 showMessageExit();
63 new MainView();
64 }
65 deposit(money); //调用控制器的存款方法
66 showMessageEnd(); //显示存款成功的信息
67 new MainView(); //返回主界面
68 }
69
70
71 /*界面视图内容输出*/
72 public void showMessageIndex(){ //本功能界面信息提示
73 System.out.println("****************");
74 System.out.println("你选择的为存款功能");
75 System.out.println("请输入你要存入的卡号:");
76 }
77 public void showMessageCardnumber(){ //提示卡号不存在,需重新输入
78 System.out.println("您输入的卡号不存在");
79 System.out.println("请重新输入卡号:");
80 }
81 public void showMessagePassword(){ //提示输入密码
82 System.out.println("请输入密码:");
83 }
84 public void showMessageResetPassword(){ //提示密码不正确,需重新输入
85 System.out.println("您输入的密码不正确");
86 System.out.println("请重新输入密码:");
87 }
88 public void showMessageDeposit(){ //提示将显示账户信息
89 System.out.println("您要存款的账户信息为");
90 System.out.println("****************");
91 }
92 public void showMessageMoney(){ //提示输入存款金额
93 System.out.println("请输入您要存款的金额");
94 }
95 public void showMessageExit(){ //提示金额无效
96 System.out.println("您输入的金额无效,系统将回到主界面!");
97 }
98 public void showMessageEnd(){ //提示存款成功
99 System.out.println("存款成功,谢谢使用!");
100 }
101 public void showMessageCardInfo(){ //输出账户信息
102 System.out.println(depositController.depositModel.card);
103 }
104
105 /*将合法的存款金额写入card对象并保存到文件*/
106 public void deposit(String money){ //存入相应金额并保存到文件
107 depositController.deposit(money); //调用控制器的存钱方法
108 }
109 }
1 package com.kai.li.atm;
2
3 import java.util.regex.Matcher;
4
5 /**
6 *存款控制器
7 */
8 public class DepositController{
9
10 /*定义存款模型变量*/
11 DepositModel depositModel;
12
13 /*构造方法*/
14 public DepositController(){
15
16 depositModel = new DepositModel(); //实例化模型对象
17
18 setCard(); //从文件获取账户信息并保存在card对象
19
20 }
21
22 /*从文件获取账户信息并保存在card对象*/
23 public void setCard(){
24 try{
25 depositModel.setCard();
26 }catch(Exception e){
27 e.printStackTrace();
28 }
29 }
30
31 /*检测获取到的用户数据的合法性*/
32 public boolean checkCardnumber(String cardnumber){ //检测卡号是否存在
33 if(!cardnumber.equals(depositModel.card.getCardnumber().trim()))
34 return false; //不存在返回false
35 return true; //存在返回true
36 }
37 public boolean checkPassword(String password){ //检测密码是否正确
38 if(!password.equals(depositModel.card.getPassword().trim()))
39 return false; //不正确返回false
40 return true; //正确返回true
41 }
42 public boolean checkMoney(String money){ //检测存款金额是否合法
43 if(money.matches("[0-9]+")&&Double.parseDouble(money.trim())>0)
44 return true; //是整数并且>0返回true
45 return false; //其他返回false
46 }
47
48 /*存款的方法*/
49 public void deposit(String money){
50 String depositMoney = (Double.parseDouble(money.trim())
51 + Double.parseDouble(depositModel.card.getBalance().trim()))
52 + "";
53 depositModel.card.setBalance(depositMoney);
54 depositModel.saveInfo();
55 }
56 }
1 package com.kai.li.atm;
2
3 import com.kai.li.myutils.MyUtils;
4
5
6 public class DepositModel extends SearchModel{
7
8
9
10 /*将用户输入的数据保存到硬盘中的文件中*/
11 public void saveInfo(){
12 try{
13 MyUtils.writeToFile("d:/card.txt",card);
14 }catch(Exception e){
15 e.printStackTrace();
16
17 }
18 }
19
20 }
1 package com.kai.li.atm;
2
3 import static com.kai.li.myutils.MyUtils.scanner;
4
5 /**
6 *取款视图界面
7 */
8 public class WithdrawalView{
9
10 /*定义控制器变量*/
11 WithdrawalController withdrawalController; //定义控制器变量
12
13 /*构造方法*/
14 public WithdrawalView(){
15
16 withdrawalController = new WithdrawalController(); //初始化控制器对象
17
18 showMessageWithdrawal(); //显示界面视图信息
19 String cardnumber = getCardnumber(); //获取用户输入的卡号
20 checkCardnumber(cardnumber); //检测卡号是否存在并输并给出相关提示信息
21
22 showMessagePassword(); //提示用户输入密码
23 String password = getPassword(); //获取用户输入密码
24 checkPassword(password); //检测密码是否正确并给出相关提示信息
25
26 showMessageCardInfo(); //输出账户信息
27 showMessageMoney(); //提示用户输入取款金额
28 String money = getMoney(); //获取用户输入金额
29 checkMoney(money); //检测金额合法性并给出相关提示信息
30
31 }
32
33 /*获取用户输入*/
34 public String getCardnumber(){ //获取用户输入卡号
35 return scanner();
36 }
37 public String getPassword(){ //获取用户输入密码
38 return scanner();
39 }
40 public String getMoney(){ //获取用户输入金额
41 return scanner();
42 }
43
44 /*根据用户输入合法性做出信息提示*/
45 public void checkCardnumber(String cardnumber){ //卡号是否存在及提示信息
46 while(!withdrawalController.checkCardnumber(cardnumber)){
47 showMessageReset();
48 cardnumber = getCardnumber();
49 }
50 }
51 public void checkPassword(String password){ //密码是否正确及提示信息
52 while(!withdrawalController.checkPassword(password)){
53 showMessagePassword();
54 password = getPassword();
55 }
56 }
57 public void checkMoney(String money){ //存款金额无效及提示信息
58 while(!withdrawalController.checkMoney(money)){
59 showMessageToMainView();
60 new MainView();
61 }
62 withdrawal(money);
63 showMessageSuccess();
64 new MainView();
65 }
66
67 /*视图界面提示信息*/
68 public void showMessageWithdrawal(){ //提示取款功能,提示输入卡号
69 System.out.println("****************");
70 System.out.println("您选择的为取款功能");
71 System.out.println("请输入你要取款的卡号:");
72 }
73 public void showMessageReset(){ //提示用户卡号不存在,需重新输入卡号
74 System.out.println("您输入的卡号不存在,请重新输入");
75 System.out.println("请输入你要取款的卡号:");
76 }
77 public void showMessagePassword(){ //提示用户输入密码
78 System.out.println("请您输入密码:");
79 }
80 public void showMessageResetPassword(){ //提示用户密码输入错误,需重新输入
81 System.out.println("您输入的密码不正确,请重新输入");
82 System.out.println("请您输入密码:");
83 }
84 public void showMessageCardInfo(){ //提示将输出账户信息并输出
85 System.out.println("您要取款的账号信息为");
86 System.out.println("****************");
87 showCardInfo();
88 }
89 public void showMessageMoney(){ //提示用户输入取款金额
90 System.out.println("请输入您要取款的金额:");
91 }
92 public void showMessageToMainView(){ //提示用户输入的取款金额无效
93 System.out.println("您输入的金额无效,系统将自动跳转到主界面!");
94 }
95 public void showMessageSuccess(){ //提示用户取款成功
96 System.out.println("取款成功,谢谢使用!");
97 }
98
99 /*输出用户信息*/
100 public void showCardInfo(){ //将当前card的信息输出
101 System.out.println(withdrawalController.withdrawalModel.card);
102 }
103
104 /*取款并将数据保存到文件*/
105 public void withdrawal(String money){ //调用控制器取款方法并保存数据到文件
106 withdrawalController.withdrawal(money);
107 }
108
109 }
1 package com.kai.li.atm;
2
3 import java.util.regex.Matcher;
4
5 /**
6 *取款控制器
7 */
8 public class WithdrawalController{
9
10 /*定义取款模型变量*/
11 WithdrawalModel withdrawalModel;
12
13 /*构造方法*/
14 public WithdrawalController(){
15
16 withdrawalModel = new WithdrawalModel(); //实例化模型对象
17
18 setCard(); //从文件获取账户信息并保存在card对象
19
20 }
21
22 /*从文件获取账户信息并保存在card对象*/
23 public void setCard(){
24 try{
25 withdrawalModel.setCard();
26 }catch(Exception e){
27 e.printStackTrace();
28 }
29 }
30
31 /*检测获取到的用户数据的合法性*/
32 public boolean checkCardnumber(String cardnumber){ //检测卡号是否存在
33 if(!cardnumber.equals(withdrawalModel.card.getCardnumber().trim()))
34 return false; //不存在返回false
35 return true; //存在返回true
36 }
37 public boolean checkPassword(String password){ //检测密码是否正确
38 if(!password.equals(withdrawalModel.card.getPassword().trim()))
39 return false; //不正确返回false
40 return true; //正确返回true
41 }
42 public boolean checkMoney(String money){ //检测取款金额是否合法
43 if(money.matches("[0-9]+")&&Double.parseDouble(money.trim())>0
44 &&Double.parseDouble(money.trim())<=
45 Double.parseDouble(withdrawalModel.card.getBalance().trim()))
46 return true; //是整数并且>0并且<=余额返回true
47 return false; //其他返回false
48 }
49
50 /*取款的方法*/
51 public void withdrawal(String money){
52 String withdrawalMoney = (Double.parseDouble(withdrawalModel.card.getBalance().trim())
53 - Double.parseDouble(money.trim()))
54 + "";
55 withdrawalModel.card.setBalance(withdrawalMoney);
56 withdrawalModel.saveInfo();
57 }
58 }
1 package com.kai.li.atm;
2
3 /**
4 *模型类
5 */
6 public class WithdrawalModel extends DepositModel{
7
8 }
1 package com.kai.li.abc;
2
3 import java.util.Random;
4
5 /**
6 *用于传递数据的中间类
7 */
8 public class Card{
9
10 /*定义私有属性*/
11 private String name;
12 private String id;
13 private String cardnumber;
14 private String password;
15 private String balance;
16
17 /*无参构造方法*/
18 public Card(){
19
20 }
21
22 /*开户时使用的3个参数的构造方法*/
23 public Card(String name,String id,String password){
24 this.name = name;
25 this.id = id;
26 this.password = password;
27
28 this.cardnumber = (new Random().nextInt(899999)+100000)+"";
29 this.balance = "0.0";
30 }
31
32 /*getter*/
33 public String getName(){
34 return name;
35 }
36 public String getId(){
37 return id;
38 }
39 public String getCardnumber(){
40 return cardnumber;
41 }
42 public String getPassword(){
43 return password;
44 }
45 public String getBalance(){
46 return balance;
47 }
48
49 /*setter*/
50 public void setName(String name){
51 this.name = name;
52 }
53 public void setId(String id){
54 this.id = id;
55 }
56 public void setCardnumber(String cardnumber){
57 this.cardnumber = cardnumber;
58 }
59 public void setPassword(String password){
60 this.password = password;
61 }
62 public void setBalance(String balance){
63 this.balance = balance;
64 }
65
66 /*重写toString方法*/
67 @Override
68 public String toString(){
69 return "姓名:"+getName()+"
"
70 +"身份证:"+getId()+"
"
71 +"卡号:"+getCardnumber()+"
"
72 +"密码:"+getPassword()+"
"
73 +"余额:"+getBalance();
74 }
75
76 }
1 package com.kai.li.myutils;
2
3 import java.io.File;
4 import java.io.InputStream;
5 import java.io.OutputStream;
6 import java.io.FileInputStream;
7 import java.io.FileOutputStream;
8 import java.io.IOException;
9 import java.util.Scanner;
10 import com.kai.li.abc.Card;
11
12 /**
13 *define functions byself
14 *@auther kai li
15 */
16 public class MyUtils{
17
18 /*read file contents*/
19 public static String readFileContents(String filename)throws IOException{
20
21 File file = new File(filename);
22 InputStream in = new FileInputStream(file);
23
24 int i = -1;
25 byte[] str = new byte[1024];
26 String strs = "";
27
28 while((i = in.read(str)) != -1){
29 strs = new String(str,0,i);
30 }
31
32 in.close();
33 return strs;
34
35 }
36
37 /*write string to a file*/
38 public static void writeToFile(String filename,Card card)throws IOException{
39
40 File file = new File(filename);
41 OutputStream out = new FileOutputStream(file);
42
43 String str = card.toString();
44
45 if(!file.exists())
46 file.createNewFile();
47
48 out.write(str.getBytes());
49
50 out.close();
51
52 }
53
54 /*read string by scanner*/
55 public static String scanner(){
56 Scanner scanner = new Scanner(System.in);
57 return scanner.nextLine();
58 }
59
60 /*read int by scanner*/
61 public static int scannerInt(){
62 Scanner scanner = new Scanner(System.in);
63 return scanner.nextInt();
64 }
65 }