这是一个简单的模拟银行系统的一个程序,用来实现ATM机操作,用java写的, 下面是实现代码:
package com.ATM;
import java.util.Scanner;
import javax.jws.soap.SOAPBinding.Use;
import com.lesson.Yanzhengma;
public class ATM {
public static void main(String[] args) {
System.out.println("请插入卡号:");
Scanner sc=new Scanner(System.in);
String card=sc.nextLine();
System.out.println("正在读卡,请稍后...");
int errortime=0;
User log=null;
while(true) {
System.out.println("请输入密码:");
String password=sc.nextLine();
//验证
log=DB.yanzheng(card, password);
if(log==null) {
errortime++;
System.out.println("密码错误"+errortime+"次,还剩余"+(3-errortime)+"次");
if(errortime==3) {
System.out.println("密码错误次数达到3次,正在退卡");
System.exit(0);
}
}
else {
break;
}
}
while (true) {
System.out.println("1取款 2查询 3存款 4退卡");
int cmd = sc.nextInt();
switch (cmd) {
case 1:
qukuan(log);//取款
break;
case 2:
chaxun(log);//查询
break;
case 3:
cunkun(log);//存款
break;
case 4:
tuika();//退卡
System.exit(0);
break;
default:
System.out.println("输入错误,没有此选项,请重新选择");
break;
}
}
}
//退卡
private static void tuika() {
System.out.println("正在退卡,请稍后...");
System.out.println("请取回此卡");
}
//存款
private static void cunkun(User use) {
while(true) {
System.out.println("请将叠整齐的钞票放入入钞口");
Scanner scanner=new Scanner(System.in);
int num=scanner.nextInt();
// 1000000000 ---校验输入金额是否是100的整数倍。
if(num>0 && num%100==0) {
use.setMoney(use.getMoney()+num);
System.out.println("正在验钞,请稍后...");
System.out.println("已放入"+(num/100)+"张。是否提交:1表示提交,2表示退出");
int b=scanner.nextInt();
if(b==1) {
System.out.println("存款成功");
}
}
else {
System.out.println("必须输入100的倍数");
}
System.out.println("是否继续:1表示继续,2表示退出");
int a =scanner.nextInt();
if(a==2) {
break;
}
}
}
//查询
private static void chaxun(User use) {
while(true) {
System.out.println("您的余额为"+use.getMoney()+"元");
System.out.println("是否继续:1表示继续,2表示退出");
Scanner scanner=new Scanner(System.in);
int a =scanner.nextInt();
if(a==2) {
break;
}
}
}
//取款
private static void qukuan(User use) {
while(true) {
System.out.println("请输入取款金额");
Scanner scanner=new Scanner(System.in);
int num=scanner.nextInt();
//100 ---校验输入金额是否是100的整数倍。
if(num>0 && num%100==0) {
if(use.getMoney()>=num) {
use.setMoney(use.getMoney()-num);
System.out.println("请取走您的钞票");
}else {
System.out.println("余额不足");
}
}
else {
System.out.println("必须输入100的倍数");
}
System.out.println("是否继续:1表示继续,2表示退出");
int a =scanner.nextInt();
if(a==2) {
break;
}
}
}
}
//创建一个User类,对此用户进行操作
public class User {
private String card;
private String password;
private int money;
public User(String card, String password, int money) {
super();
this.card = card;
this.password = password;
this.money = money;
}
public String getCard() {
return card;
}
public void setCard(String card) {
this.card = card;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
@Override
public String toString() {
return "[卡号=" + card + ", 密码=" + password + ", 余额=" + money + "]";
}
}
//创建一个DB类,充当数据库的作用,用来匹配用户信息
public class DB {
private static User [] user={
new User("123456789", "123456", 2000),
new User("987654321", "123456", 3000),
};
//匹配信息
public static User yanzheng(String card,String password) {
for(User u:user) {
if(u.getCard().equals(card)&&u.getPassword().equals(password)) {
return u;
}
}
return null;
}
}