首先,在这里特别感谢个人结对编程伙伴HnuLyx,他在算法上和设计思路上都与我有很大的不一样,我的项目互评中,为个人项目提出了不少很好的建议,让我在认清本身不足的同时,了解到不少之前没有注意的地方。此处附上连接,便于之后翻阅。html
其次,我来对HnuLyx的我的项目稍做评论,在发现内在不足的同时,学习长处,取长补短。程序员
在拿到项目文件后,我先进行了黑盒测试,从运行上体会程序的编写。算法
(1) 优势1:界面设计较好(是我要学习的地方),用户体验感会获得适度的提高,操做简单易懂,便于操做,题目正确;编程
缺点1:平方的“^2”换成“²”(Alt+0178就能够用键盘打出);架构
(2) 将已创建的文件夹删除后,显示报错;模块化
缺点2:可是建议制做建立文件夹的操做,mkdir()函数能够解决这个问题,能够为大批量用户使用时,节省不少没必要要的建立文件夹的操做;函数
(3) 缺点3:与描述不符,建议修改,明明是退出当前用户,却返回上一界面,须要优化。性能
(虽然已经实现了需求的退出功能,可是使用上的合理性也是要考虑的呢,可不要功亏一篑咯~)学习
(4)优势2:数据容错性较高,错误输入会提示并可供从新输入。测试
以上,为黑盒测试的所有内容,功能正常,界面温馨。
为了进行白盒测试,HnuLyx与我用了一个下午来交流双方的代码,而且进行讨论。
通过他的讲解,我对系统内部的结构和工做原理有一个清楚的了解,明白盒子内部的东西以及里面是如何运做的,从而考虑测试用例,发现内部的长处与不足。
(1)优势3:总体上,先大体浏览代码,我会清晰的感受到,HnuLyx的代码模块化设计良好,一个函数实现一个功能,极大的加强了代码的逻辑性,可读性;
(虽然我也有写一些函数,可是在功能的架构上,可能略逊与他,不是特别清晰)
(2)优势4:登陆数据保存在文件中;
(其实,经过了解代码后才发现,HnuLyx为了提升程序的可拓展性,将用户登陆数据存储在txt文件中,每次登陆时进行查询。
若是在之后拓展程序,这将会带来极大的便利。)
(3)缺点4:在了解了该程序算式生成的算法后,通过屡次测试,我发现了一个问题,虽然题目达到需求的要求,可是没法将题目彻底随机,如:
每一个操做数只能有一个左括号,举个例子:7*(8+(9+1))+5 而不能生成如7*((8+9)+1)+5。
(右括号受左括号限制,需求中最多五个操做数,则右括号最多3个:A + ( B + ( C + ( D +E)))。)此处数据过多,不便截图展现,抱歉。
(4)优势5:HnuLyx在编程时,他除了考虑了架构的合理性,还考虑到了程序的性能问题,有所针对的优化部分代码,提升程序性能。
如,经过getchar(),cin,scanf三者性能的比较,获得getchar()的效率最高,而且加以调用,以便将来在查重时大量数据的输入效率问题。
以上,为白盒测试的所有内容。再次感谢HnuLyx同窗的耐心讲解。