黑马程序员Java实战项目--- ATM系统

news/2024/5/20 9:20:24 标签: java, 开发语言, Java项目, ATM系统

项目介绍与功能演示

 黑马银行ATM系统技术选型分析:

 学习本项目,你将至少得到如下收获:

1、优秀的面向对象编程能力。

2、 清晰、缜密的业务、数据分析能力。

3、熟练使用程序流程技术来控制计算机完成自己的想法。

4、形成良好的编码习惯,获得一定的编码经验。提升业务分析和解决问题的能力,让基础知识形成体系结构,为后续Java高级技术的学习做有力的支撑。

系统准备、首页设计

系统准备内容分析:

每个用户的账户信息都是一个对象,需要提供账户类。

需要准备一个容器,用于存储系统全部账户对象信息。

首页只需要包含:登录和注册2个功能。

实现步骤:

定义账户类,用于后期创建账户对象封装用户的账户信息。

账户类中的信息至少需要包含(卡号、姓名、密码、余额、取现额度)

需要准备一个ArrayList的集合,用于存储系统用户的账户对象。

需要展示欢迎页包含2个功能:开户功能、登录账户。

总结:

1、用户的账户信息,系统如何表示的?

定义账户类Account,定义系统关心的属性信息。

2、系统采用什么来存储全部用户的账户对象信息?

ArrayList<Account> accounts = new ArrayList<>();

用户开户功能实现

分析

开户功能其实就是就是往系统的集合容器中存入一个新的账户对象的信息。

开户功能实现步骤

开户应该定义成一个方法,并传入账户集合:

