ATM系统

编写一个ATM系统(账号和密码自己定义,转账账户自己定义,时间可以不用展示出来,并且用方法的方式实现)效果如图所示:


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package Bank;
/**
 * @Author: AxinGzZz
 * @Date: 2021/1/16 18:46
 */
public class Account {
    
    
    //账户账号
    //账户密码
    //余额
     private String id = "lx";
     private String id2 = "yy";
     private String password = "123456";
     private double balance = 500;
     private double balance1 = 700;
     int j =4;
     //登录入口及功能实现
     public void regist(){
    
    }
    //查询余额功能
    public void baquiry(){
    
    }
    //存款功能
    public void deposit(){
    
    }
    //取款功能
    public void withdrawal(){
    
    }
    //转账功能
    public void transferAccounts(){
    
    }
    //修改密码
    public void changePassword(){
    
    }
    //退出
    public void exit(){
    
    }

    //get,set方法访问封装数据
    public String getId() {
    
    
        return id;
    }

    public void setId(String id) {
    
    
        this.id = id;
    }

    public String getPassword() {
    
    
        return password;
    }

    public void setPassword(String password) {
    
    
        this.password = password;
    }

    public double getBalance() {
    
    
        return balance;
    }

    public void setBalance(double balance) {
    
    
        this.balance = balance;
    }

    public String getId2() {
    
    
        return id2;
    }

    public void setId2(String id2) {
    
    
        this.id2 = id2;
    }

    public double getBalance1() {
    
    
        return balance1;
    }

    public void setBalance1(double balance1) {
    
    
        this.balance1 = balance1;
    }

    //有参构造方法
    public Account(String id, String password, double balance ,double balance1) {
    
    
        this.id = id;
        this.password = password;
        this.balance = balance;
        this.balance1 = balance1;
    }

    //无参构造方法
    public Account() {
    
    
    }

    //重写toString
    @Override
    public String toString() {
    
    
        return "Account{" +
                "id='" + id + '\'' +
                ", password='" + password + '\'' +
                ", balance=" + balance +
                '}';
    }
}
package Bank;
import java.time.LocalDate;
import java.util.Calendar;
import java.util.Scanner;
/**
 * @Author: AxinGzZz
 * @Date: 2021/1/16 22:49
 */
public class AtmDemo extends Account {
    
    
    @Override
    public void regist() {
    
    
        LocalDate localDate = LocalDate.now();
        //获取年份
        int year = localDate.getYear();
        //获取月
        int month = localDate.getMonthValue();
        //获取日
        int day = localDate.getDayOfMonth();
        Calendar calendar =  Calendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        //获取分钟
        int minute = calendar.get(Calendar.MINUTE);
        //获取秒
        int second = calendar.get(Calendar.SECOND);
        System.out.println("----------------------");
        System.out.println("####欢迎来到实训银行####");
        System.out.println("####请按照功能菜单进行操作####");
        System.out.println("请输入您的账号:");
        Scanner scanner = new Scanner(System.in);
        String id1 = scanner.next();
        System.out.println("请输入您的密码:");
        String password1 = scanner.next();
        if (getId().equals(id1) && getPassword().equals(password1)) {
    
    
            System.out.println("登录成功! 当前余额" + getBalance() + "元"+"   "+"登录时间:"+year+"-"+month+"-"+day+":"+hour+":"+minute+":"+second);
            while (true) {
    
    
                System.out.println("-----------------------");
                System.out.println("####请按照菜单选择功能####");
                System.out.println("————————————————————————");
                System.out.println("1.余额查询 2.存款 3.取款 4.转账 5.修改密码 0.退出");
                Scanner scanner1 = new Scanner(System.in);
                int input = scanner1.nextInt();
                switch (input) {
    
    
                    case 1:
                        baquiry();
                        break;
                    case 2:
                        deposit();
                        break;
                    case 3:
                        withdrawal();
                        break;
                    case 4:
                        transferAccounts();
                        break;
                    case 5:
                        changePassword();
                        break;
                    case 0:
                        exit();
                        break;
                }
            }
        } else {
    
    
            System.out.println("账户名称或密码不对,请你重新输入,你还剩" + j + "次机会");
            j--;
            if (j < 0) {
    
    
                System.out.println("账户名称或密码情况,您已经输错5次了。请联系银行工作人员");
                scanner.close();
            } else {
    
    
                regist();
            }
        }
    }

