用面向对象(Java)实现ATM系统

功能要求;
1.用户输入密码进入ATM主界面
2.用户输入密码错误,提示重新输入,三次后吞卡。
3.支持存款,取款,查询,改密,退出
4.只支持储蓄卡,只支持100面值,最小余额不能小于1元,单次只能取出3000元。
5.退出时,显示历史操作记录。
6.界面友好,大方
代码:
package pro0624;


import java.util.Scanner;


public class ATM {


int 密码 = 123456;
double 余额 = 7963.2;
String log = "";
Scanner in = new Scanner(System.in);


public void 输入密码(int count) {
System.out.print("请输入密码:");
int pass = in.nextInt();
if (pass == 密码) {
this.主界面();
} else {
count--;
if (count == 0) {
System.out.println("吞卡!");
} else {
log+="密码输入第"+(3-count)+"次错误\n";
System.out.println("密码输入错误,你还有" + count + "次机会");
this.输入密码(count);
}
}
}


public void 主界面() {
System.out.println("***********************************************");
System.out.println("**********欢迎来到中国XX银行ATM机***************");
System.out.println("***********************************************");
System.out.println("请选择操作:");
System.out.println("1.取款");
System.out.println("2.存款");
System.out.println("3.查询");
System.out.println("4.改密");
System.out.println("5.退出");


int ask = in.nextInt();
switch (ask) {
case 1:
取款();
break;
case 2:
存款();
break;
case 3:
查询();
break;
case 4:
改密();
break;
case 5:
退出();
break;
default:
break;
}


}


public void 查询() {
System.out.println("你的余额为:" + 余额 + "元");
主界面();
}

public void 退出(){
System.out.println(log);
System.out.println("请带好你的卡和钱!再见!");
}


public void 取款() {
System.out.println("请输入取款金额:");
int money = in.nextInt();
if (money % 100 != 0) {
System.out.println("本机仅支持100面值!");
System.out.println("请选择:\n1.继续取款\n2.返回主界面\n3.退出");
int ask = in.nextInt();
if (1 == ask) {
取款();
} else if (2 == ask) {
主界面();
} else if (3 == ask) {
退出();
}
} else if (money > 余额 - 1) {
System.out.println("余额不足!");
System.out.println("请选择:\n1.继续取款\n2.返回主界面\n3.退出");
int ask = in.nextInt();
if (1 == ask) {
取款();
} else if (2 == ask) {
主界面();
} else if (3 == ask) {
退出();
}
} else if (money > 3000) {
System.out.println("超出单次最大额度!");
System.out.println("请选择:\n1.继续取款\n2.返回主界面\n3.退出");
int ask = in.nextInt();
if (1 == ask) {
取款();
} else if (2 == ask) {
主界面();
} else if (3 == ask) {
退出();
}
} else {
log+="取款成功!本次取出" + money + "元\n";
System.out.println("取款成功!本次取出" + money + "元");
余额 -= money;
System.out.println("请选择:\n1.继续取款\n2.返回主界面\n3.退出");
int ask = in.nextInt();
if (1 == ask) {
取款();
} else if (2 == ask) {
主界面();
} else if (3 == ask) {
退出();
}
}
}


public void 存款() {
System.out.print("请输入存款金额:");
int money = in.nextInt();
if (money % 100 != 0) {
System.out.println("本机仅支持100面值!");
System.out.println("请选择:\n1.继续存款\n2.返回主界面\n3.退出");
int ask = in.nextInt();
if (1 == ask) {
存款();
} else if (2 == ask) {
主界面();
} else if (3 == ask) {
退出();
}
} else {
log+="本次存入" + money + "元\n";
System.out.println("本次存入" + money + "元");
余额 += money;
System.out.println("请选择:\n1.继续存款\n2.返回主界面\n3.退出");
int ask = in.nextInt();
if (1 == ask) {
存款();
} else if (2 == ask) {
主界面();
} else if (3 == ask) {
退出();
}
}
}


public void 改密() {
System.out.print("请输入新密码:");
int pass1 = in.nextInt();
System.out.print("请再次输入新密码:");
int pass2 = in.nextInt();
if (pass1 == pass2) {
密码 = pass1;
log+="修改密码成功!\n";
System.out.println("修改成功!");
输入密码(3);
} else {
System.out.println("两次修改不一致!");
改密();
}


}


public static void main(String[] args) {
new ATM().输入密码(3);
}


}
--------------------------------------------------------------------------------------------
package Pro0624;


