4113 |
html |
HTML Parser |
Kategorie: | Informatik |
Klasse: | schwer |
Eingabe: | Siehe Spezifikation |
Ausgabe: | Siehe Spezifikation |
|
Abzugebende Files: html.txt, Main.java, html/*.java , 4544.txt, 4572.txt |
Kurzbeschreibung:
Das Programm soll die gängigsten HTML tags (<head>, <body>,...) interpretieren können und den Input
dementsprechend formatieren. Eingeben wird eine String-Folge (max 40), die aus den tags und dem Inhalt bestehen.
Es soll auf den Syntax geachtet werden (tags müssen wieder geschlossen werden </head>) und bei
fehlerhaftem Syntax eine Fehlermeldung ausgeben.
Allgemeine Hinweise:
-
Das Beispiel dieser Runde ist objektorientiert und als package zu lösen. Nachdem Sie das Programm mittels Dialogprogramm abgegeben haben, gehen Sie zu einem Tutor. Der Tutor überprüft, ob Sie Ihr Programm spezifikationsgemäß programmiert haben.
-
Unmittelbar nach der erfolgreichen Abgabe am Dialogprogramm können sie bereits die nächste Runde abholen.
-
Sie haben Lösungen (und Spezifikationen) aus der 3. Runde von anderen Studenten erhalten. Testen Sie alle mitgelieferten Lösungen und wählen Sie eine Lösung aus, die Ihnen hinsichtlich Lesbarkeit, Programmierstil,
Korrektheit und Verwendbarkeit am besten erscheint.
- Merken Sie sich die Lösungsnummer des ausgewählten Beispieles für die Abgabe. Diese Nummer müssen Sie bei der Abgabe angeben. Geben Sie nur jene Lösungsnummer an, die Sie auch wirklich ausgewählt haben.
-
Erstellen Sie für alle Lösungen zu diesem Beispiel (siehe: "Abzugebende Files") ein File mit dem Namen <number>.txt. und schreiben in dieses File ein Review (=Kritik) zu der Lösung. Diese Reviews erhalten dann die TeilnehmerIn von dem/der die Lösung stammt. Beachten Sie das bitte bei der Form Ihrer Kritik.
-
Sie können für die Lösung der gewählten Aufgabe eine oder mehrere Klassen programmieren. Die Klasse Main.java muß aber die Methode main enthalten. Weiters müssen alle anderen abgegebenen Klassenfiles in Verzeichnis html vorliegen, Pfadangaben sind nicht gestattet.
-
Achten Sie auf die korrekten Konventionen der Groß/Kleinschreibung bei
Klassen und Methoden!
-
Falls Ihre Lösung einen Exit Code zurueckliefert, so
achten Sie darauf, dass dieser den Wert 0 hat.
Bei allen anderen Werten können Probleme bei der Bewertung und in weiterer
Folge unbeabsichtigte Punkteabzüge auftreten.
- Ihre Lösung darf nur genau jene Ausgabedaten liefern, die in der
Spezifikation verlangt werden. Die Ausgaben Ihrer Lösung werden automatisch mit Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
- Testen Sie Ihre Lösung vor der Abgabe mit der mitgelieferten Eingabedatei. Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihrer Lösung mit der ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihre Lösung auch mit anderen Eingabedaten.
-
Verwenden Sie nur das von uns mitgelieferten Package eprog
für Ihre Ein/Ausgaben. Klassen, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.3.1_1) verwenden, können von uns
nicht getestet werden und werden daher mit 0 Punkten bewertet!
- Schreiben Sie Ihre Klasse(n) möglichst allgemein und kommentieren
Sie diese gut. Erstellen Sie weiters eine übersichtliche und
verständliche Dokumentation. Damit erhöhen Sie Ihre Chancen,
daß andere Studenten in der nächsten Runde Ihre Lösung
wählen und Ihnen damit zu Zusatzpunkten verhelfen!
Aufgabenbeschreibung
Das Programm soll eine Stringfolge einlesen und die HTML tags interpretieren
können. Text soll nicht formatiert werden, es soll nur angegeben werden, in
welcher Art er erscheinen würde, also eine kurze Interpretation (<h1> =
sehr_gross, <h2> = gross, ..), gefolgt von einem Leerzeichen und dann dem
unformatierten Text gefolgt von einem Semicolon und einem Leerzeichen. Bei Tabellen
soll angegeben werden, wie viele Spalten und Zeilen sie hat, danach der Text,
so formatiert wie oben genannt. Grafiken, style sheets und Scripte sind nicht
erlaubt. Tags müssen immer geschlossen werden, also einem <xxxx> folt immmer
ein </xxxx>, wobei das letztere das schließende tag ist. Ausnahme ist hier das Tag <BR>, für das es kein schießendes Tag gibt. Abgeschlossen wird
mit "Ende". Erlaubte tags und die anzuzeigende Interpretation, wobei "-" für
keine Interpretation steht:
<xxxx>: Interpretation
<HTML> Konstruktor, muss immer vorhanden sein: -
<HEAD> innerhalb dieses tags darf nur folgender tag stehen
<TITLE>: für <HEAD> -, für <TITLE> "Titel"
<BODY> alle anderen tags sollen innerhalb dieses tags stehen : -
<h2> innerhalb dieses tags ist text : "Text_sehr_gross"
<h3> innerhalb dieses tags ist text : "Text_gross"
<h4> innerhalb dieses tags ist text : "Text_mittel"
<h5> innerhalb dieses tags ist text : "Text_normal"
<BR> Zeilenumbruch soll auch in Ausgabe vollzogen werden: -
<TABLE> Konstruktor für eine Tabelle alle folgenden tags stehen innerhalb
dieses tags (<TBODY> muss genau ein mal innerhalb dieses Tags stehen): -
<TBODY> die folgenden zwei tags stehen innerhalb: -
<TR> für neue zeile: -
<TD> für neue spalte: -
Eingabedaten:
Lesen Sie die StringFolge ein und interpretieren sie sie nach den Vorgaben.
Der Eingabedatensatz wird immer mit dem