01 package jspkurs.aufg.kap2;
02
03 import java.beans.XMLDecoder;
04 import java.io.Serializable;
05 import java.util.Iterator;
06 import java.util.List;
07
08 /**
09 *
10 * @author Hans Joachim Herbertz
11 * @created 09.04.2003
12 */
13 public class JavaTest implements Serializable {
14
15 private List testItems = null;
16 private int currentPage = 0;
17
18 /**
19 * Constructor for JavaTest.
20 */
21 public JavaTest() {
22 super();
23 XMLDecoder decoder =
24 new XMLDecoder(
25 getClass().getResourceAsStream(
26 "/jspkurs/aufg/kap2/TestItems.xml"));
27 testItems = (List) decoder.readObject();
28 decoder.close();
29 }
30
31 public String getQuestion() {
32 return ((JavaTestItem) testItems.get(currentPage)).getQuestion();
33 }
34
35 public String[] getAnswers() {
36 return ((JavaTestItem) testItems.get(currentPage)).getAnswers();
37 }
38
39 public void setAnswer(Integer selected) {
40 ((JavaTestItem) testItems.get(currentPage)).setUserSelect(selected);
41 currentPage=Math.min(testItems.size()-1,++currentPage);
42
43 }
44 public int getCurrentPageNo() {
45 return currentPage;
46 }
47 public boolean isResolved() {
48 return ((JavaTestItem)testItems.get(testItems.size()-1)).getUserSelect()!=null;
49 }
50 public String getResult() {
51 StringBuffer buffer = new StringBuffer();
52 buffer.append(
53 "<tr><th>Frage</th><th>Ihre Antwort</th><th>Lösung</th></tr>\n");
54 Iterator it = testItems.iterator();
55 int goodAnswers = 0;
56 while (it.hasNext()) {
57 JavaTestItem item = (JavaTestItem) it.next();
58 buffer.append("<tr><td>" + item.getQuestion() + "</td>\n");
59 buffer.append(
60 "<td>"
61 + item.getAnswers()[item.getUserSelect().intValue()]
62 + "</td>\n");
63 buffer.append(
64 "<td>"
65 + item.getAnswers()[item.getSolution().intValue()]
66 + "</td></tr>\n");
67 if (item.getSolution().equals(item.getUserSelect())) {
68 goodAnswers++;
69 }
70 }
71 buffer.append(
72 "<tr><td>Richtige Antworten:</td><td>"
73 + goodAnswers
74 + "</td><td>"
75 + testItems.size()
76 + "</td></tr>");
77 return buffer.toString();
78 }
79
80 public String toString() {
81 return "CurrentPage=" + currentPage + " testItems=" + testItems;
82 }
83 }
|