取款机项目实验报告

一、题目简介:

  为了了解并掌握结对编程,熟悉敏捷编程,就和队友做了个控制台下的ATM存取款机项目。

二、结对分工及过程:

        过程:我和田培培用一台计算机大概用了12个小时完成了项目及测试部分

     分工:我主要在编写项目代码方面做得多一点,田培培主要负责代码的测试

三、代码地址:

    https://github.com/joanyy/ATM

四、代码及运行结果截图:

  1 package com.yt.atm ;
  2 
  3 import java.util.Scanner;
  4 
  5 public class ATM { //余额、存款、取款、登录、退出、修改密码
  6     private String userPass="123456";
  7     private String name="张三";
  8     private String userName="joan";
  9     private double totalMoney=1234.34;
 10     Scanner scan=new Scanner(System.in); 
 11      
 12     //登录窗口
 13     public void initLoginWindow(){
 14         System.out.print("===========");
 15         System.out.println();
 16         System.out.print("欢迎进入登陆窗口");
 17         System.out.println();
 18         System.out.print("===============");
 19         System.out.println();
 20     }//登陆
 21     public void initLogin(){
 22         initLoginWindow();
 23         System.out.println("请输入用户名:");
 24         String scanf=scan.nextLine();
 25         if(scanf.equals(userName)){
 26             System.out.println("请输入密码");
 27             if(scan.next().equals(userPass)){
 28                 System.out.println("用户"+this.name+"登陆成功!");
 29             }else{
 30                 System.out.println("密码输入错误!");
 31                  System.exit(0);
 32             }
 33         }else{
 34             System.out.println("用户名输入错误!请重新输入");
 35             initLogin();
 36         }
 37         initAction();
 38     }//查询余额
 39     public void queryMoney(){
 40         System.out.println("当前余额是:"+this.totalMoney);
 41     }
 42     //取款
 43     public  void devideMoney( ){
 44         System.out.println("当前余额是"+this.totalMoney+"请输入要取款数");
 45           int money=scan.nextInt();
 46         this.totalMoney =this.totalMoney-money;
 47         System.out .print("存款成功!当前余额是"+this.totalMoney); 
 48     }
 49     //存款
 50     public void addMoney(){
 51         System.out.println("当前余额是"+this.totalMoney+"请输入要存款数");
 52         int money=scan.nextInt();
 53         this.totalMoney=this.totalMoney+money;
 54         System.out.println("存款成功!当前余额是"+this.totalMoney);
 55     }//修改密码
 56     public void changePass(){
 57         System.out.println("请输入旧密码");
 58         if(scan.next().equals(userPass)){
 59             System.out.println("密码正确!请输入新密码:");
 60             String newUserPass1=scan.nextLine();
 61             while(true){
 62                 if(scan.nextLine()==" "){
 63                     System.out.println();
 64                     newUserPass1=scan.nextLine();    
 65                 }else{
 66                      break;
 67                 }
 68             } 
 69             System.out.println("请再次输入新密码:");
 70             String newUserPass2=scan.nextLine(); 
 71             while(true){
 72                 if(scan.nextLine()==" "){
 73                        newUserPass2=scan.nextLine();    
 74                 }else{
 75                      break;
 76                 }
 77             } 
 78             System.out.println(newUserPass1+"===="); 
 79             if(newUserPass1.equals(newUserPass2)){ 
 80                 System.out.print("密码修改成功!");
 81                 this.userPass=newUserPass1;
 82             }else{
 83                 System.out.println("两次密码不一致,修改失败");
 84             }
 85         }else{
 86             System.out.println("密码输入失败!");
 87         }
 88         initAction();
 89     }
 90     //操作项窗口
 91     public void initActionWindow(){ 
 92         System.out.print("============");
 93         System.out.println();
 94         System.out.print("欢迎进入操作项界面");
 95         System.out.println();
 96         System.out.print("==============");
 97         System.out.println();
 98     }
 99     //操作项
100     public void initAction(){
101         initActionWindow();
102         System.out.println("1、查询余额     2、取款     3、存款     4、修改密码     5、退出");
103         System.out.println("请选择操作项:");
104         String scanf=scan.next();
105         if("1".equals(scanf)){
106             queryMoney();
107         }else if("2".equals(scanf)){
108             devideMoney();
109         }else if("3".equals(scanf)){
110             addMoney();
111         }else if("4".equals(scanf)){
112             changePass();
113         }else if("5".equals(scanf)){
114             System.out.println("程序结束!");
115             System.exit(0);
116         }else{
117             System.out.println("没有此功能!请重新选择");  
118         }
119         initAction();
120     }
121     public static void main(String[] args) {
122         ATM atm=new ATM();
123         
124         atm.initLogin();
125     }
126 }

截图:

五、问题及心得:

    问题:我负责的这部分主要用到的用例有:登陆、取款、存款、查询余额、退出、修改密码;其中“修改密码”这个功能有点问题,第二次确认新密码时必须再加一个换行才能完成输入,因此第一次的新密码和第二次确认的那个密码也就不一致,导致不能完成密码修改。另外,本项目没有连接数据库,我只是把用户名、密码、余额等信息存到了一个变量中。这个项目很简单,设计思路和控制台下的学生管理系统差不多。代码也很简单我就不分析了。

    心得:通过这次作业对结对编程有了一个大概的了解,由于对结对编程还不够熟练 ,所以对现在的我来说我还是比较喜欢一个人编程。。。(测试方面的工作大部分由田培培负责  我这里就不写了 博客地址:

http://www.cnblogs.com/tpp531853660

 
posted @ 2015-05-17 21:00  一枝花  阅读(564)  评论(8编辑  收藏  举报