public static void register(ArrayList<Account> accounts

创建一个Account账户类的对象用于封装账户信息(姓名、密码、卡号)

键盘录入姓名、密码、确认密码(需保证两次密码一致)

生成账户卡号,卡号必须由系统自动生成8位数字(必须保证卡号的唯一)

Account账户对象存入到集合accounts中去。

开户功能的实现需要哪几步操作,需要注意什么问题?

开户功能应该独立定义成方法,并传入当前集合对象给该方法。

创建一个Account账户对象,封装账户信息。

录入开户信息(姓名、密码)

卡号要自动生成且唯一

Account对象,存入到集合中去。

用户登录功能实现

分析

登录功能应该定义成一个方法,并传入账户集合:

public static void login(ArrayList<Account> accounts) {

让用户输入卡号,根据卡号去账户集合中查询账户对象。

如果没有找到账户对象,说明登录卡号不存在,提示继续输入卡号。

如果找到了账户对象,说明卡号存在,继续输入密码。

如果密码不正确,提示继续输入密码

如果密码也正确,登陆成功!!

登录功能如何实现的?

根据卡号去账户集合中查询对应的账户对象。

如果找到了账户对象,说明卡号存在,继续输入密码。

如果密码也正确,则登录成功。

用户操作页设计、查询账户、退出账户功能

用户操作页设计、查询账户、退出账户功能分析

用户登录成功后,需要进入用户操作页。

查询就是直接展示当前登录成功的账户对象的信息。

退出账户是需要回到首页的。

用户存款 

存款分析

存款就是拿到当前账户对象。

然后让用户输入存款的金额。

调用账户对象的setMoney方法将账户余额修改成存钱后的余额。

存钱后需要查询一下账户信息,确认是否存钱成功了!

取款功能

取款分析

取款需要先判断账户是否有钱。

有钱则拿到自己账户对象。

然后让用户输入取款金额

判断取款金额是否超过了当次限额,以及余额是否足够

满足要求则调用账户对象的setMoney方法完成金额的修改。

用户转账功能

分析

转账功能需要判断系统中是否有2个账户对象及以上。

同时还要判断自己账户是否有钱。

接下来需要输入对方卡号,判断对方账户是否存在。

对方账户存在还需要认证对方户主的姓氏。

满足要求则可以把自己账户对象的金额修改到对方账户对象中去。

用户登录后:密码修改、销户功能实现

分析

修改密码就是把当前对象的密码属性使用set方法进行更新。

销户是从集合对象中删除当前对象,并回到首页。

 


http://www.niftyadmin.cn/n/3170.html

相关文章

Servlet生命周期-9

目录 1、初始化阶段 2、运行时阶段 3、销毁阶段 4、Servlet 生命周期执行流程 5、示例 Servlet 的生命周期就是 Servlet 从创建到销毁的过程。Servlet 的生命周期由 Servlet 容器管理&#xff0c;主要分为以下 3 个阶段。 初始化阶段运行时阶段销毁阶段在 jakarta.servle…

【项目】若依框架如何实现批量导入,并解析出表中内容返回给前端? - poi依赖

文章目录实现效果&#xff1a;具体实现步骤&#xff1a;扩展实例内容&#xff1a;poi工具包ExcelHandlerAdapter接口ExcelUtil.java代码controllerserviceserviceImplmapper.javamapper.xmlTnProductProperty.java实现效果&#xff1a; 点击“导入excl”按钮 --> 弹出“文件…

武汉某厂前端中高级面试题一面

目录标题 1 自我介绍2 vue组件通信怎么使用双向数据流通信,尽可能不用emit把方法暴露出去3 vue父子组件v-model传值4 keepalive 有关的生命周期5 keepalive有几个属性 作用是什么6 怎么销毁keepalive7 webpack对静态资源的处理8 webpack的属性有哪些,有什么作用9 webpack中lo…

CY3-peg-海藻酸钠|海藻酸钠-荧光染料CY3|alginate-Cyanine3

CY3-peg-海藻酸钠|海藻酸钠-荧光染料CY3|alginate-Cyanine3 FITC/Rhodamine/TRITC/Comarin/Bodipy/ICG/CY3/CY3.5/CY5/CY5.5/CY7/CY7.5标记海藻酸钠 海藻酸钠的结构海藻酸酸是一种线性的阴离子多糖&#xff0c;由β-D-甘露糖醛酸&#xff08;M&#xff09;和α-L-葡糖醛酸&am…

EXCEL表格-批量去除百分号%的三种方案

❤关注我&#xff0c;不迷路❤ 点击进入EXCEL综合应用场景专栏 在日常生活中&#xff0c;会经常遇到EXCEL表格中有百分号的场景&#xff0c;面对批量去除百分号%的需求本文分享三种方式进行去除&#xff0c;分别利用格式设置法、函数法、替换法进行解决&#xff0c;使用不同的…

老生常谈的商城系统(Asp.Net+uniapp)

真正的大师,永远都怀着一颗学徒的心&#xff01; 最近几天合肥是真热 这时候就应该宅在家里 吃着西瓜 啃着鸭脖 喝着啤酒 刷着剧 想想也太美好了吧 哈哈 我得醒醒 写完这篇推荐 吃吃喝喝去了 一、项目简介 今天推荐一款商城系统&#xff0c;虽然比较老生常谈了&#xff0…

发布宝贝时发货时间大于48小时发货怎么设置?

近日&#xff0c;有几位店主向我们咨询了一个问题&#xff1a;为什么别人的商品很多都是大于48小时发货的&#xff0c;我复制上传的却不是大于48小时发货的&#xff0c;应该怎么设置&#xff1f; 对于这几位店主的问题&#xff0c;共有三种方法可以解决&#xff1a;1、在大淘营…

2022-2028全球植物抗性兴奋剂行业调研及趋势分析报告

据恒州诚思调研统计&#xff0c;2021年全球植物抗性兴奋剂市场规模约 亿元&#xff0c;2017-2021年年复合增长率CAGR约为%&#xff0c;预计未来将持续保持平稳增长的态势&#xff0c;到2028年市场规模将接近 亿元&#xff0c;未来六年CAGR为 %。 本文调研和分析全球植物抗性兴奋…