取款机项目实验报告

一、题目简介:

  为了了解并掌握结对编程,熟悉敏捷编程,就和队友做了个控制台下的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 }

截图:

五、问题及心得:

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

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

 
时间: 2024-10-15 12:08:06

取款机项目实验报告的相关文章

结对项目实验报告

结对实验报告 结对人曹文静的地址: http://www.cnblogs.com/liandiexueying/ 一.实践目标: 敏捷方法之结对编程实践 学会与他人合作 基于项目的Github源代码管理 继续学习JUnit4单元测试 形成良好的编码风格 二.结对项目参考题目 连连看小游戏. 三.实验报告内容 1.题目简介 游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题.当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理.在两张想同图片

团队开发项目实验报告

项目开发一 实验要求: 1 git clone 小组项目 2 编译项目,提交编译成功截图(全屏,要有学号信息) 3 提交运行过程中的截图(全屏,要有学号信息) 实验过程: 之前项目小组的组长已经将android游戏开发单独建立了一个项目,小组成员可以直接将项目克隆到Android Studio里,克隆需要调试Android Studio里的git,但编译的过程需要自己进行调试.调试环境可以选择在android studio里建立虚拟安卓手机来运行,也可以连接真实的安卓手机来运行.如果是建立虚拟安

实验报告个人项目

实验报告 一.掌握github管理源代码的方法 https://github.com/13695318582/software 二.进行单元测试回归测试 1.打开junit窗口, 2.建一个Java项目,跟一个Java类 3. 右击类选择运行运行junit那个选项   截图 三.编写一个简单程序,我写的是打印一个乘法口诀 源代码: 运行结果: 四.小总结 java是门非常有意思的语言,里面许多方法,对我们计算机构造非常有用,用Java敲代码.好像更能减少我们软件的许多琐碎的bug.

实验报告结对项目

实验报告 一.程序题是: 有1.2.3.4.5.6.7个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 二.程序分析:输出的是无重复数字的三位数,那么首先应该解决在一个数组中,一个数字绝对不能出现两次,那么我们就写两个方法来完成,第一个方法 printNum1 先把第一位i找出来,然后在定义一个长度为比上一个数组少一位的数组的方法getArray 三.源代码托管地址 https://github.com/13695318582/software/tree/master 四.程序截图

广外第二周的实验报告来这里分享一下

虽然有很多还不知道怎么改,可能也有很多测试不到的地方,但是通过这个星期我好歹了解了好多东西啊 实验报告 通过本次学习,能了解到VC6.0.是用于将已生成的C++语言源程序代码转换为计算机能读懂的目标代码,计算机用的均是二进制代码.编辑完成后它首先生成扩展名为obj的文件(程序编译后的二进制文件),若想进行之后的链接.运行过程,必须不断修改源程序文件至完全正确. 在文件→新建→源代码这里可以新建源代码:新建→打开项目或文件中可以打开以前写过的源代码或者程序:运行→编译中即把所打源文件转换为二进制代

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

20145216史婧瑶《Java程序设计》第一次实验报告

实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问同学”.“看书”等一

Java程序设计基础项目总结报告

Java程序设计基础项目总结报告 20135313吴子怡 一.项目内容 运用所学Java知识,不调用Java类库,实现密码学相关算法的设计,并完成TDD测试,设计运行界面. 二.具体任务 1.要求实现的密码算法包括:对称密码算法,非对称密码算法,消息摘要算法. 2.要求完成对每个算法中的public类进行TDD测试,测试代码尽可能多,并且应尽可能涵盖特殊符号.数字.字母等输入字符. 3.设计每个密码算法的GUI界面,提供输入输出区域供使用者输入.查看. 三.计划明细 周数 进度安排 备注 Wee

20145207 实验三 敏捷开发与XP实践 实验报告

实验内容 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如"查网络"."问同学"."看书"等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等).报告可以