一個“線上學習-練習“的簡單設計和應用

jeffrey4chartcrm發表於2011-04-02
最近正好是專案的間隙,趁空閒,找了一個“線上學習-練習”的需求,進行了簡單的設計和實現,也算是對四色圖和oo程式設計的一個實踐。


需求如下:
1.學生透過學習材料來學習,透過練習題目來練習。
2.課程下有科目,科目下有單元,單元是由學習材料和練習題目來組成的,是一個“課程”-->“科目”-->“單元”-->“內容(學習材料和練習題目)”的分類結構,如:數學-->中學數學-->幾何-->幾何學習材料和幾何練習題目
3.學生需要知道自己學了哪幾個單元的材料,做了哪幾個單元的習題。


四色圖如下:

[img index=1]


測試執行程式碼
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修改過]

相關文章