取款机项目实验报告
一、题目简介:
为了了解并掌握结对编程,熟悉敏捷编程,就和队友做了个控制台下的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
)