在完成个人项目的建设后,我和搭档互相交换了代码进行分析。在阅读过程中,看到了她代码的优势,也同时看到了自己代码的不足。再次写下这一次的项目分析;
一、题目要求
二、测试与分析
功能完成情况:
在输入正确的账户名以及密码后,能够获得当前用户年级信息以及后续操作步骤,引导功能完善;
在输入“-1”进行退出当前用户后,可以重新进行登录操作,并且对输入错误的信息操作能够有所提示,但美中不足的一点是在退出登录后并没有过多的提示语句,也没有下一步的引导信息;
并且发现了一个bug:
搭档在读取账号密码时采取使用两个String来储存,但是没有对登陆时仅输入一个字符串的情况进行处理,导致最开始的一个错误信息占据一个string,后续在输入的正确信息也只能读取到账号,导致后续再进行输入时会造成读取的信息错误,无法登录的情况;
接下来输入想要生成的题目数量,在输入超过范围的数量时,也会有所提示;
生成的题目符合当前难度水准,且对于不符合符号要求或数量要求的题目会进行剔除
进行切换难度操作也会有反馈,输入错误时会提示;
搭档使用了try{}catch{}语句结构能够在出现问题时将问题抛出;之后生成的各种难度题目也同样符合要求;
代码分析:
创建了四个类,分别进行完成不同的操作;
1.User类完成用户的函数,以及定义了user的账号,密码以及年纪情况;
makeFile()函数:
makefile函数完成了用户文件夹的创建,用来后续保存出的题目,函数思路为根据path路径找到文件夹,如果没有则创建,.txt文件命名为通过SimpleDateFormat类函数获得的时间进行命名;如果出现异常,则通过catch{}语句进行抛出;
makepape函数:
makepapaer函数通过获得当前用户的年级情况,调用不同的出题函数。完成出题的目的;
2.Operations类则主要用于接受输入的信息进行处理以及存储了用户信息;
设计了log登陆函数,通过调用getPassword()函数获取返回相应的用户信息,如果错误给出提示;
prepare()函数则实现了对输入的信息进行处理,接受输入的题目数量,接受切换难度类型语句,并对于错误输入进行提示;
3.PaperMaker类主要实现了出题功能以及题目的写入和检查功能;
题目写入函数witrIn()调用了FileWriter类函数 ;
检查函数check()定义boolean变量进行指示,对读取文件的每一条进行检查,如果有重复则改变变量值,输出“重复”;
出题函数通过获得参数User user,Int number来进行题目的编排;
4.Main类
主函数,通过两个String类变量存储输入的用户信息,此处有bug,前面已经说明,不在赘述;
优点分析:
1.结构清晰:代码按照功能设计了4个类,每个类分别完成一个功能,每个类有函数处理这一个功能的不同问题,易读易懂;
2.异常处理:
善用try{}catch{}语句,在一些容易出现问题的地方选用这种结构,使系统能够做出相应的处理;
3.交互性较好:
有多处提示语句,能够引导用户完成,对于错误输入也能够有抽屉式,引导性强;
缺点分析:
1.缺少必要的javaDoc和注释:
代码中,应当每一个类和方法都配置对应的Javadoc,增强可读性,使人一目了然。
在函数中,缺少一些必要的注释,对于方法实现的流程理解会有所不便。
2.出现*符号,违反规则:
3.在用户登录过程中,出现bug
标签:语句,中小学生,题目,函数,用户,互评,输入,进行 From: https://www.cnblogs.com/Rizuna/p/17717466.html