项目介绍:基于大家使用银行卡在 ATM 机取款操作,进行相对应 ATM 机操作流程的实现。
项目功能:
- 登陆功能: 根据用户账号密码进行登陆
(1) 登陆成功:对登陆成功的这张银行卡可以进行一下功能:存款,取款、 转账,查询卡余额信息,退卡功能。
(2) 登陆失败:请提示 登陆 or 注册,重新进行功能选择。 - 注册功能: 根据用户输入的账号密码申请一张银行卡,存储在银行卡类型的数组中(一 张银行卡对应一个有效用户)。
项目知识点: Java 类和对象,一维数组 项目实现思路:
(1)设计并实现系统的相关打印界面;插入银行卡请选择:登陆,注册 。
(2)登录系统必须输入正确的卡号和密码,输入错误时提示用户,连续输入错 误 3 次则显示锁卡,用户登录后可以修改自己的密码;
(3)取款功能:输入取款金额,核对。若超出账户余额,则输出“余额不足” 则,输出对应金额的现金,并提示用户是否打印回单,退卡,返回界面;
(4)存款功能:存入现金,核对金额,存入账户,返回主界面;
(5)查询账户信息,余额信息;
(7)转账模块,提示用户输入正确的账号,检查转账条件是否满足,并完成转 账操作;
(8)退出终端系统,提示用户保存好银行卡。
代码如下:
ATM类
package ATM;
import java.util.Scanner;
public class ATM {
private Bank bank;
public ATM() {
this.bank=new Bank();
}
public void login(){
System.out.println("请输入账号密码:");
Scanner scanner = new Scanner(System.in);
int id = scanner.nextInt();
int passwd = scanner.nextInt();
BankCard card = bank.searchCard(id, passwd);
if (card == null) {
System.out.println("输入错误,请重新输入!");
return;
}else {
System.out.println("登陆成功!");
}
while (true) {
System.out.println("1.存款 2.取款 3.查询余额 4.转账 5.退卡");
int choice=scanner.nextInt();
if (choice==5){
return;
}
switch (choice){
case 1:
System.out.println("请输入存款金额:");
int money=scanner.nextInt();
card.saveMoney(money);
break;
case 2:
System.out.println("请输入取款金额:");
money=scanner.nextInt();
card.transferMoney(money);
break;
case 3:
System.out.println("当前余额:"+card.getMoney());
break;
case 4:
System.out.println("请输入转账用户:");
int id1=scanner.nextInt();
BankCard card1= bank.searchCardid(id1);
if (card1==null){
System.out.println("用户不存在");
break;
}else {
System.out.println("请输入转账金额:");
money=scanner.nextInt();
card.transferMoney(money);
}
break;
}
}
}
public void register() {
System.out.println("请输入账号密码:");
Scanner scanner = new Scanner(System.in);
int id = scanner.nextInt();
int passwd = scanner.nextInt();
bank.addCard(id, passwd);
}
public void operate(){
while (true){
System.out.println("1.登录 2.注册 3.退出");
Scanner scanner=new Scanner(System.in);
int choice=scanner.nextInt();
if (choice==3){
return;
}
switch (choice){
case 1:
login();
break;
case 2:
register();
break;
}
}
}
}
Bank类
package ATM;
import java.util.Arrays;
public class Bank {
private BankCard[] cards;
private int size;
private static final int INITSIZE=10;
public Bank() {
this.cards =new BankCard[INITSIZE];
}
public BankCard searchCard(int id, int passwd) {
for (int i=0;i<size;i++){
if (cards[i].getId()==id&&cards[i].getPasswd()==passwd){
return cards[i];
}
}
return null;
}
public BankCard searchCardid(int id){
for (int i=0;i<size;i++){
if (cards[i].getId()==id){
return cards[i];
}
}
return null;
}
public void addCard(int id,int passwd){
BankCard card=searchCard(id,passwd);
if (card!=null){
System.out.println("用户已存在,请直接登录!");
}else {
card = new BankCard(id, passwd);
if (size == cards.length) {
cards = Arrays.copyOf(cards, cards.length + (cards.length >> 1));
}
cards[size] = card;
size++;
System.out.println("注册成功请登录!");
}
}
}
BankCard类
package ATM;
public class BankCard {
private int id;
private int passwd;
private int money;
public BankCard(int id, int passwd) {
this.id = id;
this.passwd = passwd;
}
public int getId(){
return id;
}
public int getPasswd(){
return passwd;
}
public int getMoney() {
return money;
}
public void saveMoney(int money){
this.money+=money;
}
public void transferMoney(int money){
if (this.money>money){
this.money-=money;
}else {
System.out.println("余额不足");
}
}
}
TestDemo类
package ATM;
public class TestDemo {
public static void main(String[] args) {
ATM atm=new ATM();
atm.operate();
}
}