Builder的错误观点,帮我指正

小湘eeeee 2014-09-16 01:50:03

我是标题dang.......

我想做一个考题系统,涉及小学1-6,中学1-3,高中1-3各个科目
还能按照难度等级(ABCD)划分,生成试卷.........

哎我是个没有什么文化的人,可是我需要一张高一年级的A级语文试卷,给邻居小孩测试..
??? 我应该怎么做呢,愁人啊.

思路一(这儿我觉得是一种大家都会去做的事!!)
我先上书店或者网上弄点高一语文资料,然后看看哪道题目难度什么的都合适,我就记录下来.
然后去买A4纸.然后把选好的题目打印出来.然后交给邻居.
邻居收到后觉得挺好啊.小陈很能干啊.过几天再给我孩子弄一个数学和英语的卷子呗...
(我勒个去的重复上次的操作)我在去找资料.......................累死人了......
然后化学,物理的..............

思路二(这算是Builder吗,凑合用把)
我本来就啥也不会文盲一个,你个破邻居还叫我出题目.靠.哎哎哎谁叫哥欠他1块钱没还呢!!!
算了帮他一把啦,
我给我的母校,校长打了个电话告诉了他我需要(高一年级的A级语文试卷)这样一张卷纸.
紧接着校长又给高一语文老师提了一个要求,叫他这张试卷.
高一语文老师那肯定牛逼啦.一个卷纸还不是手到擒来的.三两下就选好题目了(还不要查资料什么的).
然后高一语文老师把选好的题目信息,丢给负责打印的人,
负责打印的人就按照题目挨个打印到A4纸上..........
打印好了之后卷纸就制作成功了哈哈.负责打印的或者老师就可以直接把卷纸给我了.
我也就可以交差了.
...数理化同上打电话,专业的人做专业的事....

卷纸什么的都可以简单点,嘿嘿.哪位闲着的没事把上述思路实现了吧.
还有什么不足的也请不足,相互学习
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小湘eeeee 2014-09-16
  • 打赏
  • 举报
回复

package org.xx.build.xxxl;

/**
 * Created by chenxiangning on 14-9-16.
 * 考试卷子的构建,
 */
public interface ExamBuilder {
    /**
     * 这是一个规范,卷纸各部分信息
     */
    public void titleBuild();

    public void nameBuild();

    public void levelBuild();

    public void subjectsBuild();

    public void dateBuild();

}


package org.xx.build.xxxl;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by chenxiangning on 14-9-16.
 * 一些数据
 */
public enum QuestionBank {

    Chinese(new HashMap(){
        {
            put("1",new String[]{"Chinese问题1","答案1"});
            put("2",new String[]{"Chinese问题2","答案2"});
            put("3",new String[]{"Chinese问题3","答案3"});
        }
    }),
    English(new HashMap(){
        {
            put("1",new String[]{"English问题1","答案1"});
            put("2",new String[]{"English问题2","答案2"});
            put("3",new String[]{"English问题3","答案3"});
        }
    }),
    Math(new HashMap(){
        {
            put("1",new String[]{"Math问题1","答案1"});
            put("2",new String[]{"Math问题2","答案2"});
            put("3",new String[]{"Math问题3","答案3"});
        }
    });

    private Map data = new HashMap();
    private QuestionBank(HashMap data){
        this.data = data;
    }

    public Map getData() {
        return data;
    }
}

package org.xx.build.xxxl;

import java.util.Iterator;
import java.util.Map;

/**
 * Created by chenxiangning on 14-9-16.
 * 试卷结构
 */
public class ExamPaper {
    private String title;
    private String name;
    private String level;
    private String subjects;
    private QuestionBank date;

