• 银行卡系统,输入密码取钱功能


    UnionPay接口:用于描述银联统一指定的规则


    public interface UnionPay {
        /*
         * 接口:用于描述银联统一指定的规则
         */
        public double getBalance();//查看余额
        public boolean drawMoney(double number);//取钱
        public boolean checkPwd(String input);//
    }
    ICBC接口:用于描述工商银行发行的卡片功能,在满足

    /*
     * 接口:用于描述工商银行发行的卡片功能,在满足
     * 银联的规则基础上,添加自己特有的功能
     */
    public interface ICBC extends UnionPay {
        //增加在线支付功能
        public void payOnline(double number);
    }
    ABC接口:用于描述中国农业银行发行的卡片功能,在满足银联的规则基础上,添加自己特有的功能

    /*
     * 接口:用于描述中国农业银行发行的卡片功能,在满足银联的规则基础上,添加自己特有的功能
     */
    public interface ABC extends UnionPay{
        //增加支付电话费的功能
        public boolean payTelBill(String phoneNum,double sum);

    }
    ICBCImpl实现类


    public class ICBCImpl implements ICBC {
        //类:用于描述工商银行实际发行的卡片,主要实现接口
        private double money;
        private String pwd;
        public ICBCImpl(double money,String pwd){
            this.money = money;
            this.pwd = pwd;
        }
        public double getBalance(){
            return money;
        }
        @Override
        public boolean drawMoney(double number) {
            if(number<=money){
                money-=number;
                return true;
            }
            return false;
        }
        @Override
        public boolean checkPwd(String input) {
            if(pwd.equals(input))
                return true;
            else
                return false;
        }
        @Override
        public void payOnline(double number) {
            if(number<money){
                money -= number;
            }    
        }

    }
    ABCImpl实现类


    public class ABCImpl implements ABC {
        //卡内余额允许透支2000
        private double balance;
        //帐号密码
        private String password;
        
        public ABCImpl(double balance,String password){
            this.balance = balance;
            this.password = password;
        }
        public double getBalance() {
            return balance;
        }
        public boolean drawMoney(double number) {
            if((balance-number)>-2000){
                balance -= number;
                return true;
            }
            return false;
        }
        public boolean checkPwd(String input) {
            if(password.equals(input))
                return true;
            else
                return false;
        }
        public boolean payTelBill(String phoneNum, double sum) {
            if(phoneNum.length() == 11 && (balance-sum)>=-2000){
                balance -= sum;
                return true;
            }
            return false;
        }

    }
    TestUnionPay测试类

    import java.util.Scanner;


    public class TestUnionPay {
        public static void main(String[] args){
            UnionPay icbc = new ICBCImpl(2000, "123456");
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入密码");
            if(icbc.checkPwd(sc.next())){
                System.out.println("请输入金额:");
                double num = Double.parseDouble(sc.next());
                if(icbc.drawMoney(num)){
                    System.out.println("取钱成功,余额:"+icbc.getBalance());
                }else{
                    System.out.println("取钱失败");
                }
            }else{
                System.out.println("密码错误");
            }
            sc.close();
        }

    }

    程序运行:

  • 相关阅读:
    Google是如何赚钱的?
    网站数据连接
    表单验证
    Web Proxy Autodiscovery Protocol
    把SQL2000的数据库迁移至SQL2005
    WFE与Index服务器之前的通讯
    SOS 的帮助输出
    WinDbg.exe中使用的SOS.dll的命令列表
    HTTPS 简介
    Error: A web configuration modification operation is already running
  • 原文地址:https://www.cnblogs.com/ls00/p/6927822.html
Copyright © 2020-2023  润新知