【日记】10月份完成java基础学习的小日记,正式迈入这个领域

大概一周的学习,坚持在b站上看完100集的java基础学习,以及一些案例都自己写一遍。从刚开始写的第一个HelloWorld到昨天自己独立完成的ATM项目,感觉很让人意外,我觉得自己选择这条路还是比较适合自己的。早上八点到教室看课写代码晚上七点回去吃饭。每天真的很充实,我觉得还不够,其实有的时候我也会偷懒,会看会手机,什么的。看着同学都回去过中秋,我挺想休息的,我希望今天的这个小日记,可以告诉自己,我的选择没有错,我的坚持给了我回报。昨天晚上测试ATM项目完成的时候,真的那种成就感油然而生,我很爱程序开发,我知道我这才仅仅入个门,以后会更辛苦,也许半年后我依然坚持的学完,看到今天的自己,就想起昨晚测试完项目的我,会想起我写的第一个HelloWold一样那样不一样,然后半年后的我再次写下第二个豪言壮志。

这段时间的学习,总结:编程习惯很重要,规范的格式,清晰的逻辑思路,特别是开始编程前要先把思路写下来,多学会把一个大的功能,拆成几个小功能来写,再去调用。会一目了然,让人看着舒服,多去用一些变量来代替数据,这样会让自己的程序看起来整洁明白。

附上一个截图吧,也是一个纪念
public class gn {
    //无参构造器
    public gn() {
    }

    //拿表


    //生成一个集合
    private ArrayList<user> users = new ArrayList<>();

    //扫描器
    Scanner sc = new Scanner(System.in);

    //随机生成
    Random ra = new Random();


    //功能1:开户
    public void kaihu() {
        user us = new user();
        System.out.print("请您输入你的名字:");
        String name = sc.next();
        us.setName(name);

        System.out.print("请输入您的性别:");
        String sex = sc.next();
        while (true) {

            if (sex.equals("男") || sex.equals("女")) {
                us.setSex(sex);
                break;
            } else {
                System.out.print("输入类型有误,请重新输入:");
                sex = sc.next();
            }
        }
        //做一个两次确认密码的校验
        while (true) {
            System.out.print("请输入您的密码:");
            String mm = sc.next();
            System.out.print("请再次输入密码:");
            String mm1 = sc.next();
            if (mm.equals(mm1)) {
                us.setMm(mm);
                System.out.println("密码注册成功");
                break;
            } else {
                System.out.println("两次密码不一样,请重新输入");
            }
        }


        System.out.print("请输入您每次提现额度上限:");
        int moneyless = sc.nextInt();
        us.setMoneyless(moneyless);

        //以上是固定数据,剩下余额要在存储功能里实现,账号在下面的功能里随机生成6位数

        int zh = ra.nextInt(1000000);
        us.setZh(zh);
        System.out.println("恭喜您," + name + (sex.equals("男") ? "先生" : "女士") + ",您开户成功,您的卡号是:" + zh + ",请您妥善保管好您的卡号。");

        //封装好的数据都存入集合里边
        users.add(us);
    }


    //功能2:登录界面-
    public void dl() {
        //先获取扫描器上的数据
        System.out.print("账号:");
        int zh = sc.nextInt();
        System.out.print("密码:");
        String mm = sc.next();

        //遍历数组,进入系统
        int i = 0;
        while (i < users.size()) {
            user us = users.get(i);
            //判断这个地方的账号密码是否一样

            if (us.getZh() == zh && (us.getMm()).equals(mm) == true) {
                System.out.println("恭喜您," + us.getName() + ((us.getSex()).equals("男") ? "先生" : "女士") + ",您已进入系统。");
                System.out.println("---------------------------------------------------------------------");


                //从这里开始进入个人的操作界面

                my(us);

            }
            i++;
        }

        if (users.get(i - 1).getZh() != zh || (users.get(i - 1).getMm()).equals(mm) != true) {
            System.out.println("登陆失败,请查看您的账号密码是否正确~");
        }


    }


