Java阶段学习实践项目一

  • Post author:
  • Post category:java


完成如下系统的开发

记录一下我在写具有如下,功能的代码时的小问题

一、先设计登录界面,

软件启动时,首先进入登录界面进行注册和登录功能。

(是否有账号的实现):

1、用User类存储用户,包含账号名和密码

2、利用Arraylist存储用户对象,

(检查账号密码输入是否正确的方法)

1、账号长度(在3-15字符串之间,错误提示),

2、密码():(在6-22字符之间,错误提示)

(一)、用户登录

1、进入登陆界面后,用户输入账户和密码,

2、根据账户和密码去存储用户信息的地方查找,若存在用户,对比用户名和密码,不相同则输出提示!

3、用户不存在则需要去注册

4、密码不相同可以则有5次机会!(

bug:第一次错误:不管是不是同一个账号。输入密码的机会就会减少

解决方法:

(1.)输入密码前判断账号之前有没有输入,

(2.)需要给每一个账号存放一个记录之前在登录时输入的次数(),输入一次减一次

(3.)根据每个账号中的输入次数,如果次数为0,程序结束

(二)、用户注册

1、根据提示输入账号长度(在3-15字符串之间,错误提示),和密码:(在6-22字符之间,错误提示)

2、账号需要去查找数据中是否有相同的账号,有的话不能注册,没有可以注册

3、注册完毕后登录

以上只是我在设计该小项目时详细做的登录操作,接下来就是自己在写的过程中,自己没注意到的点。


我在这里面用数组和Arrarylist进行数据的存储,我写了一个方法,大致内容时我要通过这个方法去查找我在数组中存储的对象,找到对象里存储的用户ID。


错误情况:


当时我用下面的代码进行对我输入的ID值进行查找,然后确定这个对象在Arraylist中的索引值,也就是记录了temp。在后面的功能我可以用到这个索引值去调用我输入的这个Id对应的对象的其他属性(我经常这么干!),好接下来,我其实想让它在循环结束的时候,如果没找到对应的ID的话,抛出一个异常,然后告诉我无我输入的id号!



这下面的代码的问题就是:它没有完全遍历,如果第一遍就执行else里的代码块,



throw之后循环就不再执行了。




(这就是我的脑瘫时刻!!!)

//介绍一下,这里我用pro是我创建的Arraylist对象的引用(Arrarylist的对象名),projectID是我当时在接受键盘输入时的一个变量,是我从键盘输入的数据。
int temp = 0;
for (int i = 0; i < pro.size(); i++) {
    //如果getProId == projiectID,停止这个循环,注:我查找的这个Id是唯一的并不重复
    if (pro.get(i).getProId() == projectID) {
        temp = i ;
        break;
    } else {
        throw new TeamException("无该项目id,请输入正确的项目id!");
    }
}


修改

我做了如下修改:

利用一个bool值来存储信息,然后判断这个bool值有没有改变,没有改变我就抛出异常。

boolean flagPID = false;
for (int i = 0; i < pro.size(); i++) {
    if (pro.get(i).getProId() == projectID) {
        flagPID = false;
        temp = i;
        break;
    }
    flagPID = true;
}
if (flagPID) {
    throw new TeamException("无该项目id,请输入正确的项目id!");
}



版权声明:本文为qq_52126327原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。