作者笔语:
首先感谢大家能够阅读我的文章,本次程序实验设计功能主要是简洁和功能便捷而且便于操作,便于读者阅读和学习,也便于读者对我的设计进行升华与改进,我会在文章末尾留下代码文档便于参考,如有问题和大胆想法与创新设计也可跟我交流。
目录
一、简述:
(1)设计功能要求:
使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
1、查询余额:初始余额为10000元
2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
3、ATM存款:不能出现负存款。
4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
(2) 开发环境:
操作系统:Windows 11;
开发工具:Eclipse;
Java版本:JDK1.8.0_221;
数据库:Navicat,JDBC;
(3)实验设计的目的:
通过本次实验,目的在于:
掌握Java图形用户界面的开发方法;
深入理解Java语言的面向对象特性;
实现一个基本的ATM柜员机模拟程序;
实践Java语言基本控制语句的使用方式;
熟悉Java异常处理机制的应用。
二、程序的实现与设计
(1)程序中的类及关系
本系统设计包含三个类,分别为ATM类,ATMFrame类,LoginFrame类。
(2)程序设计流程以及描述图
(3)运行程序与调试
在完成Java程序的编写后,我们需要进行运行测试。在Eclipse中运行该项目,点击“登录”按钮,输入正确的卡号和密码即可进入ATM主页面。在ATM主页面中,测试各个功能的按钮是否能够正常实现相应功能。
三、功能的实现与运行
本系统功能模块不在此一一详写,列举了几个主要的功能进行描述:
1.用户登录功能:
对于该界面,当输入给定的卡号和密码(初始卡号和密码为123456)时,
提示登录成功信息
系统将进入ATM柜员机系统,实现相应的功能
2.进入ATM柜员机系统:
该功能界面可以对系统操作查询,存款,取款,修改密码以及退出,并显示余额信息
(1)取款功能
与上述存款功能相似,但有取款要求:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。不按要求会非法报错如下图:
代码实现如下:
String inputAmountString = JOptionPane.showInputDialog(this, "请输入你想提取多少元");
if (inputAmountString != null) {
try {
int inputAmount = Integer.parseInt(inputAmountString.trim());
if (inputAmount % 100 != 0) {
JOptionPane.showMessageDialog(this,"Invalidwithdrawalamount.");
} else if (inputAmount > 5000) {
JOptionPane.showMessageDialog(this, "你最多一次只能提取5000元");
} else if (inputAmount > balance) {
JOptionPane.showMessageDialog(this, "余额不足");
} else {
balance -= inputAmount;
balanceAmountLabel.setText(String.valueOf(balance));
JOptionPane.showMessageDialog(this, "提取成功");
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Invalid withdrawal amount.");
}
}
(2)修改密码功能
点击按钮显示输入旧密码界面
旧密码是123456
输入错误会提示
输入成功后要求输入新密码且至少为6位数进行旧密码修改
输入成功后会要求再输入一次密码
输入成功以后返回原界面登录面,恭喜你基本功能基本实现!!!
主要代码实现:
String oldPassword = JOptionPane.showInputDialog(this, "请输入旧密码:");
if (oldPassword != null && oldPassword.equals(password)) {
String newPassword = null;
while (newPassword == null) {
newPassword = JOptionPane.showInputDialog(this, "请输入新密码 (至少6位数):");
if (newPassword != null) {
if (newPassword.length() < 6) {
JOptionPane.showMessageDialog(this, "密码太短");
newPassword = null;
} else if (newPassword.equals(oldPassword)) {
JOptionPane.showMessageDialog(this, "新密码不能和旧密码相同");
newPassword = null;
} else {
String confirmPassword = JOptionPane.showInputDialog(this, "请再次确认你的密码");
if (confirmPassword != null && confirmPassword.equals(newPassword)) {
password = newPassword;
JOptionPane.showMessageDialog(this, "密码修改成功.");
dispose(); // 关闭当前窗口
// 将新密码传递给新窗口
LoginFrame newWindow = new LoginFrame(newPassword);
LoginFrame newWindow1 = new LoginFrame();
newWindow1.setVisible(true);
} else {
OptionPane.showMessageDialog(this, "新密码不匹配.");
}
}
}
}
} else {
JOptionPane.showMessageDialog(this, "密码错误");
}
(3) 亮点功能-后台数据库记录
通过对柜员机系统程序登录功能退出操作,将会导入到后台数据库,以便对数据历史查询与检验,给老板实时在线监督与勘察。
🍁🍁🍁 完整项目代码
💖💖💖感谢阅读
💖💖💖感谢阅读
💖💖💖感谢阅读
💖💖💖 写作不易,如果您觉得写的不错,欢迎给博主点赞、收藏、评论、收藏来一波~让博主更有动力吧