模拟ATM机流程
package com.igeekhome.demo2;
import java.util.Scanner;
//银行帐户类
public cla Account { // 属性
private int id; private String name; private String pa; private double balance; private static int currentID = 1;// 记录当前的卡
// get/set public int getId() {
return this.id; }
public String getName() {
return this.name; }
public String getPa() {
return this.pa; }
public double getBalance() {
return this.balance; }
//构造函数
public Account(String name,String pa,double money){
this.name = name;
this.pa = pa;
this.balance = money;
this.id = currentID++; }
/*******业务方法*********/
//存款
public void saveMoney(){ Scanner in = new Scanner(System.in); //接收存款的金额
System.out.print(\"请输入存款的金额:\"); int money = in.nextInt();
//修改余额
this.balance+=money;
//给出提示
System.out.println(\"存款成功,当前的余额是:\"+this.balance); }
//取款
public void drawMoney(){ Scanner in = new Scanner(System.in); //接收取款的金额
System.out.print(\"请输入取款的金额:\"); int money = in.nextInt(); //判断余额是否大于取款金额,如果满足上面的条件,则修改余额,并给出提示
if(this.balance>money){
this.balance-=money;
System.out.println(\"取款成功,当前的余额是:\"+this.balance); }else{//如果不满足,则给出取款 失败的动提示
System.out.println(\"余额不足,取款失败\"); }
}
//修改密码
public void modifyPa(){ Scanner in = new Scanner(System.in); //接收原密码
System.out.print(\"请输入原密码:\"); String oldPa = in.nextLine(); //判断密码是否正确,如果不正确,则给出提示,结束方法
if(this.pa.equals(oldPa)==false){
System.out.println(\"原密码不正确,修改密码失败\");
return;//返回 ,不再往下执行
}
//如果正确,则接收新密码
System.out.print(\"请输入新密码:\"); String newPa1 = in.nextLine();
//再次接收新密码
System.out.print(\"请再次输入新密码:\");
String newPa2 = in.nextLine();
//判断两次新密码是否一致,如果一致,修改密码,给出提示
if(newPa1.equals(newPa2)){
this.pa = newPa1;
System.out.println(\"修改密码成功\");
}else{ //如果不一致,给出修改密码失败提示
System.out.println(\"两次新密码不一致,修改密码失败\");
}
}
}
package com.igeekhome.demo2;
import java.util.Scanner;
public cla Test {
public static void main(String[] args) {
//创建一个帐户对象,进行模拟操作
Account a = new Account(\"张三\",\"888888\",1000);
//System.out.println(a.getId()+\",\"+a.getPa());
//调用登录方法,并得到返回结果
boolean flag = Test.login(a.getId(), a.getPa());
if(flag){//如果返回值为true,才进行到主菜单进行相关的操作
Test.showMenu(a);
}
}
//进行登录操作,如果成功,则返回true,否则返回false /*
* 用户在ATM机进行操作时,可以有三次输入密码的机会,如果三次中任何一次输入正确,可以进入到主界面进行相关操作,如果三次都不正确,则输出“请与管理员联系”
*/ public static boolean login(int id,String pa){//id,pa现有卡的卡号和密码
Scanner in = new Scanner(System.in);
for(int i=1;i
System.out.print(\"请输入卡号:\");
String s = in.nextLine();
int curID = Integer.parseInt(s);
System.out.print(\"请输入密码:\");
String curPa = in.nextLine();
//如果卡号和密码都正确,则返回 true
if(id==curID && pa.equals(curPa))
return true;
if(i
System.out.println(\"卡号或密码不正确,请重新输入!\");
else
System.out.println(\"三次输入错误,请与管理员进行联系\"); }
return false; }
//显示菜单,进行相关操作
public static void showMenu(Account a){ Scanner in = new Scanner(System.in);
System.out.println(\"欢迎使用ATM取款机\"); while(true){
System.out.println(\"请选择:1.查询余额;2.取款;3.存款;4.修改密码;5.退出:\");
int choose = in.nextInt();//接收用户的选择
if(choose==5)
break;
switch(choose){
case 1:System.out.println(\"您的余额是:\"+a.getBalance());break;
case 2:a.drawMoney();break;
case 3:a.saveMoney();break;
case 4:a.modifyPa();break;
default:System.out.println(\"您的输入有误,请重新输入\");break;
} }
System.out.println(\"感谢您再次使用!\"); } }