Laden...

Ist es ok, die Fragen und Antworten für ein Multiple Choice Test Programm in XML Datei abzulegen?

Erstellt von alcedo707 vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.621 Views
Hinweis von herbivore vor 12 Jahren

Der Original-Titel war: Wie würdet ihr ein Multiple Choice Test programmieren?

A
alcedo707 Themenstarter:in
29 Beiträge seit 2011
vor 12 Jahren
Ist es ok, die Fragen und Antworten für ein Multiple Choice Test Programm in XML Datei abzulegen?

Hallo,

Da meine lehrabschlussprüfung als IT-Techniker bald davor steht, würde ich gerne einen Multiple Choice Lernprogramm programmieren mit allen Fragen, die zur Lehrabschlussprüfung kommen.

Meine Frage an euch wäre, wie ihr das machen würdet?

Ich habe mir überlegt, die Fragen und Antworten dynamisch im Programm in eine XML datei schreiben zu lassen.
Die Fragen werden dann geparst sowie die Antworten.
Aber ich habe gehört, das XML keine Leerzeichen enthalten darf, das wäre ziemlich schlecht für die Fragen.

Das ganze will ich in WinForms machen.

Gibt es eine bessere möglichkeit?

mfg
alcedo707

5.657 Beiträge seit 2006
vor 12 Jahren

Hi alcedo707],

Aber ich habe gehört, das XML keine Leerzeichen enthalten darf, das wäre ziemlich schlecht für die Fragen.

Offenbar hast du dir als IT-Techniker noch nie eine XML-Datei angeschaut, z.B. eine Projektdatei von VisualStudio oder eine Webseite... 🤔

Du hättest auch einfach mal bei Wikipedia nach XML suchen können. Siehe auch [Hinweis] Wie poste ich richtig?, Stichwort Eigeninitiative.

Christian

Weeks of programming can save you hours of planning

H
21 Beiträge seit 2012
vor 12 Jahren
Hinweis von herbivore vor 12 Jahren

Die Antwort von MrSparkle ist vielleicht etwas ruppig formuliert, aber gerade deshalb durchaus konstruktiv, weil sie dadurch sehr deutlich macht, dass man immer erst die eigenen (Klärungs-)Möglichkeiten ausschöpfen sollte, bevor man eine Frage im Forum stellt. Und das ist ein Rat, der sogar über das konkrete Problem hinaus hilft. Wogegen deine - ebenfalls konstruktive Antwort - nur bei dem einen konkreten Problem weiterhilft (was natürlich auch nicht zu verachten ist).

Das sind so Antworten die ich liebe - wenig konstruktiv.

XML klingt gar nicht so übel, wenn man gerne damit rumhantiert. In XML verschachtelst Du deine Daten ja in diesen Knoten. Innerhalb dessen kannst Du natürlich Leerzeichen verwenden. Ich persönlich arbeite gerne mit SQL und würde das mit einer LiteSQL aufbauen. Ich würde eine Tabelle für die Fragen erstellen, eine Tabelle mit den dazugehörigen Antworten die gleich ein tinyint enthält, ob diese Antwort zu dieser Frage korrekt ist. Dort könnte man noch ein Feld integrieren, was erklärt warum diese Antwort es nicht sein kann, wenn diese Falsch ist.

Aber ich glaube das ist Geschmackssache ob XML, SQL oder whatever. Ich finde es einfach einen Insert, Update oder whatever an die SQL zu senden. Das XML müsstest Du auch nach jeder Operation speichern, laden etc ... ist die Frage was einfacher zu handhaben ist ... (oder wozu man eher Lust hat 😃 )

Dann bräuchtest Du nur eine Möglichkeit in Deinem Programm Fragen definieren zu können, so dass Du die XML nicht per Hand zusammenschustern musst.

S
24 Beiträge seit 2011
vor 12 Jahren

Mit seinem ersten Posting in diesem Forum gleich ein gestandenes Mitglied angreifen?

Wie groß ist der Umfang des Fragenkatalogs?

Was meinst du mit

Fragen und Antworten dynamisch im Programm in eine XML schreiben ?