import java.util.Scanner;


public class ATM2{
int password = 125896;
double balance = 4396.52;
String x ="";
Scanner akm = new Scanner(System.in);
public void entry(){//登录,输入密码进入页面。
System.out.println("欢迎来到中华人民共和国国家银行");
System.out.println("Welcome to the National Bank of People's Republic of China!");
System.out.println("请输6位入密码:");
int pass =akm.nextInt();
int m = 3;
if(pass == password){
this.home();
}else{
m--;
x+="密码输入第"+(3-m)+"次错误\n";
System.out.println("对不起,密码错误,请重新输入,还有"+m+"次机会!");
}
if(m==0){
System.out.println("对不起,您的卡已经被吞,请到柜台办理!");
}else{
this.entry();
}

}
public void home(){// 主界面********************
System.out.println("----------------------------***********************---------------------");
System.out.println("您现在使用的是由张旭设计的最牛逼的银行系统!");
System.out.println("请选择您需要进行操作:");
System.out.println("1.存款");
System.out.println("2.取款");
System.out.println("3.修改密码");
System.out.println("4.查询");
System.out.println("5.退出");
System.out.println("********************************************************************************");
int i =akm.nextInt();
switch(i){
case 1:
this.deposit();
break;
case 2:
this.draw();
break;
case 3:
this.Modify();
break;
case 4:
this.query();
break;
case 5:
this.quit();
default:
break;
}
}


public void deposit(){//存款操作
System.out.println("请输入需要存入的金额(只支持面值为100元的纸币):");
int money = akm.nextInt();
if(money%100==0){
balance = balance + money;
x+="存款成功\n";
System.out.println("存款成功,请选择:1.继续存款;2.退回主界面;3.退出");
int i = akm.nextInt();
if(i==1){
this.deposit();
}else if( i == 2){
this.home();
}else if(i == 3){
this.quit();
}
}else{
System.out.println("对不起,您输入的金额有误,请重新输入!");
this.deposit();
}
}
public void draw(){//取款
System.out.println("请选择取款金额(只支持100面值的纸币,且单次最高不能超过3000元):");
int money = akm.nextInt();
if(money%100==0 && money<=balance - 1 && money-3000<=0){//取款金额不能超过余额且不能超过3000
balance = balance -money;
x+="取款成功\n";
System.out.println("取款成功,请选择:1.继续取款;2.退回主界面;3.退出");
int i = akm.nextInt();
if(i==1){
this.deposit();
}else if( i == 2){
this.home();
}else if(i == 3){
this.quit();
}
}else if(money>balance-1){
System.out.println("余额不足!!!");
System.out.println("请重新输入取款金额");
this.draw();
}
else{
System.out.println("本机器只支持100面值的操作且单次不能超过3000元");
System.out.println("请重新输入取款金额");
this.draw();
}

}
public void Modify(){//修改密码
System.out.println("请输入新密码:");
int newpass=akm.nextInt();
System.out.println("请确认密码:");
int newpass2 = akm.nextInt();
if(newpass2==newpass && newpass!=password){
password = newpass;
x+="修改密码成功\n";
System.out.println("修改密码成功!!!");
System.out.println("请输入新密码重新登录!");
this.entry();

}else if(newpass == password){
System.out.println("对不起新密码不能与旧密码一致,请重新输入:");
this.Modify();
}
else{
System.out.println("前后输入密码不一致,请确认后重新输入:");
this.Modify();
}


}
public void query(){//查询
System.out.println("您的余额为:"+balance+"元!");
System.out.println("查询,请选择:1.退回主界面;2.退出");
int i = akm.nextInt();
if(i==1){
this.home();
}else if( i == 2){
this.quit();
}
}
public void quit(){//退出并显示操作
System.out.println(x);
System.out.println("请带好您的信用卡和钱包!");
}
public static void main(String[] args) {
new ATM2().entry();

}





}

猜你喜欢

转载自blog.csdn.net/ddcats/article/details/80807134