Java实现简单控制台版ATM系统攻略
1. 需求分析
控制台版ATM系统主要需要实现以下功能:
- 用户登录、注册
- 存款、取款、查询余额
- 转账功能
2. 技术选型
本篇攻略使用Java语言实现控制台版ATM系统,使用了Java IO、集合等基础知识进行编写。在框架上,本篇攻略并未用到任何框架。
3. 代码实现
代码实现主要分为以下几个部分:
3.1 用户登录、注册
用户登录需要输入合法的用户账号和密码,如果输入的账号或密码错误,程序需要提示用户重新输入,最多只能尝试三次。在登录成功后,程序需要提供用户的基本信息,如用户名、账户余额等。
用户注册需要输入合法的用户名和密码,经过简单的输入校验后,将用户的信息存储在一个文件中,以备后续登录使用。
示例代码:
public class User {
private String name;
private String password;
private double balance;
// 省略 getter 和 setter 方法
public User(String name, String password, double balance) {
this.name = name;
this.password = password;
this.balance = balance;
}
// 登录方法
public boolean login(String name, String password, int maxRetry) {
Scanner scanner = new Scanner(System.in);
int retry = 0;
while (retry < maxRetry) {
if (!name.equals(this.name) || !password.equals(this.password)) {
System.out.println("用户名或密码错误,请重新输入。");
System.out.print("用户名: ");
name = scanner.next();
System.out.print("密码: ");
password = scanner.next();
retry++;
} else {
System.out.println("登录成功,您的账户余额为" + this.balance + "元。");
return true;
}
}
System.out.println("您已连续输入错误" + maxRetry + "次,程序已退出。");
return false;
}
// 注册方法
public static void register() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名和密码进行注册。");
System.out.print("用户名: ");
String name = scanner.next();
System.out.print("密码: ");
String password = scanner.next();
// 假设用户信息保存在 users.txt 中
try {
FileWriter fileWriter = new FileWriter("users.txt", true);
fileWriter.write(name + " " + password + " 0.00\n");
fileWriter.close();
System.out.println("注册成功!");
} catch (IOException e) {
System.out.println("注册失败,未能成功保存您的信息。");
}
}
}
3.2 存款、取款、查询余额
存款、取款、查询余额等功能都需要在用户登录后才能够使用。存款功能和取款功能需要输入金额,而查询余额功能则直接输出当前账户余额信息。
示例代码:
public class Bank {
public static void main(String[] args) {
// 登录功能
User.getUserByNameAndPassword(name, password).login(name, password, 3);
// 存款功能
System.out.print("请输入存款金额: ");
double depositAmount = scanner.nextDouble();
user.setBalance(user.getBalance() + depositAmount);
System.out.println("存款成功,您的账户余额为" + user.getBalance() + "元。");
// 取款功能
System.out.print("请输入取款金额: ");
double withdrawAmount = scanner.nextDouble();
if (user.getBalance() >= withdrawAmount) {
user.setBalance(user.getBalance() - withdrawAmount);
System.out.println("取款成功,您的账户余额为" + user.getBalance() + "元。");
} else {
System.out.println("余额不足,取款失败。");
}
// 查询余额功能
System.out.println("当前账户余额为" + user.getBalance() + "元。");
}
}
3.3 转账功能
转账功能需要输入转账金额以及对方的账号信息。转账的过程中需要进行账户余额检查,如果转账金额超过了当前用户的账户余额,则需要提醒用户转账失败。转账结束后,需要分别更新当前用户和目标用户的账户余额。
示例代码:
public class Bank {
public static void main(String[] args) {
// 转账功能
System.out.print("请输入目标账户: ");
String targetUsername = scanner.next();
User targetUser = User.getUserByName(targetUsername);
if (targetUser != null) {
System.out.print("请输入转账金额: ");
double transferAmount = scanner.nextDouble();
if (user.getBalance() >= transferAmount) {
user.setBalance(user.getBalance() - transferAmount);
targetUser.setBalance(targetUser.getBalance() + transferAmount);
System.out.println("转账成功,您的账户余额为" + user.getBalance() + "元。");
} else {
System.out.println("余额不足,转账失败。");
}
} else {
System.out.println("目标账户不存在,转账失败。");
}
}
}
4. 使用说明
使用控制台版ATM系统,需要先注册一个账号。程序会将您的账号信息存储在当前目录下的 users.txt 文件中。注册完成后,可以使用自己的账号登录系统。登录完成后,您可以进行存款、取款、查询余额以及转账等操作。
其中,输入的密码是不可见的,程序会自动将用户输入的密码转换成 * 号进行遮挡。
5. 总结
本篇攻略实现了Java控制台版ATM系统的基本功能。在实际的开发过程中,还需要考虑更多的用户交互、输入检查、数据校验等功能,以确保该系统的稳定性和安全性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现简单控制台版ATM系统 - Python技术站