码迷,mamicode.com
首页 > 其他好文 > 详细

中小学数学题生成程序代码分析

时间:2019-09-19 23:51:51      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:难度   系统   试题   代码分析   技术   数学题   面向对象   文件内容   s函数   

整体的排版:

    针对同一代码段,写出优点和认为可能有的改进的地方。

 

代码段1:

      将用户信息封装成Student类。Java的类型能够把相同属性的对象抽象出来,无论是概念上还是编程上都会帮助我们理解整个系统的架构。

 

            技术图片

 

 

  虽然前面说到有将用户信息封装成类,方便管理。但是整个项目仅仅只有两个类,另外一个是主类,我觉得结构可以更加优化一些,因为Java是面向对象语言,类是很重要的一个概念,可以实现功能的解耦。比如这个项目的登陆模块和出题模块都可以设计成类,一方面可以对整个系统的架构有更清晰的认知,另一方面起码可以降低维护难度(修Bug的难度)。我这一方面的能力也很薄弱,有时候不知道功能要细化到什么程度可以收手,导致分了太多类,管理这些类花很多时间 。

 

 

 

代码段2:

 

  用户登录部分做法是重写类内的equals函数,实现了两个对象的比对来实现登录查询。之前我没想过这种方法,我的做法是拿遍历用户名来查找匹配的用户对象,王同学是通过遍历对象来匹配对象。

 

       技术图片

       技术图片

 

代码段3:

 

 

 

  试卷的查重,王同学采用的是提取当前文件夹下的所有文件内容,然后使用For循环查重。

 

       技术图片

  这里我觉得可以采用更好得方法,我之前也是这样的查重手段,受身边室友启发,决定改用Set容器存放试卷,因为Set容器本身自带去重功能,所以只要在程序初始化时载入本地试卷,新生成的试卷只要忘Set容器一放,根据反馈信息就能知道这个试题是否和之前所有的试题(已装入容器)重复,如果不重复就加入。

  

  

代码段4:

 

  生成试题的程序部分。这是我做的最不好的地方,所以我要多学习新的想法。

       王同学的思路是随机生成括号,记录下左右括号的个数,这样可以保证括号闭回。

       技术图片

   ......中间略

       技术图片

 

        王同学这样做的好处是可以较便捷准确的生成多个括号,而我只弄了一个括号。(●ˇ∀ˇ●)其实我的方法应该也能快捷生成多个括号(我将数字和符号分离成数组,根据数字的下标和括号跨距,进行插入括号),但是我以为会很容易出现这种情况   (4+5()9)+8 ,仔细想想只要检查一下就可以取除这个问题

 

 

 

 

代码段5:

 

  为当前用户真正实例化了一个临时的Student对象,用它装载信息。这个想法不错,我的做法只是保持住用户输入的用户名密码,去访问登录和生成试卷。所以看了王同学的代码收获很大??

 

       技术图片

     

 

总结:

     首先是看懂了,以前看别人代码很吃力(觉得像是在看不同语言),这次非常顺畅,当然主要原因是写的很好。然后一个发现是即使做同一个项目,代码的不同之处也特别多,能够看到对方的优点并加以学习是结对编程的第一个收获,希望在这之后能和项目组大佬们有更多友好交流。

 

 

中小学数学题生成程序代码分析

标签:难度   系统   试题   代码分析   技术   数学题   面向对象   文件内容   s函数   

原文地址:https://www.cnblogs.com/zhoushihuan/p/11553104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!