当前位置: 首页 > news >正文

成都网站定制开发seo培训学校

成都网站定制开发,seo培训学校,成都那家网站做的好,网站改版要重新备案吗文章目录 Java项目实战:手把手开发ATM银行系统(附完整源码)一、系统架构设计1. 三层架构模型2. 核心数据结构 二、核心功能实现1. 开户功能(含唯一卡号生成)2. 登录安全验证3. 存取款业务4. 安全转账实现 三、账户安全…

文章目录

    • Java项目实战:手把手开发ATM银行系统(附完整源码)
      • 一、系统架构设计
        • 1. 三层架构模型
        • 2. 核心数据结构
      • 二、核心功能实现
        • 1. 开户功能(含唯一卡号生成)
        • 2. 登录安全验证
        • 3. 存取款业务
        • 4. 安全转账实现
      • 三、账户安全管理
        • 1. 密码修改流程
        • 2. 销户安全规则
      • 四、项目亮点与优化建议
        • 安全设计亮点:
        • 可扩展功能:
        • 性能优化建议:
      • 五、学习收获总结

Java项目实战:手把手开发ATM银行系统(附完整源码)

本文通过一个完整的ATM系统开发案例,深入讲解Java面向对象编程、集合应用和业务逻辑设计,帮助初学者快速提升项目实战能力

一、系统架构设计

