首先ATM有查询,取款,存款和退卡等功能。我们插卡的时候也必须输入密码才可以成功。
所以我设计三个类,一个是ATM平台类,用来实现ATM界面功能;二是客户类,用来储存客户的存款;三是数据类,
用来存储登录用户的数据
客户类代码如下:
public class Client{
private double balance=0;
private String upass;
public double getBalance()
{
return balance;
}
public void setBalance(double balance)
{
this.balance = balance;
}
public String getUpass()
{
return upass;
}
public void setUpass(String upass)
{
this.upass = upass;
}
}
数据类代码如下:
public class Data{
private static Client[] clients=new Client[3];
static {
clients[0]=new Client();
clients[1]=new Client();
clients[2]=new Client();
// clients[0].setUname("大聪明");
clients[0].setUpass("123");
}
public static Client[] getClients()
{
return clients;
}
public static void setClients(Client[] clients)
{
Data.clients = clients;
}
}
实现ATM功能类:
import java.util.Scanner;
public class ATM{
public static void main(String[] args) {
printInfo();
}
public static void printInfo() {
System.out.println("请输入密码:");
Scanner input=new Scanner(System.in);
String upass=input.next();
checkpass(upass);
}
private static Client currClient;//用来储存登录成功的那个客户
public static void checkpass(String upass) {
for(int i=0;i<Data.getClients().length;i++) {
Client client=Data.getClients()[i];
currClient=client;
if(upass.equals(client.getUpass())) {
System.out.println("登录成功,请选择您的服务:");
System.out.println();
ATMview();
return;
}
}
System.out.println("密码错误,请重新输入");
printInfo();
}
public static void ATMview() {
System.out.println("--------大聪明银行--------");
System.out.println("1.查询 2.取款 3.存款 4.退卡");
Scanner input = new Scanner(System.in);
int no = input.nextInt();
switch(no) {
case 1:
inquire();
break;
case 2:
withdrawal();
break;
case 3:
deposit();
break;
case 4:
printInfo();
break;
}
}
public static void inquire() {
System.out.println("您的当前余额为:"+currClient.getBalance()+"元");
ATMview();
}
public static void withdrawal(){
System.out.println("请输入你的取款额:");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
if(num>currClient.getBalance()) {
System.out.println("余额不足");
withdrawal();
}
System.out.println("取款成功");
currClient.setBalance(currClient.getBalance()-num);
ATMview();
}
public static void deposit(){
System.out.println("请存款:");
Scanner input=new Scanner(System.in);
int money=input.nextInt();
currClient.setBalance(currClient.getBalance()+money);
System.out.println("存款成功");
ATMview();
}
}