取款機專案實驗報告

一枝花發表於2015-05-17

一、題目簡介:

  為了瞭解並掌握結對程式設計,熟悉敏捷程式設計,就和隊友做了個控制檯下的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

 

相關文章