1. 三层架构模型
// 1. 账户实体类(数据层)
public class Account {private String cardId;   // 卡号private String userName; // 用户名private char sex;        // 性别private String passWord; // 密码private double money;    // 余额private double limit;    // 单次取现额度// Getter/Setter方法
}// 2. ATM系统类(业务逻辑层)
public class ATM {private ArrayList<Account> accounts = new ArrayList<>();private Scanner sc = new Scanner(System.in);private Account loginAcc; // 当前登录账户public void start() { /* 系统入口 */ }
}// 3. 测试类(表示层)
public class Test {public static void main(String[] args) {ATM atm = new ATM();atm.start(); // 启动系统}
}
2. 核心数据结构
// 使用ArrayList动态存储账户
private ArrayList<Account> accounts = new ArrayList<>();

二、核心功能实现

1. 开户功能(含唯一卡号生成)
private void createAccount() {Account acc = new Account();// 信息录入(姓名、性别、密码校验)System.out.print("请输入姓名:");acc.setUserName(sc.next());// 性别校验while(true) {System.out.print("请输入性别(男/女):");char sex = sc.next().charAt(0);if(sex == '男' || sex == '女') {acc.setSex(sex);break;}}// 生成唯一卡号(8位数字)acc.setCardId(createCardId());accounts.add(acc);System.out.println("开户成功!卡号:" + acc.getCardId());
}// 唯一卡号生成算法
private String createCardId() {Random r = new Random();while(true) {String cardId = "";for(int i=0; i<8; i++) {cardId += r.nextInt(10);}// 检查卡号唯一性if(getAccountByCardId(cardId) == null) {return cardId;}}
}
2. 登录安全验证
private void login() {if(accounts.isEmpty()) {System.out.println("系统暂无账户!");return;}while(true) {System.out.print("输入卡号:");String cardId = sc.next();Account acc = getAccountByCardId(cardId);if(acc != null) {// 密码尝试次数控制int tryCount = 0;while(tryCount < 3) {System.out.print("输入密码:");String pwd = sc.next();if(acc.getPassWord().equals(pwd)) {loginAcc = acc;showUserCommand(); // 进入操作界面return;}tryCount++;}System.out.println("密码错误次数过多!");return;}}
}
3. 存取款业务
// 存款
private void deposit() {System.out.print("输入存款金额:");double money = sc.nextDouble();loginAcc.setMoney(loginAcc.getMoney() + money);System.out.println("存款成功!余额:" + loginAcc.getMoney());
}// 取款(含风控校验)
private void withdraw() {// 最低余额限制if(loginAcc.getMoney() < 100) {System.out.println("余额不足100元!");return;}while(true) {System.out.print("输入取款金额:");double money = sc.nextDouble();// 双重校验if(money > loginAcc.getLimit()) {System.out.println("超过单笔限额:" + loginAcc.getLimit());} else if(money > loginAcc.getMoney()) {System.out.println("余额不足!");} else {loginAcc.setMoney(loginAcc.getMoney() - money);System.out.println("取款成功!余额:" + loginAcc.getMoney());break;}}
}
4. 安全转账实现
private void transfer() {// 系统账户检查if(accounts.size() < 2) {System.out.println("系统账户不足!");return;}while(true) {System.out.print("输入对方卡号:");String cardId = sc.next();Account targetAcc = getAccountByCardId(cardId);if(targetAcc != null) {// 姓氏验证(安全措施)String maskName = "*" + targetAcc.getUserName().substring(1);System.out.print("请输入【" + maskName + "】的姓氏:");String inputName = sc.next();if(targetAcc.getUserName().startsWith(inputName)) {// 转账金额校验System.out.print("输入转账金额:");double money = sc.nextDouble();if(loginAcc.getMoney() >= money) {// 执行转账loginAcc.setMoney(loginAcc.getMoney() - money);targetAcc.setMoney(targetAcc.getMoney() + money);System.out.println("转账成功!");return;} else {System.out.println("余额不足!");}}}}
}

三、账户安全管理

1. 密码修改流程
private void updatePassword() {// 原密码验证System.out.print("输入当前密码:");String oldPwd = sc.next();if(!loginAcc.getPassWord().equals(oldPwd)) {System.out.println("密码错误!");return;}// 新密码二次确认while(true) {System.out.print("输入新密码:");String newPwd = sc.next();System.out.print("确认新密码:");String confirmPwd = sc.next();if(newPwd.equals(confirmPwd)) {loginAcc.setPassWord(newPwd);System.out.println("密码修改成功!");return;}System.out.println("两次输入不一致!");}
}
2. 销户安全规则
private void closeAccount() {// 二次确认System.out.print("确认销户?(y/n):");String confirm = sc.next();if("y".equalsIgnoreCase(confirm)) {// 余额检查if(loginAcc.getMoney() > 0) {System.out.println("账户仍有余额,无法销户!");return;}accounts.remove(loginAcc);System.out.println("销户成功!");}
}

四、项目亮点与优化建议

安全设计亮点:
  1. 卡号唯一性校验:8位随机数+重复检测
  2. 敏感操作验证:转账时的姓氏确认
  3. 密码安全策略:修改密码需原密码+二次确认
  4. 余额保护机制:销户前余额强制清零
可扩展功能:
基础功能
交易记录
利息计算
多币种支持
短信通知
性能优化建议:
  1. 使用HashMap优化账户查找:HashMap<String, Account>
  2. 添加交易流水记录功能
  3. 实现数据持久化(文件存储)
  4. 增加每日交易限额控制

源码获取:ATM系统完整项目代码

五、学习收获总结

通过本项目,开发者将掌握:

  1. 面向对象设计能力

    • 实体类的合理封装
    • 业务逻辑分层实现
  2. 集合框架实战应用

    • ArrayList的CRUD操作
    • 集合元素的遍历与查找
  3. 业务逻辑设计思维

    • 金融级安全校验
    • 异常流程处理
    • 用户交互设计
  4. 项目架构能力

    • 三层架构实现
    • 高内聚低耦合设计

项目总结:本ATM系统涵盖了Java核心技术的实际应用,是初学者进阶的绝佳练手项目。通过实现金融级业务逻辑,开发者能够深入理解面向对象设计思想,为后续企业级开发奠定坚实基础。

http://www.cadmedia.cn/news/5307.html

相关文章:

  • 网络维护工作怎么样网站seo搜索
  • 成都网站建设龙兵科技百度 个人中心首页
  • 广州正规网站建设有哪些网站优化seo推广服务
  • 网站建设合作协议文本soe搜索优化
  • 经营范围 网站建设最新足球消息
  • 北京公司网站优化优化大师如何删掉多余的学生
  • 免费做图片链接网站网络营销的收获与体会
  • 营销培训内容有哪些网站首页seo关键词布局
  • 网站建设下什么科目电商怎么做?如何从零开始学做电商赚钱
  • 中国建设银行陕西分行官方网站山东省住房和城乡建设厅
  • 集约化网站群建设情况白帽seo
  • 设计非常漂亮的网站seo网络营销技巧
  • 中国建设银行手机网站seo是什么简称
  • 如何建立网站链接网站建设推广
  • 相机网站建设规划书房产网站建设
  • 宁波专业的网站搭建公司厦门最好的seo公司
  • 查网站有没有做推广求老哥给几个靠谱的网站
  • 艺友网站建设网络营销的分类
  • 网站解决方案深圳网站建设资讯
  • 农业建设信息网站培训机构招生方案范文
  • 国美网站建设的特点深圳网络推广团队
  • 在线设计logo字体深圳网络推广优化
  • 展馆设计费取费标准一览表广州seo优化外包公司
  • 化学课件百家港 seo服务
  • 重庆塔吊证查询网站360推广和百度推广哪个好
  • php微信公众号开发搜索优化软件
  • 外包公司软件开发怎么样seo网站推广企业
  • 网站建设丂金手指科杰中国第三波疫情将在9月份
  • 金阳龙泉苑网站建设广告推广app
  • 做果蔬行业的网站商品推广