Java详解实现ATM机模拟系统攻略
系统概述
该ATM机模拟系统是用Java语言实现的,包含了模拟受卡人身份认证、存款、取款等操作。此系统模拟银行的ATM机功能,可以满足普通用户的基本需求。
技术栈
- Java:Java SE 8版本及以上
- IDE:Eclipse, IntelliJ IDEA等
- Maven:用于管理依赖
- JUnit:用于单元测试
功能模块
该ATM机模拟系统包含以下功能模块:
- 身份验证
- 存款
- 取款
- 查询余额
- 修改密码
实现步骤
1. 创建Java项目并导入依赖库
首先我们需要在IDE中创建一个Java项目,并在pom.xml文件中引入相关依赖库,如:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
2. 创建ATM机类并初始化数据
创建一个ATM类,包含一些必要的数据和方法,如下:
public class ATM {
private String cardNo; //银行卡号
private String password; //密码
private double balance; //余额
//构造方法
public ATM(String cardNo, String password, double balance) {
this.cardNo = cardNo;
this.password = password;
this.balance = balance;
}
//提供get/set方法
//实现身份验证
public boolean authenticate(String cardNo, String password) {
if (this.cardNo.equals(cardNo) && this.password.equals(password)) {
return true;
} else {
return false;
}
}
//存款操作
public void deposit(double amount) {
this.balance += amount;
}
//取款操作
public void withdraw(double amount) {
if (this.balance >= amount) {
this.balance -= amount;
} else {
System.out.println("余额不足!");
}
}
//查询余额
public double getBalance() {
return this.balance;
}
//修改密码
public void changePassword(String newPassword) {
this.password = newPassword;
}
}
3. 编写ATM机操作界面
创建一个ATMOperation类,用于模拟ATM机的操作界面,如下:
public class ATMOperation {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ATM atm = new ATM("123456", "123456", 10000.0);
//ATM机操作选择界面
System.out.println("=====欢迎使用ATM机=====");
System.out.println("请选择操作:");
System.out.println("1. 查询余额");
System.out.println("2. 存款");
System.out.println("3. 取款");
System.out.println("4. 修改密码");
System.out.println("0. 退出");
int choice = sc.nextInt();
switch (choice) {
case 0:
System.out.println("感谢您的使用!");
break;
case 1:
System.out.println("余额: " + atm.getBalance());
break;
case 2:
System.out.println("请输入存款金额:");
double depositAmount = sc.nextDouble();
atm.deposit(depositAmount);
System.out.println("存款成功!余额: " + atm.getBalance());
break;
case 3:
System.out.println("请输入取款金额:");
double withdrawAmount = sc.nextDouble();
atm.withdraw(withdrawAmount);
System.out.println("取款成功!余额: " + atm.getBalance());
break;
case 4:
System.out.println("请输入新密码:");
String newPassword = sc.next();
atm.changePassword(newPassword);
System.out.println("修改密码成功!");
break;
default:
System.out.println("请选择正确的操作!");
}
}
}
4.执行测试
使用JUnit对ATM类的各个操作方法进行单元测试,保证功能的正确性。如下:
public class ATMTest {
@Test
public void testAuthenticate() {
ATM atm = new ATM("123456", "123456", 10000.0);
Assert.assertEquals(true, atm.authenticate("123456", "123456"));
}
@Test
public void testDeposit() {
ATM atm = new ATM("123456", "123456", 10000.0);
atm.deposit(2000.0);
Assert.assertEquals(12000.0, atm.getBalance(), 0.0);
}
@Test
public void testWithdraw() {
ATM atm = new ATM("123456", "123456", 10000.0);
atm.withdraw(5000.0);
Assert.assertEquals(5000.0, atm.getBalance(), 0.0);
atm.withdraw(6000.0);
Assert.assertEquals(5000.0, atm.getBalance(), 0.0);
}
@Test
public void testChangePassword() {
ATM atm = new ATM("123456", "123456", 10000.0);
atm.changePassword("654321");
Assert.assertEquals(true, atm.authenticate("123456", "654321"));
}
}
以上是Java详解实现ATM机模拟系统的攻略。其中,ATM类实现了相关操作,ATMOperation类模拟了ATM机的操作界面,并使用JUnit进行单元测试,保证系统的正确性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java详解实现ATM机模拟系统 - Python技术站