一、简介
本博客为对陈骏科同学的个人项目的代码评价。
本次的个人项目实现的是中小学自动出题项目代码的编写,采用的是C/S模式。
二、代码分析
优点:
1、从代码的结构上可以看出,采用模块化的方式进行了设计,命名和实际功能相关联,代码的可读性强。
2、编写了注释,且注释简单明了。
3、交互设计做的很棒。提示充满了趣味。
4、可实现的功能通过菜单列了出来,并有着明确的提示,极方便用户的使用
5、在实现了所有功能的基础上,加入了自己的想法,在小学题目的生成时,会通过answer模块计算答案,并输出结果的txt文件,虽然因为时间限制,并没有吧这个功能完善到初中和高中,但依然是一个很好的想法。
但也存在以下的问题:
1、在工程中缺乏readme文档,在我的机子上运行时,因为运行版本不同,排版出现了一定的错误,如下:
在我的电脑上运行的结果,明显看到排版存在错位。
在他本人的电脑上是正常的,并没有错位。
2、输出路径提示不明确
对于输出路径的提示只有一句到文件夹中查收,如果不看源代码,很难找到对应的路径。
3、在测试过程中,发现了存在一些不是很合理的题目的生成
如上,最左边的左括号对应了最右边的右括号,在实际的场景中,这样的括号明显是没有任何意义的,应当去除。
4、设置变量的初始值时不够严谨
在上图中出现了tan90°,明显在数学中是不会出现这样的计算的。
在实际题目中也的确出现了tan90°这个不合理的存在
5、在题目查重检测中,使用的是穷举法,速度会比较慢,如果能使用python自带的hash查找,性能会更好
6、功能实现不够完整
如上图,登录功能实现了,但在登录后没有按要求在第一时间提示**“当前选择为(小学/初中/高中)出题”**。而是在选择默认出题后才提醒。并且**“输入处”**打成了**“输入出”**,对代码的检查不够仔细。
三、代码功能测试
以下仅为部分测试截图,非完整测试过程
登录:
切换难度:
出题:
题目正常生成,且命名格式符合要求