本周学习大纲
1.ATM项目
2.数据库
本周学习日历
日历 | 学习内容 | 时长(h) | 备注 |
---|---|---|---|
星期一 | 数据库函数部分 | 0.5 | |
星期二 | 数据库函数部分 | 1 | |
星期三 | 巧夺天工培训 | 4 | |
星期四 | 比赛内容学习 | 2 | |
星期五 | Java继承复习 | 1 | |
星期六 | JavaATM项目 | 4 | |
星期天 | 无 | 0 |
完成状态:
基本完成。
学习反思
很忙但是没忙出什么。感觉作业和班级事务让我充实的过了一周,然后就是晚上的算法刷题,所以没拿出什么时间学习数据库和Java。国庆后调整好时间学习。
学习笔记
ATM搭建
ATM系统的架构
- 定义了一个账户类Account,定义系统关心的账户信息。
- 定义了一个ATM类,代表ATM系统,负责处理账户相关的业务需求
- 定义了一个Test类,负责测试系统:创建ATM对象代表ATM系统并启动
ATM类中使用什么来存储系统全部用户的账户信息的?
1
ArrayList<Account> accounts = new ArrayList<>();
用户开户功能
- 就是新增一个用户,也就是往系统的账户集合中添加一个账户对象。
账户的要求
- 用户信息包含:姓名、性别、密码、限额、卡号。
- 注意:卡号由系统生成,要求是8位的数字组成的(且卡号不能重复)
开户功能的实现需要哪几步操作?
- 定义一个开户方法:createAccount.
- 在方法里创建一个Account账户对象,负责封装用户的账户信息(姓名、性别、密码、卡号等等。)
- 卡号由系统自动生成,要求是8位的数字组成的,且卡号不能重复。
- 把账户对象存入到账户集合中去。
- 提示开户成功。
账户的新卡号是如何生成的?
- 定义了一个方法:createCardId(),用来返回一个不重复的新卡号。
- 方法里,使用循环生成了8个随机的数字连起来作为卡号。
- 接着判断该卡号是否与其他账户的卡号重复。
- 根据该卡号去账户集合中查询账户对象,如果没有查询到账户对象,该卡号不重复,即可返回。
- 如果查询到了账户对象,则使用循环重复以上(2、3、4)步操作。
登录功能如何实现的?
- 设计一个登录方法:login,负责完成用户的登录。
- 方法里:如果系统无任何账户对象,直接结束登录操作
- 有账户对象,则让用户输入卡号,根据卡号去账户集合中查询账户对象。
- 如果没有找到账户对象,说明登录卡号不存在,提示继续输入卡号。
- 如果找到了账户对象,说明卡号存在,继续输入密码。
- 如果密码不正确,提示继续输入密码。
- 如果密码也正确,则登陆成功,并给出相应的提示。
用户操作页设计、查询账户、退出账户功能分析
- 用户登录成功后,需要进入用户操作页。
- 查询就是直接展示当前登录成功的用户的账户信息。
- 退出账户就是回到欢迎页面。
用户存款功能
- 就是用户为自己的账户存钱,存钱后更新账户的余额即可。
用户取款功能
- 就是从自己的账户中取钱,取钱的要求:
1.需要先判断账户的余额是否大于>=100元,如果够,让用户输入取款金额。
2.需要判断取款金额是否超过了当次限额,以及余额是否足够。
- 就是从自己的账户中取钱,取钱的要求:
存款、取款是如何实现账户余额的更新的?
- 调用当前账户的setmoney方法完成金额的修改。
用户转账功能
把钱转给别人,转账前需要判断:
1.自己账户是否有钱,系统中是否有其他账户。
2.接下来让用户输入对方卡号,判断对方账户是否存在,账户如果存在,还需要认证对方账户的户主姓氏。
销户操作的基本需求
销户要求:
1.首先要询问用户是否确定要销户,如果不确定,则回到操作界面。
2.如果确定,要判断用户的账户中是否有钱,有则不允许销户,并回到操作界面。
3.如果没钱,则完成销户,并回到欢迎页。
密码修改
要求:
1.需要先认证用户当前的密码
2.认证通过后,需要让用户输入2次新密码。
3.两次密码一样,则更新账户密码,并回到欢迎界面。
下周学习大纲
- 比赛内容
- 数据库
- Java多线程