Java程序设计实践
先放上需求同时也是作业的地址:http://www.cnblogs.com/xinz/p/7417960.html
这是我第一次接触一个完整的项目的开发,在这里分享一下整个项目(或者作业?)的设计过程。
写一个项目,首先就是要搞清楚需求。而这个项目的需求描述中,可以看出后续的改进会有很多。而且个人也很难在短时间内将所有功能实现,还需要后续的慢慢改进。这就导致了必须采用模块化的开发,否则在后续的修改和添加新的功能时将耗费大量的精力。
其次是要将需求中的问题拆分,本次项目里的问题就是“输入需要的题目数,输出相应符合标准的题目”。我们可以该问题拆分为“题目生成”“题目的验证”与“题目的输出“。
按照面向对象的思路,我首先确定了“题目“:
其次按照问题的拆分,分别是“题目生成器”“题目验证器”“题目输出器”:
验证器筛掉不符合标准的题目并生成答案
题目生成器依靠随机函数生成题目并调用验证器
题目输出器调用题目生成器批量生成可用题目并按格式输出
但我发觉,批量生成题目去撞概率生成符合要求的题目很浪费时间(很明显的一件事我觉得)。于是我在验证器里加入了一个新的方法:修复题目
实际上错误只会发生在减法与除法之中(只需要把被减数或者被除数换掉就可以避免)
最后在对整个块进行完善:
这就是最初的完整模块设计。(但这并不是最终版本…)
在进行整个文件的目录设计时,我发觉题目中有很多需要很方便就能修改的数据,如“学号”、“姓名”、“题目数”等。于是又在源代码目录下加入了配置文件。
最终的源文件目录如下:
虽然整个架子算搭完了,但里面的实现还是没有进行(验证器的实现很困难,特别是修复方法,需要太多的if-else,不知道如何改进)。整个过程整体消耗时间可能在2~3小时左右,在此做以记录。
最新文章
- IOS开发基础知识碎片-导航
- MySQL SQL Mode及相关问题
- HTTP协议 (七) Cookie
- Python:如何显示进度条
- SQL 树结构统计数据
- jquery api 笔记(2) 事件 事件对象
- OpenCV学习(1) OpenCV的安装
- 多线程学习之三生产者消费者模式Guarded Suspension
- [Q]如何将图纸打印为黑白的及设置打印样式
- 浙大 pat 1023题解
- [物理学与PDEs]第1章习题14 求解 rot 方程
- CentOS7安装MYSQL。
- 在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片
- 网页与APP中那些优美的登陆表单
- webpack3--配置多入口和多出口
- Day3 分支结构和循环结构
- 成都Uber优步司机奖励政策(4月20日)
- 【转】Linux shell的&;&;和||
- Java微笔记(5)
- linux 驱动cc1101