大概一周的学习,坚持在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的全部学习!期待我下一次来还愿!加油!加油!加油!