1001-----homework------version first

Posted 风林山火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1001-----homework------version first相关的知识,希望对你有一定的参考价值。

 

 

 

 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("\\n\\r你选择的菜单不存在!");
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){


(c)2006-2024 SYSTEM All Rights Reserved IT常识