    ExamPaper() {

    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public String getSubjects() {
        return subjects;
    }

    public void setSubjects(String subjects) {
        this.subjects = subjects;
    }

    public QuestionBank getDate() {
        return date;
    }

    public void setDate(QuestionBank date) {
        this.date = date;
    }

    @Override
    public String toString() {
        return "ExamPaper{" +
                "title='" + title + '\'' +
                ", name='" + name + '\'' +
                ", level='" + level + '\'' +
                ", subjects='" + subjects + '\'' +
                ", date=" + showDate() +
                '}';
    }

    private String showDate() {
        String res = "";
        Map map = date.getData();
        Iterator mapKey3 = map.entrySet().iterator();
        while (mapKey3.hasNext()) {
            Map.Entry e = (Map.Entry) mapKey3.next();
            res += e.getKey() + "  "
                    + ((String[]) e.getValue())[0] + "  "
                    + ((String[]) e.getValue())[1];

        }
        return res;
    }
}


package org.xx.build.xxxl;
/**
 * Created by chenxiangning on 14-9-16.
 */
public class ConcreteExamBuilder implements ExamBuilder {
    private ExamPaper examPaper;
    private String title;
    private String name;
    private String level;
    private String subjects;
    private QuestionBank bank;

    public ConcreteExamBuilder settingNewExamPaper() {
        this.examPaper = new ExamPaper();
        return this;
    }

    public ConcreteExamBuilder setBank(QuestionBank bank) {
        this.bank = bank;
        return this;
    }

    public ConcreteExamBuilder setTitle(String title) {
        this.title = title;
        return this;
    }

    public ConcreteExamBuilder setName(String name) {
        this.name = name;
        return this;
    }

    public ConcreteExamBuilder setLevel(String level) {
        this.level = level;
        return this;
    }

    public ConcreteExamBuilder setSubjects(String subjects) {
        this.subjects = subjects;
        return this;
    }

    @Override
    public void titleBuild() {
        examPaper.setTitle(title);
    }

    @Override
    public void nameBuild() {
        examPaper.setName(name);
    }

    @Override
    public void levelBuild() {
        examPaper.setLevel(level);
    }

    @Override
    public void subjectsBuild() {
        examPaper.setSubjects(subjects);
    }

    @Override
    public void dateBuild() {
        examPaper.setDate(bank);
    }

    public ExamPaper getExamPaper() {
        return examPaper;
    }
}

package org.xx.build.xxxl;

/**
 * Created by chenxiangning on 14-9-16.
 */
public class TeacherDirector {
    private ExamBuilder builder;

    public TeacherDirector setBuilder(ExamBuilder builder) {
        this.builder = builder;
        return this;
    }

    public void construct(){
        builder.titleBuild();
        builder.nameBuild();
        builder.levelBuild();
        builder.subjectsBuild();
        builder.dateBuild();
    }
}


package org.xx.build.test;

import org.xx.build.xxxl.*;

/**
 * Created by chenxiangning on 14-9-16.
 */
public class Txxxl {
    public static void main(String[] args) {
        ConcreteExamBuilder yw = new ConcreteExamBuilder();
        yw.settingNewExamPaper().setLevel("A")
                .setSubjects("语文").setName("xxxxxx")
                .setTitle("2014年高一语文考试卷子")
                .setBank(QuestionBank.Chinese);

        TeacherDirector teacher = new TeacherDirector();
        teacher.setBuilder(yw).construct();

        ExamPaper paperCh = yw.getExamPaper();
        System.out.println(paperCh);


        ConcreteExamBuilder sx = new ConcreteExamBuilder();
        sx.settingNewExamPaper().setLevel("SSS")
                .setSubjects("数学")
                .setBank(QuestionBank.Math);

        teacher.setBuilder(sx).construct();

        ExamPaper paperMath = sx.getExamPaper();
        System.out.println(paperMath);
/**
 ExamPaper{title='2014年高一语文考试卷子', name='xxxxxx', level='A',
 subjects='语文', date=3  Chinese问题3  答案32  Chinese问题2  答案21  Chinese问题1  答案1}
 ExamPaper{title='null', name='null', level='SSS',
 subjects='数学', date=3  Math问题3  答案32  Math问题2  答案21  Math问题1  答案1}
 */

    }
}

痞子月 2014-09-16
  • 打赏
  • 举报
回复
不太明白楼主问什么啊 是整个网站建立的思路吗 要是卷子方面的 可以用下我们以前用的思路 就是弄个题库 100道选择 然后随机拿出来10个考试 还是不明白楼主问的是什么

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