21xrx.com
2024-12-28 19:25:39 Saturday
登录
文章检索 我的文章 写文章
Java ATM取款机课程设计报告
2023-06-11 17:09:58 深夜i     --     --

ATM(Automatic Teller Machine)是自动取款机的缩写,是现代银行服务的重要组成部分之一。本篇文章主要介绍使用Java语言设计一个ATM取款机系统的全过程,包括系统的框架搭建、功能的实现和界面的设计等。

ATM取款机系统一般具备以下功能:账户登录、取款、存款、查询余额、修改密码等。因此,我们在设计系统时需要考虑如何实现这些功能,同时也需要针对性地编写代码。下面就以一个简单的ATM取款机系统为例,介绍Java中的一些重要知识点。

一、系统架构设计

ATM取款机系统的核心是账户管理和交易管理,可以从以下两个方面来设计系统架构:

1.账户管理

- 账户数据存储:可以使用数据库或者文件保存账户信息,这里我们使用文件存储的方式。

- 账户登录:用户在输入账号和密码后,系统判断用户输入是否正确,并返回相应的结果。

- 账户注册:用户输入账号和密码后,系统将账户信息保存到文件中。

2.交易管理

- 取款:用户输入取款金额,系统判断余额是否充足,如充足则完成取款操作,并更新账户余额。

- 存款:用户输入存款金额,系统完成存款操作,并更新账户余额。

- 查询余额:用户查询当前账户余额。

- 修改密码:用户输入原密码和新密码后,系统完成密码修改操作。

二、代码实现

1.账户管理

- 文件存储账户信息


// 存储账户信息到文件中

public void saveAccount(Account account) {

  File file = new File("account.txt");

  try {

    FileWriter writer = new FileWriter(file, true);

    writer.write(account.getAccountNumber() + "," + account.getPassword() + "," + account.getBalance() + "\n");

    writer.close();

  } catch (IOException e) {

    e.printStackTrace();

  }

}

// 从文件中读取账户信息

public List readAccount() {

  List accounts = new ArrayList<>();

  File file = new File("account.txt");

  try {

    BufferedReader reader = new BufferedReader(new FileReader(file));

    String line = "";

    while ((line = reader.readLine()) != null) {

      String[] strs = line.split(",");

      Account account = new Account(strs[0], strs[1], Double.parseDouble(strs[2]));

      accounts.add(account);

    }

    reader.close();

  } catch (IOException e) {

    e.printStackTrace();

  }

  return accounts;

}

- 账户登录


// 账户登录

public boolean login(String accountNumber, String password) {

  List accounts = readAccount();

  for (Account account : accounts) {

    if (account.getAccountNumber().equals(accountNumber) && account.getPassword().equals(password)) {

      return true;

    }

  }

  return false;

}

- 账户注册


// 账户注册

public void register(String accountNumber, String password) {

  Account account = new Account(accountNumber, password, 0);

  saveAccount(account);

}

2.交易管理

- 取款操作


// 取款操作

public boolean withdraw(String accountNumber, double amount) {

  List accounts = readAccount();

  for (Account account : accounts) {

    if (account.getAccountNumber().equals(accountNumber) && account.getBalance() >= amount) {

      double newBalance = account.getBalance() - amount;

      account.setBalance(newBalance);

      saveAccounts(accounts);

      return true;

    }

  }

  return false;

}

- 存款操作


// 存款操作

public void deposit(String accountNumber, double amount) {

  List accounts = readAccount();

  for (Account account : accounts) {

    if (account.getAccountNumber().equals(accountNumber)) {

      double newBalance = account.getBalance() + amount;

      account.setBalance(newBalance);

      saveAccounts(accounts);

      return;

    }

  }

}

- 余额查询


// 查询余额

public double balance(String accountNumber) {

  List accounts = readAccount();

  for (Account account : accounts) {

    if (account.getAccountNumber().equals(accountNumber)) {

      return account.getBalance();

    }

  }

  return -1;

}

- 密码修改


// 密码修改

public void modifyPassword(String accountNumber, String oldPassword, String newPassword) {

  List accounts = readAccount();

  for (Account account : accounts) {

    if (account.getAccountNumber().equals(accountNumber) && account.getPassword().equals(oldPassword)) {

      account.setPassword(newPassword);

      saveAccounts(accounts);

      return;

    }

  }

}

三、关键词

1. Java

2. ATM取款机

3. 课程设计

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复