下面是我做的一个模仿ATM机的一个小程序,这是我的第一个版本,仅仅写了一些存钱,取钱,密码判断的一些逻辑,没有界面 ,不能储存数据。 程序只有两个类 UserAccount和AccountStart,AccountStart里有入口函数,先研究一下的可以看看哟! 这可以帮我调试一小哟!
/**
* @Chris Ma
* @version 1.0
* May 2th,2009
* 编写一个储蓄帐户类
* 属性有
* 户头帐号
* 密码
* 持有者姓名
* 总金额
* 交易记录 用字符串表示每次交易记录用“/n"拼接
* 例如 提取XXX钱/n存入XXX钱
*
*
* 功能要求
*
* 创建一个登陆方法 land()2个参数 帐号 和密码 返回布尔值 判断输入的帐号密码是否正确
*
* 创建一个取钱的方法takeout(float money){}
* 验证参数不能为负(如果出错 提示信息)
* 在取钱的方法里验证余额是否不足如果余额充足追加记录 提取XXX钱 否则输出余额不足
*
* 创建一个存钱的方法save(float money){}
* 验证参数不能为负(如果出错 提示信息)
* 计算总金额 然后追加记录信息 存入XXX钱
*
* 首先创建一个户头 应该有 帐号 密码 持有者名称 开户金额
* 然后显示
* 1 取款
* 2 存款
* 3 查看余额
* 4 退出
* 如果是取款和查看时应该提示密码验证
*
*
* 在账密判断上 模仿真正ATM机 有三次判断的机会
*
*/
package edu.hy.base;
import java.util.Scanner;
* @Chris Ma
* @version 1.0
* May 2th,2009
* 编写一个储蓄帐户类
* 属性有
* 户头帐号
* 密码
* 持有者姓名
* 总金额
* 交易记录 用字符串表示每次交易记录用“/n"拼接
* 例如 提取XXX钱/n存入XXX钱
*
*
* 功能要求
*
* 创建一个登陆方法 land()2个参数 帐号 和密码 返回布尔值 判断输入的帐号密码是否正确
*
* 创建一个取钱的方法takeout(float money){}
* 验证参数不能为负(如果出错 提示信息)
* 在取钱的方法里验证余额是否不足如果余额充足追加记录 提取XXX钱 否则输出余额不足
*
* 创建一个存钱的方法save(float money){}
* 验证参数不能为负(如果出错 提示信息)
* 计算总金额 然后追加记录信息 存入XXX钱
*
* 首先创建一个户头 应该有 帐号 密码 持有者名称 开户金额
* 然后显示
* 1 取款
* 2 存款
* 3 查看余额
* 4 退出
* 如果是取款和查看时应该提示密码验证
*
*
* 在账密判断上 模仿真正ATM机 有三次判断的机会
*
*/
package edu.hy.base;
import java.util.Scanner;
public class UserAccount {
// 用户账号 密码 持卡人姓名 存款总额 交易记录
private String userZH;
private String userPW ;
private String userName;
private float userAmount;
private String userExchangeRecord ;
//控制交易第一次输出的内容
private boolean boolcontrol;
private int intPassWordControl;
public UserAccount(String userZH,String userPW,String userName,float userAmount)
{
this.userZH = userZH;
this.userPW = userPW;
this.userName = userName;
this.userAmount = userAmount;
land();
}
// 用户账号 密码 持卡人姓名 存款总额 交易记录
private String userZH;
private String userPW ;
private String userName;
private float userAmount;
private String userExchangeRecord ;
//控制交易第一次输出的内容
private boolean boolcontrol;
private int intPassWordControl;
public UserAccount(String userZH,String userPW,String userName,float userAmount)
{
this.userZH = userZH;
this.userPW = userPW;
this.userName = userName;
this.userAmount = userAmount;
land();
}
//登录模块
public void land()
{
String strZH;
String strPW;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的账号和密码");
System.out.print("账号:");
strZH = scanner.nextLine();
System.out.print("密码:");
strPW = scanner.nextLine();
if(this.isLand(strZH, strPW))
{
System.out.println("欢迎您"+userName+"先生");
showSelect();
String strPW;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的账号和密码");
System.out.print("账号:");
strZH = scanner.nextLine();
System.out.print("密码:");
strPW = scanner.nextLine();
if(this.isLand(strZH, strPW))
{
System.out.println("欢迎您"+userName+"先生");
showSelect();
}
else
{
if(intPassWordControl==3)
{
System.out.println("你的输入次数已达到3次,今天已经不能在输入了");
System.out.println("欢迎再次使用");
return;
}
else
{
System.out.println("你输入的账号密码有错误");
System.out.println("请重新输入");
land();
}
}
else
{
if(intPassWordControl==3)
{
System.out.println("你的输入次数已达到3次,今天已经不能在输入了");
System.out.println("欢迎再次使用");
return;
}
else
{
System.out.println("你输入的账号密码有错误");
System.out.println("请重新输入");
land();
}
}
}
//判断账号密码是否正确
private boolean isLand(String userZH,String userPW)
{
intPassWordControl++;
//判断账号密码是否正确
private boolean isLand(String userZH,String userPW)
{
intPassWordControl++;
if(this.userZH.equals(userZH)&&this.userPW.equals(userPW))
{
intPassWordControl=0;
return true;
}
else
return false;
}
//存取、钱时账户密码验证界面
private void isShowZPRight()
{
Scanner scanner = new Scanner(System.in);
System.out.println("账号:"+userZH);
System.out.print("请再次输入密码:");
String userPW = scanner.nextLine();
if(!this.isLand(userZH, userPW))
{
if(intPassWordControl==3) return;
System.out.println("你输入的密码有错误");
System.out.println("请重新输入");
isShowZPRight();
{
intPassWordControl=0;
return true;
}
else
return false;
}
//存取、钱时账户密码验证界面
private void isShowZPRight()
{
Scanner scanner = new Scanner(System.in);
System.out.println("账号:"+userZH);
System.out.print("请再次输入密码:");
String userPW = scanner.nextLine();
if(!this.isLand(userZH, userPW))
{
if(intPassWordControl==3) return;
System.out.println("你输入的密码有错误");
System.out.println("请重新输入");
isShowZPRight();
}
else
intPassWordControl=0;
else
intPassWordControl=0;
};
//取钱模块
private void takeout(float money) throws Exception
{
if(money<=0)
{
System.out.println("你输入的金额有误");
this.showSelect();
}
else
{
if(this.userAmount-money>=0)
{
System.out.println("请稍等,正在操作......");
this.userAmount -= money;
String userExchangeRecord = "提取"+String.valueOf(money)+"元";
this.setUserExchangeRecord(userExchangeRecord);
Thread.sleep(3000);
System.out.println("现金提取成功");
}
else
{
System.out.println("你的现金不足");
showSelect();
}
}
//取钱模块
private void takeout(float money) throws Exception
{
if(money<=0)
{
System.out.println("你输入的金额有误");
this.showSelect();
}
else
{
if(this.userAmount-money>=0)
{
System.out.println("请稍等,正在操作......");
this.userAmount -= money;
String userExchangeRecord = "提取"+String.valueOf(money)+"元";
this.setUserExchangeRecord(userExchangeRecord);
Thread.sleep(3000);
System.out.println("现金提取成功");
}
else
{
System.out.println("你的现金不足");
showSelect();
}
}
}
//存钱模块
private void save(float money) throws Exception
{
if(money<=0)
{
System.out.println("你输入的金额有误");
this.showSelect();
}
else
{
System.out.println("请稍等,正在操作......");
this.userAmount += money;
String userExchangeRecord = "存入"+String.valueOf(money)+"元";
this.setUserExchangeRecord(userExchangeRecord);
Thread.sleep(3000);
System.out.println("现金存入成功");
//存钱模块
private void save(float money) throws Exception
{
if(money<=0)
{
System.out.println("你输入的金额有误");
this.showSelect();
}
else
{
System.out.println("请稍等,正在操作......");
this.userAmount += money;
String userExchangeRecord = "存入"+String.valueOf(money)+"元";
this.setUserExchangeRecord(userExchangeRecord);
Thread.sleep(3000);
System.out.println("现金存入成功");
}
}
//判断是否需要其它服务
private void isOtherService()
{
Scanner scanner = new Scanner(System.in);
System.out.println("是否还需要其它服务:1 需要 2 退出");
int intSer = Integer.parseInt(scanner.nextLine());
if(intSer==1)
showSelect();
else
System.out.println("欢迎再次使用");
}
//判断是否需要其它服务
private void isOtherService()
{
Scanner scanner = new Scanner(System.in);
System.out.println("是否还需要其它服务:1 需要 2 退出");
int intSer = Integer.parseInt(scanner.nextLine());
if(intSer==1)
showSelect();
else
System.out.println("欢迎再次使用");
}
//功能选择模块
private void showSelect()
{
private void showSelect()
{
System.out.println("请选择服务种类");
System.out.println("1 取款");
System.out.println("2 存款");
System.out.println("3 查看余额");
System.out.println("4 退出");
Scanner scanner = new Scanner(System.in);
int intSelect = Integer.parseInt(scanner.nextLine());
switch(intSelect)
{
case 1:
isShowZPRight();
if(intPassWordControl==3)
{
System.out.println("你的输入次数已达到3次,今天已经不能在输入了");
System.out.println("欢迎再次使用");
break;
}
else
{
System.out.print("请输入您要提取的金额:");
float takeMoney = Float.parseFloat(scanner.nextLine());
try
{
this.takeout(takeMoney);
}catch(Exception e){}
isOtherService();
break;
}
System.out.println("1 取款");
System.out.println("2 存款");
System.out.println("3 查看余额");
System.out.println("4 退出");
Scanner scanner = new Scanner(System.in);
int intSelect = Integer.parseInt(scanner.nextLine());
switch(intSelect)
{
case 1:
isShowZPRight();
if(intPassWordControl==3)
{
System.out.println("你的输入次数已达到3次,今天已经不能在输入了");
System.out.println("欢迎再次使用");
break;
}
else
{
System.out.print("请输入您要提取的金额:");
float takeMoney = Float.parseFloat(scanner.nextLine());
try
{
this.takeout(takeMoney);
}catch(Exception e){}
isOtherService();
break;
}
case 2:
isShowZPRight();
if(intPassWordControl==3)
{
System.out.println("你的输入次数已达到3次,今天已经不能在输入了");
System.out.println("欢迎再次使用");
break;
}
else
{
System.out.print("请输入您要存入的金额:");
float saveMoney = Float.parseFloat(scanner.nextLine());
try
{
this.save(saveMoney);
}catch(Exception e){}
isOtherService();
break;
}
case 3:
System.out.println("账号:"+ this.userZH);
System.out.println("余额:"+ this.userAmount+"元");
if(this.userExchangeRecord!=null)
{
System.out.println("交易记录:");
System.out.print(this.getUserExchangeRecord());
}
isOtherService();
break;
case 4:
System.out.println("欢迎再次使用");
break;
}
}
isShowZPRight();
if(intPassWordControl==3)
{
System.out.println("你的输入次数已达到3次,今天已经不能在输入了");
System.out.println("欢迎再次使用");
break;
}
else
{
System.out.print("请输入您要存入的金额:");
float saveMoney = Float.parseFloat(scanner.nextLine());
try
{
this.save(saveMoney);
}catch(Exception e){}
isOtherService();
break;
}
case 3:
System.out.println("账号:"+ this.userZH);
System.out.println("余额:"+ this.userAmount+"元");
if(this.userExchangeRecord!=null)
{
System.out.println("交易记录:");
System.out.print(this.getUserExchangeRecord());
}
isOtherService();
break;
case 4:
System.out.println("欢迎再次使用");
break;
}
}
private String getUserExchangeRecord() {
return userExchangeRecord;
}
private void setUserExchangeRecord(String userExchangeRecord)
{
if(!this.boolcontrol)
{
this.userExchangeRecord = userExchangeRecord+"/n";
this.boolcontrol = true;
}
else
{
this.userExchangeRecord+=userExchangeRecord+"/n";
}
}
}
/*==========================================================
return userExchangeRecord;
}
private void setUserExchangeRecord(String userExchangeRecord)
{
if(!this.boolcontrol)
{
this.userExchangeRecord = userExchangeRecord+"/n";
this.boolcontrol = true;
}
else
{
this.userExchangeRecord+=userExchangeRecord+"/n";
}
}
}
/*==========================================================
========================================================*/
package edu.hy.enter;
import edu.hy.base.*;
import edu.hy.base.*;
public class AccountStart {
public static void main(String[] args) {
UserAccount userAccount = new UserAccount("108642","111111","小王",50000);
}
}