    //功能3:个人界面
    public void my(user us) {
        while (true) {
            System.out.println("------尊敬的" + us.getName() + ((us.getSex()).equals("男") ? "先生" : "女士") + ",您可以办理如下业务------");

            System.out.println("1.查询账户");
            System.out.println("2.存款");
            System.out.println("3.取款");
            System.out.println("4.转账");
            System.out.println("5.修改密码");
            System.out.println("6.退出");
            System.out.println("7.注销账户");
            System.out.print("请选择:");
            int id = sc.nextInt();
            switch (id) {
                case 1:
                    System.out.println("-----------------------------");
                    System.out.println("卡号:" + us.getZh());
                    System.out.println("户主:" + us.getName());
                    System.out.println("性别:" + us.getSex());
                    System.out.println("余额:" + us.getMoney());
                    System.out.println("限额:" + us.getMoneyless());
                    break;
                case 2:
                    System.out.print("请输入您的存款金额:");
                    int num1 = us.getMoney();  //自已的余额
                    int num2 = sc.nextInt();  //存入的钱
                    us.setMoney(num1 + num2);
                    System.out.println("存款成功!");
                    break;
                case 3:

                    num1 = us.getMoney();
                    while (true) {
                        System.out.print("请输入您的取钱额度:");
                        int num3 = sc.nextInt();  //取钱额度

                        //做一个判断,判断钱够不够,且没超过限额

                        if (num3 <= num1 && num3 <= us.getMoneyless()) {
                            System.out.println("恭喜您取钱成功!");
                            num1 -= num3;
                            us.setMoney(num1);
                            break;
                        } else if (num3 <= num1 && num3 > us.getMoneyless()) {
                            System.out.println("单笔资金流动限额了");
                        } else {
                            System.out.println("余额不足");
                        }
                    }

                    break;
                case 4:
                    System.out.print("请输入对方账户的卡号:");
                    int kh = sc.nextInt();
                    zz(kh, us);
                    break;
                case 5:
                    xgmm(us);
                    break;
                case 6:
                    return;

                case 7:
                    zxzh(us);
                    return;
                default:
                    System.out.println("输入错误,请重新输入");
                    break;



            }
        }
    }

    //功能4:转账(入参是,收钱的账号,和我个人的用户)
    public void zz(int kh, user us) {
        //遍历集合
        int i = 0;
        while (i < users.size()) {
            if (users.get(i).getZh() == kh) {
                break;
            }
            i++;
        }
        //判断一下现在的i ,是自动结束的,还是校准后拿到的
        if (users.get(i).getZh() != kh) {
            System.out.println("没有该用户");
            return;
        }
//        //再次校准,目标账号的姓氏是否正确
//        String name = users.get(i).getName();
//        while (true) {
//            String n = name.replace(name.charAt(0),'*');
//            System.out.print("请您输入"+n+"的姓氏:");
//            String name1 = sc.next();
//            if (name1.equals(name.charAt(0)) == true){
//                break;
//            }else{
//                System.out.println("输入错误请重新输入");
//            }
//        }

        //确认好有该用户后
        while (true) {
            System.out.print("请输入转账金额:");
            int money = sc.nextInt();
            //做一个判断,赚钱成功需要满足,用户自己不限额,且余额充足
            if (money <= us.getMoney() && money <= us.getMoneyless()) {
                us.setMoney(us.getMoney() - money);
                users.get(i).setMoney(users.get(i).getMoney() + money);
                System.out.println("转账成功");
                break;
            } else if (money <= us.getMoney() && money > us.getMoneyless()) {
                System.out.println("转账失败,限额了");
            } else {
                System.out.println("余额不足");
            }
        }


    }

    //功能5 :修改密码
    public void xgmm(user us) {
        System.out.print("请输入您的密码:");
        String mm = sc.next();
        //判断输入的密码是否正确,如果不正确不让更改,正确则继续
        if (us.getMm().equals(mm) == true) {
            System.out.print("请输入新密码:");
            String mm1 = sc.next();
            us.setMm(mm1);
            System.out.println("修改成功!");
        } else {
            System.out.println("密码错误!");
            return;
        }

    }


    //功能6:注销账户
    public void zxzh(user us) {
        //我得先判断里面还有没有钱
        if (us.getMoney() == 0) {
            //遍历集合
            for (int i = 0; i < users.size(); i++) {
                if (users.get(i) == us) {
                    users.remove(i);
                    System.out.println("注销成功!");
                    return;
                }
            }
        }else {
            System.out.println("还有余额,不可以注销");
            return;
        }

    }




}

----------------------------------------------------------------------------------------------------------------------------

这是主要功能,还有对象和测试类就不放了。

我觉得我英语也不好,哈哈哈哈哈哈取名字好多都是拼音,其实我很想说,取拼音比英文好用多了。好吧也就是吐槽一下,顺应大流才是重要的,我也在慢慢变好。

这些都是我的问题吧,和一些编程的总结。

我觉得有一句话说的挺好的,是之前在我的一个老师那里他说我的,我觉得我这个人心思太多想得多。"当一天和尚撞一天钟" 我觉得对我来说很受用,其实人有的时候不是所有的事情都想的很明白很透彻。思考多了,反而束缚了自己的双脚。我当一天程序员,就敲一天代码,当一天学生,就认真学习一天。借用王阳明的金句,”知行合一“。要在做中学,写程序也是,光看老师讲不行,要自己动手写,在写代码思考的过程中学习,才可以事半功倍。

定个小目标吧!这个月底前完成整个javase的全部学习!期待我下一次来还愿!加油!加油!加油!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值