Day09-ATM项目
ATM项目
1.系统架构搭建、欢迎页设计
ATM系统的架构
- 定义了一个账户类Account,定义系统关心的账户信息。
- 定义了一个ATM类,代表ATM系统,负责处理账户相关的业务需求。
- 定义了一个Test类,负责测试系统:创建ATM对象代表ATM系统并启动。
ATM类使用ArrayList储存账户信息
1
ArrayList<Account> accounts = new ArrayList<>();
2.开户功能实现
- 开户功能
- 定义一个开户方法:createAccount。
- 在方法里创建一个Account账户对象,负责封装用户的账户信息(姓名、性别、密码、卡号等)。
- 卡号由系统自动随机生成。
- 将对象存入账户集合。
- 提示开户成功。
- 账户新卡号生成方法
- 定义一个生成卡号方法:createCardId(),用来返回一个不重复的卡号。
- 随机生成一个八位数并转化为字符串作为卡号。
- 判断卡号是否与其他账户卡号重复
- 定义一个根据卡号查找账户的函数:getAccountByCardId(String id),用来根据id查找账户。
- 根据生成卡号查找账户,若没查到,说明没有重复账户,生成的卡号可用。
- 若查询到了账户对象,说明卡号出现重复,循环继续生成随机卡号。
3.登录功能实现
- 登录功能
- 设计一个登录方法:login,负责完成用户的登录。
- 若系统里没有账户对象,直接结束登陆操作。
- 有账户对象,则让用户输入卡号,根据卡号去账户集合中查询账户对象。
- 若没找到账户对象,说明输入的卡号不存在,重新输入卡号。
- 若找到账户对象,说明卡号存在,继续输入密码。
- 若密码不正确,提示密码错误,继续输入密码。
- 若密码正确,则提示登陆成功。
4.操作页展示、查询账户、退出账户
- 登陆成功后,进入用户操作页。
- 查询账户,即展示当前登陆成功的用户账户信息。
- 退出账户,回到主页。
5.存款、取款功能实现
存款功能
- 存款后直接更新账户余额。
取款功能
- 从自己的账户中取钱:
①判断是否有余额,如果为0,提示用户存钱。
②判断金额是否为100的整数倍。
③判断当此取款是否超过限额,是否超过余额。
- 从自己的账户中取钱:
存款和取款都是调用.getMoney()和.setMoney实现的
6.转账功能实现
- 转帐前需要判断:
- 系统中是否有其他账户。
- 自己账户中余额是否为0。
- 输入对方卡号,判断该卡号是否存在。
- 对方卡号存在,则认证姓氏。
- 判断输入金额是否超过限额,是否超过余额。
7.销户功能实现
- 销户需求:
- 若账户中有余额,拒绝销户。
- 若没有余额,请用户输入密码,再次询问是否确定销户。
8.用户密码修改
- 修改密码的要求
- 认证用户当前密码。
- 让用户输入2次新密码。
- 两次密码一样,则更新密码并回到主页。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 宫本贩剑的博客!