21xrx.com
2025-04-16 07:21:00 Wednesday
文章检索 我的文章 写文章
Java实现ATM机-体验神奇的编程世界
2023-06-16 15:53:08 深夜i     11     0

在现代化的金融服务中,ATM机扮演着关键的角色。通过ATM机,用户可以使用自己的银行卡进行取款、转账、查询等操作,而无需到银行柜台排队,尤其在疫情时期,更是减少了人员接触的交互。那么,在这个技术看似发达的时代,如何用Java代码实现ATM机呢?本文将为大家一一揭晓。

首先,我们需要定义一个用户类,并初始化用户账户余额与账户密码等信息,如下所示:

public class User {
  private double balance; //账户余额
  private String password; //账户密码
  //初始化用户信息
  public User(double balance, String password)
    this.balance = balance;
    this.password = password;
  
  //查询账户余额
  public double getBalance()
    return balance;
  
  //获取账户密码
  public String getPassword()
    return password;
  
  //更新账户余额
  public void updateBalance(double balance) {
    this.balance += balance;
  }
}

接下来,我们需要定义一个ATM类,实现用户的交互过程,具体可以有取款、存款、转账、查询余额等操作,代码如下:

import java.util.Scanner;
public class ATM {
  private User user; //用户信息
  //初始化ATM机
  public ATM(User user)
    this.user = user;
  
  //ATM机主界面
  private void welcome() {
    System.out.println("************************");
    System.out.println("*   欢迎使用ATM机    *");
    System.out.println("************************");
  }
  //取款
  private void withdraw() {
    Scanner input = new Scanner(System.in);
    System.out.println("请输入取款金额:");
    double amount = input.nextDouble();
    if (amount <= 0 || amount > user.getBalance()) {
      System.out.println("取款金额非法,请重新输入!");
      return;
    }
    user.updateBalance(-amount);
    System.out.println("取款成功,当前余额为:" + user.getBalance());
  }
  //存款
  private void deposit() {
    Scanner input = new Scanner(System.in);
    System.out.println("请输入存款金额:");
    double amount = input.nextDouble();
    if (amount <= 0) {
      System.out.println("存款金额非法,请重新输入!");
      return;
    }
    user.updateBalance(amount);
    System.out.println("存款成功,当前余额为:" + user.getBalance());
  }
  //转账
  private void transfer() {
    Scanner input = new Scanner(System.in);
    System.out.println("请输入对方账户名:");
    String name = input.next();
    System.out.println("请输入转账金额:");
    double amount = input.nextDouble();
    if (amount <= 0 || amount > user.getBalance()) {
      System.out.println("转账金额非法,请重新输入!");
      return;
    }
    user.updateBalance(-amount);
    System.out.println("转账成功,当前余额为:" + user.getBalance());
  }
  //查询余额
  private void queryBalance() {
    System.out.println("当前余额为:" + user.getBalance());
  }
  //ATM机操作选择
  private void choice() {
    Scanner input = new Scanner(System.in);
    while (true) {
      System.out.print("请选择操作:\n1、取款\n2、存款\n3、转账\n4、查询余额\n5、退出\n>");
      int ch = input.nextInt();
      switch (ch) {
        case 1:
          withdraw();
          break;
        case 2:
          deposit();
          break;
        case 3:
          transfer();
          break;
        case 4:
          queryBalance();
          break;
        case 5:
          return;
        default:
          System.out.println("非法选择!");
          break;
      }
    }
  }
  //ATM机使用结束
  private void end() {
    System.out.println("谢谢使用,再见!");
  }
  //ATM机使用流程
  public void run() {
    welcome();
    choice();
    end();
  }
  public static void main(String[] args) {
    User user = new User(5000.0, "123456");
    ATM atm = new ATM(user);
    atm.run();
  }
}

最后,我们只需要在main函数中新建一个实例,在控制台就可以愉快地体验ATM机的神奇之处啦!

本文示例代码简洁明了,实现了基本功能,但还有许多细节需要完善,如密码的安全性、ATM机的各种交互提示等等。利用Java编写ATM机是一个充满挑战和快乐的过程,让我们一同感受编程的魅力吧!

关键词:

Java编程;ATM机;用户交互;

  
  

评论区