Java程序设计实践

  先放上需求同时也是作业的地址:http://www.cnblogs.com/xinz/p/7417960.html

       这是我第一次接触一个完整的项目的开发,在这里分享一下整个项目(或者作业?)的设计过程。

       写一个项目,首先就是要搞清楚需求。而这个项目的需求描述中,可以看出后续的改进会有很多。而且个人也很难在短时间内将所有功能实现,还需要后续的慢慢改进。这就导致了必须采用模块化的开发,否则在后续的修改和添加新的功能时将耗费大量的精力。

       其次是要将需求中的问题拆分,本次项目里的问题就是“输入需要的题目数,输出相应符合标准的题目”。我们可以该问题拆分为“题目生成”“题目的验证”与“题目的输出“。

  按照面向对象的思路,我首先确定了“题目“:

  其次按照问题的拆分,分别是“题目生成器”“题目验证器”“题目输出器”:

验证器筛掉不符合标准的题目并生成答案

题目生成器依靠随机函数生成题目并调用验证器

题目输出器调用题目生成器批量生成可用题目并按格式输出

   但我发觉,批量生成题目去撞概率生成符合要求的题目很浪费时间(很明显的一件事我觉得)。于是我在验证器里加入了一个新的方法:修复题目

 

实际上错误只会发生在减法与除法之中(只需要把被减数或者被除数换掉就可以避免)

  最后在对整个块进行完善:

  这就是最初的完整模块设计。(但这并不是最终版本…)

       在进行整个文件的目录设计时,我发觉题目中有很多需要很方便就能修改的数据,如“学号”、“姓名”、“题目数”等。于是又在源代码目录下加入了配置文件。

       最终的源文件目录如下:

 

 

       虽然整个架子算搭完了,但里面的实现还是没有进行(验证器的实现很困难,特别是修复方法,需要太多的if-else,不知道如何改进)。整个过程整体消耗时间可能在2~3小时左右,在此做以记录。

转载于:https://www.cnblogs.com/zanghh/p/8604724.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值