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 user) {
    7.
    for (int i = 0; i < user.size(); i++) {
    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+左键