Java 银行卡项目设计

项目介绍:基于大家使用银行卡在 ATM 机取款操作,进行相对应 ATM 机操作流程的实现。
项目功能:

  1. 登陆功能: 根据用户账号密码进行登陆
    (1) 登陆成功:对登陆成功的这张银行卡可以进行一下功能:存款,取款、 转账,查询卡余额信息,退卡功能。
    (2) 登陆失败:请提示 登陆 or 注册,重新进行功能选择。
  2. 注册功能: 根据用户输入的账号密码申请一张银行卡,存储在银行卡类型的数组中(一 张银行卡对应一个有效用户)。

项目知识点: 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();
    }
}

猜你喜欢

转载自blog.csdn.net/Super_Powerbank/article/details/105566416