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

news2024/11/30 8:37:14

项目介绍与功能演示

 黑马银行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.coloradmin.cn/o/3118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【面试题】移除数组删除重复项合并数组

1️⃣ 原地移除数组中所有的元素val 【OJ链接】 2️⃣ 删除排序数组中的重复项 【OJ链接】 3️⃣ 合并两个有序数组 【OJ链接】 1️⃣ 原地移除数组中所有的元素val 题目要求是要在数组中&#xff0c;把指定的数字全部去除&#xff0c;题目中也是强调了空间复杂度要求为O(1)&am…

项目经理要“谋定而后动,知止而有得,万事皆有法,不可乱也”

出自《大学》&#xff0c;“谋定而后动&#xff0c;知止而有得”的含义为谋划准确周到而后行动&#xff0c;知道目的地&#xff08;合适的时机收手&#xff09;才能够有所收获。 谋定而后动是告诉我们做任何事一定要进行谋划部署&#xff0c;做好准备&#xff0c;我们才能开始行…

数据结构作业:时间复杂度和二叉树

计算时间复杂度&#xff1a; int x0,i,j; 1 for(i1;i<n;i) n { for(j1;j<2*i;j) 2(n-1) { x; 2(n-1)*n } } 2(n-1)*n2n^2-2n 修改后的运行次数函数中&#xff0c;只保留最高阶项。 所以时间复杂度为 &#xff1a;…

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

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

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

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

MSDC 4.3 接口规范(27)

MSDC 4.3 接口规范&#xff08;27&#xff09;7.4.4 代码7.4.5 更新组呼业务7.4.5.1 接口函数7.4.5.2 先决条件7.4.5.3 说明7.4.5.4 调用流程7.4.6 其他信息通知7.4.6.1 组呼服务停止7.4.6.1.1 接口函数7.4.6.1.2 先决条件7.4.6.1.3 说明7.4.6.1.4 调用流程7.4.6.2 SAI 列表更新…

Nginx禁止文件下载防止服务器被恶意扫描

比如将网站数据库导出到站点根目录进行备份&#xff0c;很有可能也会被别人下载&#xff0c;从而导致数据丢失的风险。以下规则可以防止一些常规的文件被下载&#xff0c;可根据实际情况增减。我们可以通过以下俩种方法来防止服务器被恶意扫描&#xff0c;其中以彼之道&#xf…

ffmpeg解复用FLV文件

该博文是基于&#xff1a; ffmpeg&#xff1a;V 5.1.2 FLV格式是H2.64视频和aac音频复用得到的格式&#xff0c;我们所说的FLV解复用就是将FLV格式的数据的H2.64视频帧和aac音频帧分离。 分离完成后&#xff0c;音频是纯数据无法播放&#xff0c;需要添加ADTS头&#xff0c;视频…

浅谈基于以太网的煤矿电力监控系统的设计与应用

王兰 安科瑞电气股份有限公司 上海嘉定 201801 摘 要&#xff1a;针对传统煤矿电力监控系统通讯网络性能较差、无法实现准确故障定位及报警、不具备数据交互功能等问题&#xff0c;结合分布式网络及GPS授时技术设计了一套基于工业以太网及RS485总线架构的煤矿电力监控系…

第二十三课.扩散模型

目录概述前向过程逆向过程DDPM概述 近几年扩散模型不断涌现&#xff0c;但都来源于一个基础模型&#xff1a;DDPM&#xff08;Denoising Diffusion Probabilistic Model&#xff09;。扩散模型本质是生成模型&#xff0c;过去我们常用的生成模型包括GAN和VAE&#xff0c;利用随…

【Linux】冯诺依曼体系结构

目录&#x1f308;前言&#x1f337;1、冯诺依曼体系结构&#x1f338;2、操作系统(Operator System)&#x1f339;2.1、概念&#x1f340;2.2、如何理解管理&#x1f341;3、进程&#x1f342;3.1、概念&#x1f308;前言 本篇文章进行操作系统中进程的学习&#xff01;&…

全新一代智慧园区数字孪生解决方案,为园区运营商和集成商赋能!

对于园区运营方而言&#xff0c;园区既要满足使用者的需求&#xff0c;还要面对后期运营过程中大量、繁琐的维护管理工作&#xff0c;同时还要兼顾园区运维效率和管理成本。 随着5G、物联网、云计算、人工智能、大数据等技术的快速发展和应用&#xff0c;园区运维智能化升级已…

自动控制原理 - 2 控制系统的数学模型 节2.7-2.10

2 控制系统的数学模型2.7 结构图的等效变换准则2.8 结构图等效变换的应用2.9 信号流图2.10 梅逊公式 2 控制系统的数学模型 2.7 结构图的等效变换准则 结构图没有直接给出系统输入与输出之间的定量关系。如何得到系统输入输出之间的传递函数&#xff0c;从而便于进一步分析系…

质量管理PPAP说明

PPAP是英文Production Part Approval Process的缩写&#xff0c;中文翻译为生产件批准程序。PPAP是TS16949质量管理体系五大工具之一&#xff0c;用于汽车整车或零部件生产过程的质量管控。 各种质量管理类书籍关于PPAP的介绍有很多&#xff0c;但什么情况下必须提交PPAP&…

Spring Boot + Docker实战

文章目录1.编写DockerFile2.构建镜像3.查看编译的镜像4.启动镜像测试5.创建私有仓库5.1查询registry镜像5.2加载镜像5.3运行镜像容器5.4检查容器6.搭建Registry web6.1首先搜索并拉取镜像6.2运行一个registry web容器6.3验证7.推送镜像到私有仓库8.服务器拉取镜像部署8.1 资源限…

在线电子书阅读小程序,微信小程序电子书阅读,微信小程序小说阅读器毕业设计作品

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于微信小程序在线电子书阅读系统&#xff0c;前台用户使用小程序&#xff0c;后台管理使用基JavaMySql技术&#xff1b;通过后台录入电子书信息、书目录信息&#xff0c;用户通过小程序登录&#xff0c;查…

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…

【Android】性能监控之帧率检测Tinydancer

git地址 使用 增加依赖 dependencies {debugCompile "com.github.brianPlummer:tinydancer:0.1.2"releaseCompile "com.github.brianPlummer:tinydancer-noop:0.1.2"testCompile "com.github.brianPlummer:tinydancer-noop:0.1.2"}在Applicati…

strcat · strstr | 使用场景与模拟实现

啊我摔倒了..有没有人扶我起来学习.... &#x1f471;个人主页&#xff1a;《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ &#x1f492;个人社区&#xff1a;《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…

java计算机毕业设计家教管理系统(附源码、数据库)

java计算机毕业设计家教管理系统&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技…