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

整体的排版:

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

 

代码段1:

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

 

            

 

 

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

 

 

 

代码段2:

 

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

 

      

      

 

代码段3:

 

 

 

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

 

      

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

  

  

代码段4:

 

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

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

      

   ......中间略

      

 

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

 

 

 

 

代码段5:

 

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

 

      

     

 

总结:

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

 

 

转载于:https://www.cnblogs.com/zhoushihuan/p/11553104.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值