Freitag, 26. November 2010
Multiple-Choice-Tests bearbeiten
Optionale Aufgabe (freiwillig)!
Schreiben Sie ein Programm, das eine Datenstruktur, mit der man Multiple-Choice-Tests erzeugen kann, aus einer Textdatei erstellt. Das Format der Textdatei soll anhand eines Beispiels gezeigt werden:
Schreiben Sie ein Programm, das eine Datenstruktur, mit der man Multiple-Choice-Tests erzeugen kann, aus einer Textdatei erstellt. Das Format der Textdatei soll anhand eines Beispiels gezeigt werden:
Das ist der einleitende Text, der einfach in einen String Namens "einleitung"
gelesen werden soll. Mit allen Zeichen und Zeilenumbrüchen. Diese Einleitung
endet mit zwei leeren Zeilen.
Das ist die erste Frage. Der Text dieser Frage kann sich auch über mehrere
Zeilen erstrecken. Allerdings soll so ein Text ohne die Zeilenumbrüche
übernommen werden (Zeilenümbrüche durch Leerzeichen ersetzen). Die weiteren
Informationen sind durch mindestens zwei Leerzeichen eingerückt gleich nach
diesem Text. Optional darf eine Leerzeile stehen.
Optionaler Text, der wie die Einleitung mit allen Umbrüchen so übernommen
werden soll, wie er in der Datei ist, jedoch ohne die Einrückung. Alle
weiteren Informationen kommen wieder eingerückt, optional mit einer
Leerzeile abgetrennt. Die Punkte für diese Frage sind in runde Klammern
zu setzen (am Anfang der Zeile mit Einrückung). Gibt es keine Punkte,
so ist 1 zu verwenden.
Optional kann in { } eine Zahl > 0 und <= 1 angegeben werden, welche
als "Faktor" zu interpretieren ist. Wieder nur mit passender Einrückung.
(Der Faktor soll angeben, welcher Anteil an richtigen und falschen
Antworten dann bei der Erzeugung der Tests verwendet werden soll, 0.5
bedeutet die Hälfte).
(2)
{0.75}
[X] Das ist eine richtige Antwort.
[ ] Das ist eine falsche Antwort.
[X] Das ist eine richtige Antwort, die sich
über mehrere Zeilen erstrecken kann.
[ ] Das ist eine falsche Antwort, die sich
über mehrere Zeilen erstrecken kann.
Die Einrückung ist wieder wesentlich. Die
Zeilenumbrüche und die Einrückung sind
zu entfernen.
Das ist die nächste Frage, sie wird mit zwei Leerzeilen von der
vorigen abgetrennt. Es muss keine weitere Information angegeben
sein. In diesem Fall wäre es eine 1-Punkte-Frage ohne Auswahl-
möglichkeiten, also eine direkt zu beantwortende Frage.
Die Dritte Frage. Ist nun eine 1-Punkte Frage ohne Faktor und
ohne Text.
[ ] Falsche Lösung.
[X] Richtige Lösung.
[ ] Falsche Lösung.
Am Ende der Datei brauchen natürlich keine Leerzeilen mehr sein. Das Programm soll solche Dateien einlesen und folgende Variable setzen: einleitung mit dem einleitenden Text. fragen, einer Liste von Fragen. Jede Frage ist ein Dictionary mit folgenden Schlüssel und Werten:"frage"mit dem Text der Frage."text"mit dem optionalen Text (oder eben nicht)."punkte"mit den gelesenen Punkten oder 1."faktor"mit dem gelesenen Faktor (oder gar nicht)."richtig"mit einer Liste der richtigen Antworten (ohne"[X]")."falsch"mit einer Liste der richtigen Antworten (ohne"[ ]").
Labels: Aufgabe, POS1-2, Python
Abonnieren Kommentare [Atom]
Kommentar veröffentlichen