Ich verstehe dich so, dass du x Fragen hast. Jede Frage hat eine korrekte Antwort und wird durch dich um y falsche Antworten erweitert. Sagen wir insgesamt 5 Antworten. Wo ist nun das Problem?
Fragen + Antworten in eine Datenbasis (xml, embedded sql, textfile, whatever). Vllt noch falschen Antworten eine 0, richtigen eine 1 geben und zur Auswertung summieren und durch AnzahlBeantworteterFragen teilen. Simple WPF-GUI (Fragen einzeln, Navigation), WPF weil DataBinding so simple

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo alcedo707,

natürlich ist die Frage berechtigt, ob XML für den konkreten Einsatzzweck eine gute Wahl ist. Wie schon von den anderen gesagt, gibt es viele Möglichkeiten, aber wenn man es dateibasiert machen möchte, ist XML auf jeden Fall ist es keine schlechte Wahl. Es besteht jedenfalls kein Grund sich ein eigenes Dateiformat auszudenken.

Du sollte allerdings darauf achten, dass du die Datei - gerade weil sie veränderlich ist - nicht ins Programmverzeichnis oder ein Unterverzeichnis davon zu packen, sondern in eins der vorgesehenen Verzeichnisse, z.B. Environment.SpecialFolder.ApplicationData.

Beachte bei etwaigen Nachfragen bitte [Hinweis] Wie poste ich richtig? Punkt 1.1.1, 1.1 und 1.2 (also keinen Sammel-Thread daraus machen, ich habe den Titel entsprechend geändert.).

herbivore

2.891 Beiträge seit 2004
vor 12 Jahren

Ich habe mir überlegt, die Fragen und Antworten dynamisch im Programm in eine XML datei schreiben zu lassen. Die Fragen werden dann geparst sowie die Antworten.

Das Schreiben/Einlesen musst du nicht mal selbst übernehmen. Du schreibst einfach deine Klassen für die Fragen & Antworten und lässt das .NET-Framework den Rest übernehmen. Stichwort XmlSerializer. Um das Speicherformat brauchst du dir da eigentlich keine Gedanken machen; Alternativen wären z.B. auch BinaryFormatter (binäres Speicherformat) oder JavaScriptSerializer (JSON). Oder aber du verwendest - wie schon genannt - eine Desktop-Datenbank (siehe z.B. Empfehlungen für SQL-Datenbank gesucht).

225 Beiträge seit 2005
vor 12 Jahren

Schau Dir eventuell mal dieses einfache Beispiel aus der MSDN an:

XmlDocument.Save-Methode (String)

Hier findest Du mal ein ganz simples Beispiel.

XML ist auf jeden Fall geeignet um auf einfache Weise ein Programmdaten zu lesen oder zu speichen. Dafür gibt es, wie Du in der MSDN sehen wirst, ganz viele Methoden die "für Dich Parsen" bzw. elemente finden.
Finger weg von *.txt oder so etwas. Das ist Altbaken und wurde in den 80er so gemacht!
Datenbanken wären eine Alternative aber wahrscheinlich etwas oversized bzw. noch ein großer Batzen an Thematik wo Du Dich einarbeiten musst.

Aber achte bei Deinen XML-Dateien, dass sie möglicht nicht im Programmverzeichnis landen, wie viele Amateure das immer wieder gerne machen sondern in den dafür von Microsoft vorgesehenen Verzeichnissen, z. B. "MessageBox.Show(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));" oder so etwas.

A
alcedo707 Themenstarter:in
29 Beiträge seit 2011
vor 12 Jahren

Offenbar hast du dir als IT-Techniker noch nie eine XML-Datei angeschaut, z.B. eine Projektdatei von VisualStudio oder eine Webseite...

Du hättest auch einfach mal bei Wikipedia nach XML suchen können. Siehe auch [Hinweis] Wie poste ich richtig?, Stichwort Eigeninitiative.

Ich war mir nicht sicher, ob XML das ist, wonach ich suche, Deshalb fragte ich nach ob es überhaupt ein Anhaltspunkt ist. Vor 3 Monate(?) habe ich schon einmal was mit XML gemacht, und da gab es Probleme mit Leerzeichen, ich dachte das würde zusammenhängen.

Vielen Dank für alle Antworten! Ich werde mal XmlSerializer genauer anschauen.

mfg
alcedo707

225 Beiträge seit 2005
vor 12 Jahren

Na dann viel Erfolg! Ist aber eigentlich ein spannendes Thema was Du in Zukunft immer wieder brauchen wirst... Du wirst Dich fragen wie Du vorher nur ohne XML ausgekommen bist 😃