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

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

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

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

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

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

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

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

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

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

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

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

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

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

最终的源文件目录如下:

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

Java程序设计实践的更多相关文章

  1. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

  2. 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  3. 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"

    20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...

  4. 2016-2017-2 《Java 程序设计》课堂实践项目

    目录 基本工具 基础内容 Hello World 和 模块分解 数组的使用 命令行参数 递归 分支语句 String类的使用 类的定义与测试 多态 IO与异常 数据库 网络与安全 数据结构应用 And ...

  5. 2018-2019-2 20175227张雪莹《Java程序设计》实验三 《敏捷开发与XP实践》

    2018-2019-2 20175227张雪莹<Java程序设计> 实验三 <敏捷开发与XP实践> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号: ...

  6. 20155324 《Java程序设计》实验三 敏捷开发与XP实践

    20155324 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 1.XP核心实践 2.相关工具 实验步骤 敏捷开发与XP 1.敏捷开发(Agile Developme ...

  7. 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)

    20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  8. 《Java 程序设计》课堂实践项目 课后学习总结

    <Java 程序设计>课堂实践项目 课后学习总结 String类的使用(sort) 目录 Linux命令(sort) 课堂实践 课后思考 学习老师的代码之后的思考:int与Integer ...

  9. 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践

    20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 检查点1: 安装alibaba 插件,解决代码中的规范问题 首先把搭档加入到自己的项目中 ...

随机推荐

  1. (收藏)mci 录音和播放

    原文http://blog.csdn.net/lvbian/article/details/18226741 最近在做Android与C#录音并互相通信的小东西.但是卡在C#录音这儿了.找了好久,说的 ...

  2. 2017-2018-1 20155336 《信息安全系统设计基础》加分作业:实现mypwd

    2017-2018-1 20155336 <信息安全系统设计基础>加分作业:实现mypwd 什么是PWD? 用man pwd查看: 用于打印当前工作目录的工作路径 1.命令格式:pwd[选 ...

  3. 20145209刘一阳《JAVA程序设计》第八周课堂测试

    第八周课堂测试 1.下面代码中共有(C)个线程? public class ThreadTest { public static void main(String args[]){ MyThread ...

  4. 《图说VR入门》——Unity插件DK2使用教程

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53339254 作者:car ...

  5. 前端- jquery- 总结

    1.jquery与js的区别 (1)javascript的缺点 书写繁琐,代码量大 代码复杂 动画效果,很难实现.使用定时器 各种操作和处理 (2) JavaScript和jquery的定义 Java ...

  6. JS获取对象“属性”的方法

    var testObj= new Object(); testObj.name = "shangguan"; testObj.age= ; testObj.action = fun ...

  7. IOS测试-Fastmonkey

    目录: 一.背景 二.Fastmonkey介绍 三.Fastmonkey操作前准备 四.Fastmonkey工程配置过程 五.执行Monkey测试 六.FAQ Fastmonkey实践 一.背景: 因 ...

  8. TPO-21 C2 Which elective courses to take

    /* 加粗:语音部分 * 红色:单词部分 * 斜体:语法部分 * 下划线:信号词/句 */ 第 1 段 1.Listen to a conversation between a student and ...

  9. javascript this(上)

    javascript的this指向的是一个函数运行时动态绑定对象. this的4种常见的指向: 作为对象的方法调用 var obj={ name:"姚小白", getName:fu ...

  10. Python-RabbitMQ(简单发送模型)

    RabbitMQ需要 erlang 和pika 1.RabbitMQ和erlang版本必须匹配,否则就报没有进程错误 2.RabbitMQ的erlang.cookie和windows下的erlang. ...