农行ATM小案例

 1 package oo.day06;
 2 
 3 import java.util.Scanner;
 4 
 5 public class ATM {
 6     
 7     UnionPay card;
 8     
 9     public void insertcard(UnionPay card){
10         
11         this.card = card;
12     }
13     
14     
15     public void PayTelbill(){
16         
17              Scanner input = new Scanner(System.in);    
18          
19             if(card instanceof ABC){
20                 ABC Card = (ABC)card;
21                 System.out.println("请输入电话号码:");
22                 String phoneNum = input.next();
23                 System.out.println("请输入缴费额:");
24                 //double number = Double.parseDouble(input.next());
25                 double number = input.nextDouble();
26                 
27                 if(Card.payTelBill(phoneNum,number)){
28                     //System.out.println(card.getBalance());
29                     System.out.println("缴费成功");
30                 }else{
31                     System.out.println("缴费失败");
32                 }
33 
34             }else{
35                 System.out.println("您的卡不是农业银行卡,无法完成缴费");
36             }    
37     }
38     
39     
40     public void drawmoney(){
41         Scanner input = new Scanner(System.in);
42         System.out.println("请输入取钱金额:");
43         double number = input.nextDouble();
44         if(card.drawMoney(number)){
45             
46             System.out.println("取钱成功!");
47         }
48     }
49     
50     public void checkPwd(){
51         
52         Scanner input = new Scanner(System.in);
53          System.out.println("请输入密码:");
54          String mima =input.next();
55          System.out.println("请选择功能:");
56          System.out.println("1.查询余额  2.取款   3.缴电话费");
57          int n = input.nextInt();
58          switch(n){
59          
60          case 1:
61          //card.getBalance();
62          System.out.println(card.getBalance());
63          break;
64          case 2:
65              drawmoney();break;
66          case 3:
67              PayTelbill();break;
68          }
69         
70         
71     }
72     
73     
74 
75 }
 1 package oo.day06;
 2 
 3 
 4 //农行卡
 5 class ABCImpl implements ABC{
 6     
 7      private String pwd;
 8      private double balance; 
 9      ABCImpl(String pwd,double balance){
10          
11          this.balance=balance;
12          this.pwd = pwd;
13      }
14      
15 
16     @Override
17     public boolean payTelBill(String phoneNum, double number) {
18         
19          if(phoneNum.length() == 11 && (balance-number)>=-2000){
20              
21                 balance-=number;
22                 
23                  return true;
24          }
25          else
26             return false;
27     }
28 
29     @Override
30     public boolean checkPwd(String mima) {
31       if(pwd.equals("mima")){
32             
33             return true;
34         }
35       else
36           return false;
37     }
38 
39     @Override
40     public boolean drawMoney(double number) {
41         if((balance-number)>-2000){
42             balance -= number;
43             return true;
44         }
45         else
46         return false;
47     }
48 
49     @Override
50     public double getBalance() {
51         return balance;
52     } 
53 }




package oo.day06;

import java.util.Scanner; 

public class UnionPayText {

    
    public static void main(String[] args) {
        
        
        ATM atm = new ATM();
        
        ABCImpl card = new ABCImpl("123456",2000);
        
        atm.insertcard(card);
        
        atm.checkPwd();
        
        
        
        
        
        
        
        
        
        
        
        
        /*
        UnionPayICBC icbc = new ICBCImpl("123456",3000);
        
        Scanner scan =new Scanner(System.in);
        System.out.println("请输入密码:");
        
        String input = scan.next(); 
        boolean str= icbc.checkPwd(input);
        System.out.println("请输入金额:");
        
        double number = scan.nextInt();
        
        //icbc.payOnline(100);
        
        if(icbc.drawMoney(number)){
            
            System.out.println("取钱成功,卡上余额为:"+icbc.getBalance());
            
        }*/
            
            
            
/*
            UnionPay abc = new ABCImpl("123456",3000);
            
            Scanner scann =new Scanner(System.in);
            System.out.println("请输入密码:");
            
            String inp = scann.next(); 
            boolean str1= abc.checkPwd(inp);
            System.out.println("请输入金额:");
            
            double number1 = scann.nextInt();
            
            //icbc.payOnline(100);
            
            if(abc.drawMoney(number1)){
                
                System.out.println("取钱成功,卡上余额为:"+abc.getBalance());
            
        
        
        
        }
         */
    }

    
}










 
 
package oo.day06;

public interface UnionPay{
    
     //查询余额
   double getBalance();    
 //取钱
   boolean drawMoney(double number);
 //检查密码
   boolean checkPwd(String input);
}

interface ICBC extends UnionPay{
   //增加的在线支付功能
   public void payOnline(double number);
   

}


interface ABC extends UnionPay{
       //增加的在线支付功能
       public boolean payTelBill(String phoneNum, double number);
       

    }

 

转载于:https://www.cnblogs.com/xiaziteng/p/4733411.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值