    //重写查询余额方法
    @Override
    public void baquiry() {
    
    
        System.out.println("当前的余额为:");
        System.out.println(getBalance() + "元");
    }

    //重写存款方法
    @Override
    public void deposit() {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入存款金额:");
        double dep = scanner.nextInt();
        if (dep % 100 != 0) {
    
    
            System.out.println("存款必须是100的倍数");
        } else {
    
    
            //计算存款金额
            dep += getBalance();
            //利用set方法更新余额
            setBalance(dep);
            System.out.println("存款成功,账户余额为:" + dep + "元");
        }
    }

    //重写取款方法
    @Override
    public void withdrawal() {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入取款金额:");
        double dra = scanner.nextInt();
        if (dra % 100 != 0) {
    
    
            System.out.println("取款必须是100的倍数");
        } else {
    
    
            //判断取款是否大与余额
            if (dra > getBalance()) {
    
    
                System.out.println("你的余额不足");
            } else {
    
    
                //利用set方法更新余额
                dra = getBalance() - dra;
                setBalance(dra);
                System.out.println("取款成功,账户余额为::" + dra + "元");
            }
        }
    }

    //重写转账方法
    @Override
    public void transferAccounts() {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入转账账户:");
        String trAcc = scanner.next();
        if (trAcc.equals(getId2())) {
    
    
            System.out.println("请输入转账金额:");
            Scanner scanner1 = new Scanner(System.in);
            int sum = scanner1.nextInt();
            //判断转账金额是否大于存款
            if (sum % 100 == 0 && sum < getBalance()) {
    
    
                double sum0 = getBalance() - sum;
                //利用set方法更新自己账户余额
                setBalance(sum0);
                double sum1 = sum;
                sum1 += getBalance1();
                //利用set方法更新对方账户余额
                setBalance1(sum1);
                System.out.println("转账成功,账户余额为:" + sum0 + "对方账户余额为:" + sum1);
            } else {
    
    
                System.out.println("您的余额不足");
            }
        } else {
    
    
            System.out.println("您输入的账户不存在");
        }
    }

    //重写修改密码方法
    @Override
    public void changePassword() {
    
    
        System.out.println("请输入当前密码:");
        Scanner scanner = new Scanner(System.in);
        String cp = scanner.next();
        if (cp.equals(getPassword())) {
    
    
            Scanner scanner2 = new Scanner(System.in);
            System.out.println("请输入新密码:");
            String cp2 = scanner2.next();
            System.out.println("请再次输入新密码:");
            ;
            Scanner scanner1 = new Scanner(System.in);
            String cp1 = scanner1.next();
            if (cp1.equals(cp2)) {
    
    
                cp = cp1;
                setPassword(cp);
                System.out.println("修改密码成功,请重新登录");
                regist();
            } else {
    
    
                System.out.println("您输入的密码不一致!");
                changePassword();
            }
        } else {
    
    
            System.out.println("您当前输入的密码不对");
        }
    }

    //重写退出方法
    @Override
    public void exit() {
    
    
        System.out.println("您确定要退出系统?是则按Y,否则按N");
        Scanner scanner = new Scanner(System.in);
        String input = scanner.next();
        String input1 = "Y";
        if (input.equals(input1)) {
    
    
            System.out.println("您已退出系统,是否再次登录?是则按Y,否则按N");
            Scanner scanner1 = new Scanner(System.in);
            String input2 = scanner1.next();
            String input3 = "Y";
            if (input2.equals(input3)) {
    
    
                regist();
            } else {
    
    
                System.out.println("您已退出系统!");
                System.exit(0);
            }
        }
    }
}
package Bank;


/**
 * @Author: AxinGzZz
 * @Date: 2021/1/16 19:32
 */
public class BankDemo {
    
    
    public static void main(String[] args) {
    
    
        Account  account = new AtmDemo();
        account.regist();

    }
}

效果图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44193337/article/details/112741795
atm