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