ATM
2022年4月7日星期四
功能分析:
1、系统准备、首页设计
(1) 系统准备:
① 每个账户信息都是一个对象,提供账户类(包含卡号、姓名、密码、余额、取现额度)
② 定义一个Arraylist集合,存储账户对象的信息
③ 首页只需包含:登录和注册
2、用户开户功能
(1) 开户功能:本质上是在几何容器中存入一个账户对象,应该定义一个方法,并传入账户集合。
(2) 创建一个账户对象,封装信息(姓名、卡号)
(3) 键盘对路姓名、密码、确认密码(确保两次密码一致)
(4) 生成账户卡号,卡号必须是由系统自动生成8位数字(必须保证卡号唯一)
3、用户登录功能
(1) 登录功能定义为一个方法,传入账户集合
(2) 让用户输入卡号,根据卡号查询账户对象
(3) 如果没有找到对象,说明卡号不存在,继续输入卡号
(4) 如果找到账户对象,说明卡号存在,继续输入密码
(5) 如果密码不正确,提示继续输入密码
(6) 如果密码正确,则登录成功。
4、用户操作页设计、查询账户、退出账户功能
5、用户存款功能
6、用户取款功能
7、用户转账功能
(1) 判断是否有2个以上的账户
(2) 判断自己账户是否有钱
(3) 判断对方账户是否存在
(4) 认证对方户主的姓氏
(5) 修改自己账户金额,到对方账户对象中去。
8、用户密码修改、销户功能
难点:
死循环的快捷键:将选中的部分,按ctrl+alt+t,选择while
生成方法的快捷键:先写出方法名,然后将形参写进去,然后按住alt+回车
注释的快捷键:/+回车
在方法的上面一般写上方法的目的、和它的形参是什么
为账户设置一个随机的8位,且不重复的密码:
一般具有独立功能的,要单独设置方法。
1. //1、生成一个随机的8位账号
2. String cardId=””;
3. for (int i = 0; i < 8; i++) {
4. cardId+=r.nextInt(10);
5. }
判断与之前的账号是否重复【在账户集合中查找账户】,也要设置一个单独的方法。这里设置的方法返回类型是account。
1. account acc=getAccountByCardId(cardId,user);
2. if(acc==null)
3. {
4. return cardId;
5. }
6. rivate static account getAccountByCardId(String cardId, ArrayList
7.
8. account acc=user.get(i);
9. if(cardId.equals(acc.getNumber()))
10. {
11. return acc;
12. }
13. }
14. return null**;
15. } //如果返回的是null代表现在生成的随机账号不重复,则if条件满足,跳出循环。如果返回了一个重复账号,则if条件不满足,继续循环
快速跳转方法:ctrl+左键
