• Java编写的模拟ATM取款机程序
    时间:2008-09-08   作者:佚名   出处:互联网

    /**
     * @version 1.0
     * @author Devil_Angel
     * 该程序的功能为实现模拟银行ATM自动取款机提款,查询等功能.
     *
     */

    import java.io.*;

    /*该类为实现客户信息及部分功能*/
    class Account {
     private String code    =null;   //信用卡号
     private String name    =null;   //客户姓名
     private String password=null;   //客户密码
     private double money   =0.0;   //卡里金额
     
     /********************/
     public Account(String code,String name,String password,double money)
     {
      this.code=code;
      this.name=name;
      this.password=password;
      this.money=money;
     }
     
     protected String get_Code() {
      return code;
     }
     
     protected String get_Name() {
      return name;
     }
     
     protected String get_Password() {
      return password;
     }
     
     public double get_Money() {
      return money;
     }
     
     /*得到剩余的钱的数目*/
     protected void set_Balance(double mon) {
      money -= mon;
     }
    }

    /**********实现具体取款机功能*********/
    class ATM {
     Account act;
    // private String name;
    // private String pwd;
     
     public ATM() {
      act=new Account("000000","Devil","123456",50000);
     }
     
     /***********欢迎界面***********/
     protected void Welcome()
     {
      String str="---------------------------------";
      System.out.print(str+"\n"+
           "欢迎使用Angel模拟自动取款机程序.\n"+str+"\n");
      System.out.print(" 1.>取款."+"\n"+
           " 2.>查询信息."+"\n"+
           " 3.>密码设置."+"\n"+
           " 4.>退出系统."+"\n");
     }
     
     /**********登陆系统**********/
     protected void Load_Sys() throws Exception
     {
      String card,pwd;
      int counter=0;
     
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
      do {
       System.out.println("请输入您的信用卡号:");
       card=br.readLine();
       System.out.println("请输入您的密码:");
       pwd=br.readLine();
      
       if(!isRight(card,pwd))
       {
        System.out.println("您的卡号或密码输入有误.");
        counter++;
       }
       else
        SysOpter();
      
      }while(counter<3);
      Lock_Sys();
     }
     
     /**********系统操作**********/
     protected void SysOpter() throws Exception
     {
      int num;
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
      System.out.println("请选择您要操作的项目(1-4):");
      num=br.read();  //num为ASICC码转换的整数
      switch(num) {
      case 49: BetBalance(); break;
      case 50: Inqu_Info(); break;
      case 51: Set_Password(); break;
      case 52: Exit_Sys();  break;
      }
      System.exit(1);
     }
     
     /**********信息查询**********/
     protected void Inqu_Info() {
      System.out.print("---------------------\n"+
           act.get_Code()+"\n"+
           act.get_Name()+"\n"+
           act.get_Money()+"\n"+
           "-----------------------");
     }
     
     /**********取款**********/
     public void BetBalance() throws Exception
     {
      String str=null,str1;
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
      do {
       System.out.println("请输入您要取的数目:");
       str=br.readLine();
       str1=String.valueOf(act.get_Money());
       if(str.compareTo(str1)>0) {
        System.out.println("超过已有的钱数,请重新输入您要取的数目:");
       }
       else {
        /*操作成功*/
    //    act.set_Balance(str);
        System.out.println("取款成功,请收好您的钱.");
        Welcome();
        SysOpter();
       }
      }while(true);
     
     }
     
     /**********判断卡内是否有钱**********/
     protected boolean isBalance() {
      if(act.get_Money()<0) {
    //   System.out.println("对不起,您的钱数不够或卡已透支.");
       return false;
      }
      return true;
     }
     
     /********卡号密码是否正确******/
     protected boolean isRight(String card,String pwd)
     {
      if(act.get_Code().equals(card) && act.get_Password().equals(pwd))
       return true;
      else
       return false;
     }
     
     /**********密码修改**********/
     protected void Set_Password() throws Exception
     {
      String pwd=null;
      int counter=0;
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
      do {
       System.out.println("请输入旧密码:");
       pwd=br.readLine();
       if(act.get_Password().equals(pwd))
       {
        do {
         System.out.println("请输入新密码:");
         String pwd1=br.readLine();
         System.out.println("请再次输入新密码:");
         String pwd2=br.readLine();
         if(!pwd1.equals(pwd2))
         {
          System.out.println("两次输入不一致,请再次输入.");
         }
         else
         {
          System.out.println("密码修改成功,请使用新密码.");
          Welcome();
          SysOpter();
         }
        }while(true);
       }
      }while(counter>3);
     
     }
     
     /**********锁定机器**********/
     protected void Lock_Sys() {
      System.out.println("对不起,您的操作有误,卡已被没收.");
      System.exit(1);
     }
     
     /**********结束系统**********/
     protected void Exit_Sys() {
      System.out.println("感谢您使用本系统,欢迎下次在来,再见!");
      System.exit(1);
     }
     
    }

    public class Text
    {
     public static void main(String[] args) throws Exception
     {
      ATM atm=new ATM();
      atm.Welcome();
      atm.Load_Sys();
    //  atm.Exit_Sys();
     }
    }

    网友留言/评论

    我要留言/评论