HNU_中小学数学卷子自动生成程序(个人项目)简要分析

一、前言

 

  首先,在这里特别感谢我的结对编程伙伴HnuLyx,他在算法上和设计思路上都与我有很大的不同,个人项目互评中,为我的项目提出了很多很好的建议,让我在认清自己不足的同时,了解到很多以前没有注意的地方。此处附上链接,便于以后翻阅。

  其次,我来对HnuLyx的个人项目稍作评论,在发现内在不足的同时,学习长处,取长补短。

 

二、测试与评价

 

1. 黑盒测试

  在拿到项目文件后,我先进行了黑盒测试,从运行上体会程序的编写。

  (1) 优点1:界面设计较好(是我要学习的地方),用户体验感会得到适度的提升,操作简单易懂,便于操作,题目正确;

     缺点1平方的“^2”换成“²”(Alt+0178就可以用键盘打出);

           HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第1张图片HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第2张图片

   (2) 将已建立的文件夹删除后,显示报错;

      缺点2:但是建议制作创建文件夹的操作,mkdir()函数可以解决这个问题,可以为大批量用户使用时,节省很多不必要的创建文件夹的操作;

      HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第3张图片

 

    

  (3) 缺点3:与描述不符,建议修改,明明是退出当前用户,却返回上一界面,需要优化。

    (虽然已经实现了需求的退出功能,但是使用上的合理性也是要考虑的呢,可不要功亏一篑咯~)

    HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第4张图片

  (4)优点2:数据容错性较高,错误输入会提示并可供重新输入。

    HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第5张图片

 

 

  以上,为黑盒测试的全部内容,功能正常,界面舒适。

 

2. 白盒测试

 

  为了进行白盒测试,HnuLyx与我用了一个下午来交流双方的代码,并且进行讨论。

  经过他的讲解,我对系统内部的结构和工作原理有一个清楚的了解,明白盒子内部的东西以及里面是如何运作的,从而考虑测试用例,发现内部的长处与不足。

  (1)优点3:整体上,先大致浏览代码,我会清晰的感觉到,HnuLyx的代码模块化设计良好,一个函数实现一个功能,极大的增强了代码的逻辑性,可读性;

     (虽然我也有写一些函数,但是在功能的架构上,可能略逊与他,不是特别清晰)

    HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第6张图片

   (2)优点4:登录数据保存在文件中;

     (其实,通过了解代码后才发现,HnuLyx为了提高程序的可拓展性,将用户登录数据存储在txt文件中,每次登录时进行查询。

     如果在以后拓展程序,这将会带来极大的便利。)

    HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第7张图片

 

      HNU_中小学数学卷子自动生成程序(个人项目)简要分析_第8张图片

 

 

  (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同学的耐心讲解。

 

三、简单几句

  在软件工程导论的学习过程中,我逐渐有了一种职业感:个人项目、结对编程、团队项目。逐渐,逐渐,我们将在学习中逐渐成为真正有能力,有担当的中国青年程序员!
  我们会在老师的引导下坚持相互学习,共同进步。
  相信在结对编程过后,我们都会有长足的进步!
 

 

你可能感兴趣的:(HNU_中小学数学卷子自动生成程序(个人项目)简要分析)