[ATM]

package com.alibaba;

/**
 * 银行卡
 *  账号
 *  密码
 *  余额
 *  银行卡名字
 *  持卡人姓名
 */
public class Account {
    private String accountNum; //卡号
    private String pwd; //密码
    private double balance; //余额
    private String bankName;//银行卡名字
    private String name;//持卡人姓名

    //构造器


    public Account() {
        super();
    }

    public Account(String accountNum, String pwd, double balance, String bankName, String name) {
        this.accountNum = accountNum;
        this.pwd = pwd;
        this.balance = balance;
        this.bankName = bankName;
        this.name = name;
    }

    public String getAccountNum() {
        return accountNum;
    }

    public void setAccountNum(String accountNum) {
        this.accountNum = accountNum;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public double getBalance() {
        return balance;
    }

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

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

package com.alibaba;

import com.hp.demo03.InputUtils;

import java.util.Scanner;

/**
 * 自动取款机
 *  插卡
 *  纸币
 *  余额不足
 *  输入密码
 *  可以取款
 */
public class ATM {
    private Account account; //卡槽
    private double balance; //取款机的纸币余额
    private int flag; //如果等于1表示密码登录成功,等于0表示密码错误
  //主菜单
    public void main(){
        while(true){
            System.out.println("--------------------------------");
            System.out.println("-- 1.余额查询   2.取款---");
            System.out.println("-- 3.存款    4.转账---");
            System.out.println("-- 5.打印     6.退卡---");
            System.out.println("--7.查询转账信息");
            System.out.println("-- 0.退出                ---");
            //选择执行功能
            System.out.println("-->请输入0-7的数字选择功能执行:");

        }
    }
    /**
     * 输入密码
     */
    public void inputPwd(){
        System.out.println("-->请输入卡密码...");
        String pwd = new Scanner(System.in).next();
        //判断密码是否正确(跟卡槽里的卡判断)
        if(pwd.equals(this.account.getPwd())){
            System.out.println("-->提示:密码正确..");
            flag=1;
        }else{
            System.out.println("-->警告:密码错误");
            flag=0;
        }
    }

    /**
     * 取款
     */
    public void withdrawMoney() {
        //先判断是否密码已正确登录
        if(flag==0){
            System.out.println("-->请先登录!!");
            return;
        }

        System.out.println("-->请输入取款金额...");
        int money = new Scanner(System.in).nextInt();
        //判断卡里的钱是否足够
        if(money<=this.account.getBalance()){
            System.out.println("-->提示:正在出纸币..");
            //判断ATM是否有足够纸币
            if(money<=this.balance){
                System.out.println("-->提示:请取走您的纸币..");
                this.account.setBalance(this.account.getBalance()-money);
                this.setBalance(this.getBalance()-money);
                System.out.println("-->取款"+money);
                System.out.println("-->您的银行卡账号余额:"+this.account.getBalance());
                System.out.println("-->ATM剩余纸币:"+this.getBalance());
            }else{
                System.out.println("-->提示:ATM纸币不足,请联系工作人..");
            }
        }else{
            //System.out.println("-->警告:余额不足!!!替换为异常处理");
            //抛出自定义异常
            //BalanceNotEnoughException e = new BalanceNotEnoughException();
            //throw e;//抛出了异常
        }
    }

    /**
     * 存款
     */
public void cunkuan(){

}





    //构造器
    public ATM() {
    }
    public ATM(double balance) {
        this.balance = balance;
    }

    public Account getAccount() {
        return account;
    }

    public void setAccount(Account account) {
        this.account = account;
    }

    public double getBalance() {
        return balance;
    }

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

package com.alibaba;

/**
 * 测试使用ATM
 */
public class Test {
    public static void main(String[] args){
        //创建ATM取款机对象
        ATM atm = new ATM(5000);//取款机只有5000纸币

        //创建银行卡账号
        Account account = new Account("10101100", "123456", 200,"张三","工商银行");

        //模拟取款
        //第一步:插卡
        atm.setAccount(account);

        //第二步:输入密码
        atm.inputPwd();

        //第三步:取款
        atm.withdrawMoney();

        //第四步:退卡
        atm.setAccount(null);
        System.out.println("-->程序运行结束");

        Object o = new ATM();
    }
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值