Java实现银行ATM功能示例

发布时间:2020-10-28 14:42:46 作者:Leah
来源:亿速云 阅读:281

Java实现银行ATM功能示例?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

实现功能

1、用户需要通过输入银行卡号和密码才能进入ATM系统
2、用户可以在ATM中实现取款、存款、转账、余额查询、退出系统等功能

简单分析

1、创建User类(cardNo,identity,phone,username,password,balance(余额))
2、创建Bank类,主要实现初始化用户、用户登录、显示菜单、取款、存款、转账、余额查询、退出系统等功能。

代码实现

User.java

public class User {
   private String username;
   private int password;
   private String cardNo;
   private String identity;
   private String phone;
   private double blance;

  public User() {
  }

  public User(String username, int password, String cardNo, String identity, String phone, double blance) {
    this.username = username;
    this.password = password;
    this.cardNo = cardNo;
    this.identity = identity;
    this.phone = phone;
    this.blance = blance;
  }

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public int getPassword() {
    return password;
  }

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

  public String getCardNo() {
    return cardNo;
  }

  public void setCardNo(String cardNo) {
    this.cardNo = cardNo;
  }

  public String getIdentity() {
    return identity;
  }

  public void setIdentity(String identity) {
    this.identity = identity;
  }

  public String getPhone() {
    return phone;
  }

  public void setPhone(String phone) {
    this.phone = phone;
  }

  public double getBlance() {
    return blance;
  }

  public void setBlance(double blance) {
    this.blance = blance;
  }
}

Bank.java

public class Bank {
  //创建用户数组
  private User[] users=new User[100];
  //用户个数
  private int size=0;
  //当前登录的用户
  private User loginuser;

  public Bank() {
    initial();//初始化用户
  }

  /**
  * 初始化用户
  */
  public void initial(){
    User user1=new User("钟爱",12346,"6226789234023434","130324192309123074","13133565435",2312313);
    User user2=new User("冷冬",12354,"6226789234023567","1305472309123074","13446745675",2333);
    User user3=new User("小龙",9893,"6226789234023564","13032414575467457","13145745435",255553);
    User user4=new User("赵丽颖",6342,"6226789234029324","130324192647456774","13145675435",288883);
    User user5=new User("徐三哥",8445,"6226789234025487","1303241923456744","1457785435",28989);
    users[0]=user1;
    users[1]=user2;
    users[2]=user3;
    users[3]=user4;
    users[4]=user5;
    size=5;
  }
  /**
  * 用户登录
  */
  public User login(String cardNo,int password){
    for (int i = 0; i <size ; i++) {
  if((users[i].getCardNo().equals(cardNo))&&(users[i].getPassword()==password)){
        loginuser=users[i];
        return users[i];
      }
    }
    return null;
  }
  /**
  * 显示菜单
  */
  public void showMenus(){
    Scanner input =new Scanner(System.in);
    do { System.out.println("**********************************欢迎进入ATM系统*****************************************");
    System.out.println("*********************1 存款 2 取钱 3 转账 4 查询余额 5 修改密码 0 退出***********************");


      int choice=input.nextInt();
      switch (choice){
        case 1:
          //取款
          save();
          break;
        case 2:
          //存钱
          withdraw();
          break;
        case 3:
          //转账
          trans();
          break;
        case 4:
          //查询余额
          query();
          break;
        case 5:
          //修改密码
          revise();
          break;
        case 0:
          //退出ATM系统
          System.out.println("欢迎下次使用本系统");
         return;
      }
    } while (true);
  }
 /**
   * 存款操作
   */
  public void save(){
    System.out.println("请输入您的存款金额:");
    Scanner input=new Scanner(System.in);
    int money=input.nextInt();
    if(loginuser!=null){
      if(money>0){
        loginuser.setBlance(loginuser.getBlance()+money);
        System.out.println("存款成功");
        System.out.println("您的当前余额为"+loginuser.getBlance());
      }else{
        System.out.println("输入错误!");
      }
    }else{
      System.out.println("您还未进行账户登录");
    }
  }
  /**
   * 取款操作
   */
  public void withdraw(){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入你要取出的金额为:");
    int money=input.nextInt();
    if(loginuser!=null){
      if(money>0&&money<=loginuser.getBlance()){
        loginuser.setBlance(loginuser.getBlance()-money);
        System.out.println("取款成功");
        System.out.println("您的当前余额为:"+loginuser.getBlance());
      }else{
        System.out.println("输入错误");
      }
    }else{
      System.out.println("您还未进行账户登录");
    }
  }
  /**
   * 转账操作
   */
  public void trans(){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入要转入账户的卡号:");
    String cardNo=input.next();
    User nuser=null;//对方账户
    boolean IsExit=false;//判断对方账户是否存在
    for (int i = 0; i <size; i++) {
      if(users[i].getCardNo().equals(cardNo)){
        IsExit=true;//检索到对方账户
        nuser=users[i];
      }
    }
    if(loginuser==nuser){
      System.out.println("不可以自己给自己账户进行转账");
      return;
    }
    if(loginuser!=null){
      System.out.println("请输入要转账的金额:");
      int money=input.nextInt();
      if(money>0&&money<=loginuser.getBlance()){
        loginuser.setBlance(loginuser.getBlance()-money);
        nuser.setBlance(nuser.getBlance()+money);
        System.out.println("转账成功");
        System.out.println("您当前余额为"+loginuser.getBlance());
        System.out.println(nuser.getBlance());
      }else{
        System.out.println("输入错误");
      }
    }else{
      System.out.println("请登录账户");
    }
  }
  /**
   * 查询余额
   */
  public void query(){

    System.out.println("您的余额为:"+loginuser.getBlance());
  }
  /**
   * 修改密码
   */
  public void revise(){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入您的新密码");
    int newpassword=input.nextInt();
    for (int i = 0; i < size; i++) {
      if(users[i]==loginuser){
        users[i].setPassword(newpassword); //进行修改
      }
    }
    System.out.println("密码修改成功");
  }
}

BankSystem.java

public class BankSystem {
  public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    Bank bank=new Bank();
      System.out.println("请输入您的卡号:");
      String cardNo=input.next();
      System.out.println("请输入您的密码:");
      int password=input.nextInt();
      User user = bank.login(cardNo, password);//用户登录
      if(user!=null){
        System.out.println(user.getUsername()+"登陆成功");
        bank.showMenus();
      }else{
        System.out.println("登陆失败");
      }
  }
}

看完上述内容,你们掌握Java实现银行ATM功能示例的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. java模拟ATM功能的详细解析
  2. 使用java实现银行家算法的示例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java ava atm

上一篇:antd Form 表单校验方法无响应的解决方法

下一篇:Python如何实现调用JavaScript代码

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》