个人项目分析

一、简介

本博客为对陈骏科同学的个人项目的代码评价。

本次的个人项目实现的是中小学自动出题项目代码的编写,采用的是C/S模式。

二、代码分析

优点:

1、从代码的结构上可以看出,采用模块化的方式进行了设计,命名和实际功能相关联,代码的可读性强。

个人项目分析_交互设计


2、编写了注释,且注释简单明了。

个人项目分析_功能实现_02


3、交互设计做的很棒。提示充满了趣味。

个人项目分析_测试过程_03


4、可实现的功能通过菜单列了出来,并有着明确的提示,极方便用户的使用

个人项目分析_交互设计_04


5、在实现了所有功能的基础上,加入了自己的想法,在小学题目的生成时,会通过answer模块计算答案,并输出结果的txt文件,虽然因为时间限制,并没有吧这个功能完善到初中和高中,但依然是一个很好的想法。

个人项目分析_功能实现_05



但也存在以下的问题:

1、在工程中缺乏readme文档,在我的机子上运行时,因为运行版本不同,排版出现了一定的错误,如下:


​ 在我的电脑上运行的结果,明显看到排版存在错位。

个人项目分析_个人项目_06


​ 在他本人的电脑上是正常的,并没有错位。

个人项目分析_穷举法_07


2、输出路径提示不明确


个人项目分析_功能实现_08


对于输出路径的提示只有一句到文件夹中查收,如果不看源代码,很难找到对应的路径。

3、在测试过程中,发现了存在一些不是很合理的题目的生成


个人项目分析_穷举法_09


如上,最左边的左括号对应了最右边的右括号,在实际的场景中,这样的括号明显是没有任何意义的,应当去除。

4、设置变量的初始值时不够严谨


个人项目分析_交互设计_10


在上图中出现了tan90°,明显在数学中是不会出现这样的计算的。

在实际题目中也的确出现了tan90°这个不合理的存在

个人项目分析_个人项目_11


5、在题目查重检测中,使用的是穷举法,速度会比较慢,如果能使用python自带的hash查找,性能会更好

个人项目分析_功能实现_12


6、功能实现不够完整

个人项目分析_功能实现_13


如上图,登录功能实现了,但在登录后没有按要求在第一时间提示**“当前选择为(小学/初中/高中)出题”**。而是在选择默认出题后才提醒。并且**“输入处”**打成了**“输入出”**,对代码的检查不够仔细。

个人项目分析_测试过程_14


三、代码功能测试

以下仅为部分测试截图,非完整测试过程

登录:

个人项目分析_个人项目_15

切换难度:

个人项目分析_个人项目_16

出题:

个人项目分析_穷举法_17


个人项目分析_测试过程_18


题目正常生成,且命名格式符合要求