一个“在线学习-练习“的简单设计和应用
最近正好是项目的间隙,趁空闲,找了一个“在线学习-练习”的需求,进行了简单的设计和实现,也算是对四色图和oo编程的一个实践。
需求如下:
1.学生通过学习材料来学习,通过练习题目来练习。
2.课程下有科目,科目下有单元,单元是由学习材料和练习题目来组成的,是一个“课程”-->“科目”-->“单元”-->“内容(学习材料和练习题目)”的分类结构,如:数学-->中学数学-->几何-->几何学习材料和几何练习题目
3.学生需要知道自己学了哪几个单元的材料,做了哪几个单元的习题。
四色图如下:
测试运行代码
public void testStudy(){
StudyService studyService = new StudyServiceImpl();
User student = new User("dragontec");
Course math = new Course("数学");
Subject subject1 = new Subject("中学数学", math);
Unit unit = new Unit("几何", math, subject1);
UnitType type = new UnitType("学习");
unit.setUnitType(type);
StudyContent book1 = new StudyContent("几何学习材料");
unit.getUnitType().addContents(book1);
//开始单元学习
Study study = studyService.beginStudy(new Date(), student, math, subject1, unit);
//针对具体材料学习
StudyDetail detail1 = studyService.beginDetailStudy(new Date(), book1, study);
//具体学习完毕,告诉单元学习
detail1 = studyService.endDetailStudy(detail1, new Date());
study.finishDetails(detail1);
//单元学习完毕
study = studyService.endStudy(study, new Date());
System.out.println(student.getUsername()+"完成了"+math.getName()+"-->"+subject1.getName()+"-->"+unit.getName()+"的学习,总用时:"+study.getTimeCost());
System.out.println("其中,具体学习了《"+study.getDetails().get(0).getLinkedContent().getContent()+"》,用时:"+study.getDetails().get(0).getTimeCost());
}
[该贴被jeffrey4chartcrm于2011-04-02 15:22修改过]
[该贴被jeffrey4chartcrm于2011-04-02 16:04修改过]