From af2059b2faabde3b58428033162b792eb6191752 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Mon, 15 Jan 2018 07:17:45 +0100
Subject: [PATCH] .zip archive hint

---
 Klausuren/Sd1/2017Summer/Solve/Doc/.gitignore |   2 +
 .../Sd1/2017Summer/Solve/Doc/klausur.xml      | 205 ++++++++++++++----
 Klausuren/Sd1/2017Summer/Solve/Doc/task1.html | 131 -----------
 Klausuren/Sd1/2017Summer/Solve/Doc/task2.html | 117 ----------
 4 files changed, 167 insertions(+), 288 deletions(-)
 create mode 100644 Klausuren/Sd1/2017Summer/Solve/Doc/.gitignore
 delete mode 100644 Klausuren/Sd1/2017Summer/Solve/Doc/task1.html
 delete mode 100644 Klausuren/Sd1/2017Summer/Solve/Doc/task2.html

diff --git a/Klausuren/Sd1/2017Summer/Solve/Doc/.gitignore b/Klausuren/Sd1/2017Summer/Solve/Doc/.gitignore
new file mode 100644
index 000000000..52357638c
--- /dev/null
+++ b/Klausuren/Sd1/2017Summer/Solve/Doc/.gitignore
@@ -0,0 +1,2 @@
+task1.html
+task2.html
diff --git a/Klausuren/Sd1/2017Summer/Solve/Doc/klausur.xml b/Klausuren/Sd1/2017Summer/Solve/Doc/klausur.xml
index e9960879d..9183b0ae2 100644
--- a/Klausuren/Sd1/2017Summer/Solve/Doc/klausur.xml
+++ b/Klausuren/Sd1/2017Summer/Solve/Doc/klausur.xml
@@ -1,5 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<book version="5.0" xml:id="klausur_SoSe_2017" xml:lang="de" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:trans="http://docbook.org/ns/transclusion" xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook">
+<book version="5.0" xml:id="klausur_SoSe_2017" xml:lang="de"
+      xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:trans="http://docbook.org/ns/transclusion"
+      xmlns:svg="http://www.w3.org/2000/svg"
+      xmlns:m="http://www.w3.org/1998/Math/MathML"
+      xmlns:html="http://www.w3.org/1999/xhtml"
+      xmlns:db="http://docbook.org/ns/docbook">
   <!-- saxon9he-xslt -s:klausur.xml -xsl:/usr/share/hdm-docbook-xsl/CustomLayer/Klausur/docbook2klausur.xsl -->
 
   <info>
@@ -20,19 +29,29 @@
     <section xml:id="aufgabe1_prepare">
       <title>Vorbereitung</title>
 
-      <para>Entpacken Sie das oben sichtbare Archiv <filename>exam.zip</filename> und importieren Sie den resultierenden Ordner <filename>Exam</filename> als <productname>Maven</productname> Projekt in Ihren <productname>Eclipse</productname> <foreignphrase xml:lang="en">Workspace</foreignphrase>.</para>
+      <para>Entpacken Sie das oben sichtbare Archiv
+      <filename>exam.zip</filename> und importieren Sie den resultierenden
+      Ordner <filename>Exam</filename> als <productname>Maven</productname>
+      Projekt in Ihren <productname>Eclipse</productname> <foreignphrase
+      xml:lang="en">Workspace</foreignphrase>.</para>
     </section>
 
     <section xml:id="aufgabe1_descr">
       <title>Beschreibung</title>
 
-      <para>Implementierung vorbereiteter Methoden gemäß <productname>Javadoc</productname> Beschreibungen und nachfolgend beschriebener Funktionalitäten. Sie bekommen bei unvollständiger Implementierung Teilpunkte.</para>
+      <para>Implementierung vorbereiteter Methoden gemäß
+      <productname>Javadoc</productname> Beschreibungen und nachfolgend
+      beschriebener Funktionalitäten. Sie bekommen bei unvollständiger
+      Implementierung Teilpunkte.</para>
     </section>
 
     <section xml:id="aufgabe1_task">
       <title>Aufgabe</title>
 
-      <para>Vervollständigen Sie die Implementierung aller Methoden aus folgenden Klassen im <foreignphrase xml:lang="en">package</foreignphrase> <package>de.hdm_stuttgart.mi.sd1.aufgabe1</package>:</para>
+      <para>Vervollständigen Sie die Implementierung aller Methoden aus
+      folgenden Klassen im <foreignphrase
+      xml:lang="en">package</foreignphrase>
+      <package>de.hdm_stuttgart.mi.sd1.aufgabe1</package>:</para>
 
       <itemizedlist>
         <listitem>
@@ -49,7 +68,10 @@
       </itemizedlist>
 
       <tip>
-        <para>Das <foreignphrase xml:lang="en">package</foreignphrase> <package>de.hdm_stuttgart.mi.sd1.aufgabe1</package> im Test Zweig Ihres Projekts enthält drei zugehörige <productname>Junit</productname> Testklassen:</para>
+        <para>Das <foreignphrase xml:lang="en">package</foreignphrase>
+        <package>de.hdm_stuttgart.mi.sd1.aufgabe1</package> im Test Zweig
+        Ihres Projekts enthält drei zugehörige
+        <productname>Junit</productname> Testklassen:</para>
 
         <itemizedlist>
           <listitem>
@@ -72,29 +94,50 @@
 
       <itemizedlist>
         <listitem>
-          <para>Für jede Methode stehen Ihnen in der zugehörigen Testklasse korrespondierende Tests zur Verfügung. Nutzen Sie diese!</para>
+          <para>Für jede Methode stehen Ihnen in der zugehörigen Testklasse
+          korrespondierende Tests zur Verfügung. Nutzen Sie diese!</para>
         </listitem>
 
         <listitem>
-          <para>Die von Ihnen erreichte Punktzahl richtet sich nach der Anzahl positiv bestandener Tests. Sie bekommen keine Punkte, wenn Ihre Implementierung in Bezug auf einen einzelnen Test lediglich <quote>fast richtig</quote> ist. Implementieren Sie im Zweifelsfall weniger Methoden, diese dafür aber vollständig.</para>
+          <para>Die von Ihnen erreichte Punktzahl richtet sich nach der Anzahl
+          positiv bestandener Tests. Sie bekommen keine Punkte, wenn Ihre
+          Implementierung in Bezug auf einen einzelnen Test lediglich
+          <quote>fast richtig</quote> ist. Implementieren Sie im Zweifelsfall
+          weniger Methoden, diese dafür aber vollständig.</para>
         </listitem>
 
         <listitem>
-          <para>Die <productname>Javadoc</productname> Kommentare der jeweiligen Methoden beschreiben das gewünschte Verhalten. Unter <link xlink:href="https://freedocs.mi.hdm-stuttgart.de/sd1SectMavenGenerateJavadoc.html">Generating Javadoc™ project documentation</link> finden Sie eine Anleitung zur Umwandlung in das HTML Format zwecks besserer Lesbarkeit.</para>
-
-          <para>Lesen Sie die (generierte) Dokumentation <emphasis role="bold">sehr genau</emphasis>.</para>
+          <para>Die <productname>Javadoc</productname> Kommentare der
+          jeweiligen Methoden beschreiben das gewünschte Verhalten. Unter
+          <link
+          xlink:href="https://freedocs.mi.hdm-stuttgart.de/sd1SectMavenGenerateJavadoc.html">Generating
+          Javadocâ„¢ project documentation</link> finden Sie eine Anleitung zur
+          Umwandlung in das HTML Format zwecks besserer Lesbarkeit.</para>
+
+          <para>Lesen Sie die (generierte) Dokumentation <emphasis
+          role="bold">sehr genau</emphasis>.</para>
         </listitem>
 
         <listitem>
-          <para>Beachten Sie alle Sonderfälle. Dazu zählen insbesondere <code>null</code> Werte von Variablen oder enthaltene <code>null</code> Werte in <foreignphrase xml:lang="en">Arrays</foreignphrase>.</para>
+          <para>Beachten Sie alle Sonderfälle. Dazu zählen insbesondere
+          <code>null</code> Werte von Variablen oder enthaltene
+          <code>null</code> Werte in <foreignphrase
+          xml:lang="en">Arrays</foreignphrase>.</para>
         </listitem>
 
         <listitem>
-          <para>Nutzen Sie den <foreignphrase xml:lang="en">Debugger</foreignphrase> oder logging <foreignphrase xml:lang="en">Statements</foreignphrase> im Fall fehlgeschlagener Testfälle.</para>
+          <para>Nutzen Sie den <foreignphrase
+          xml:lang="en">Debugger</foreignphrase> oder logging <foreignphrase
+          xml:lang="en">Statements</foreignphrase> im Fall fehlgeschlagener
+          Testfälle.</para>
         </listitem>
 
         <listitem>
-          <para>Die Ausführung von <package>de.hdm_stuttgart.mi.sd1.test</package>.<classname>ShowAllReachedPoints</classname> im Testzweig Ihres Projekts als <productname>Java</productname> Anwendung (nicht als Junit Test!) zeigt Ihnen zu jedem Zeitpunkt die in allen Programmieraufgaben bislang erreichten Punkte.</para>
+          <para>Die Ausführung von
+          <package>de.hdm_stuttgart.mi.sd1.test</package>.<classname>ShowAllReachedPoints</classname>
+          im Testzweig Ihres Projekts als <productname>Java</productname>
+          Anwendung (nicht als Junit Test!) zeigt Ihnen zu jedem Zeitpunkt die
+          in allen Programmieraufgaben bislang erreichten Punkte.</para>
         </listitem>
       </itemizedlist>
     </section>
@@ -102,42 +145,68 @@
     <section version="5.1" xml:id="uploadFirst" xml:lang="de">
       <title>Hochladen Ihrer Lösung in das Klausursystem</title>
 
-      <para>Exportieren Sie Ihre Implementierung dieser und weiterer Programmieraufgaben per Rechtsklick im <foreignphrase xml:lang="en">Package Explorer</foreignphrase> Ihres <productname>Eclipse</productname> Projekts. Klicken Sie im <foreignphrase xml:lang="en">Package Explorer</foreignphrase> (Maus Rechtsklick) auf Ihre Projektwurzel und exportieren Sie über das Kontextmenü <quote>Export</quote> → <quote>General</quote> → <quote>Archive File</quote> einen auf <filename>.zip</filename> endenden Archivnamen, z.B. <filename>solution_1.zip</filename>. Laden Sie danach <filename>solution_1.zip</filename> über die <quote><foreignphrase xml:lang="en">Upload</foreignphrase> File</quote> Funktion am unteren Seitenende des <productname>Ilias</productname> Klausursystems hoch. Wichtige Punkte:</para>
+      <para>Exportieren Sie Ihre Implementierung dieser und weiterer
+      Programmieraufgaben per Rechtsklick im <foreignphrase
+      xml:lang="en">Package Explorer</foreignphrase> Ihres
+      <productname>Eclipse</productname> Projekts. Klicken Sie im
+      <foreignphrase xml:lang="en">Package Explorer</foreignphrase> (Maus
+      Rechtsklick) auf Ihre Projektwurzel und exportieren Sie über das
+      Kontextmenü <quote>Export</quote> → <quote>General</quote> →
+      <quote>Archive File</quote> einen auf <filename>.zip</filename> endenden
+      Archivnamen, z.B. <filename>solution_1.zip</filename>. Laden Sie danach
+      <filename>solution_1.zip</filename> über die <quote><foreignphrase
+      xml:lang="en">Upload</foreignphrase> File</quote> Funktion am unteren
+      Seitenende des <productname>Ilias</productname> Klausursystems hoch.
+      Wichtige Punkte:</para>
 
       <itemizedlist>
         <listitem>
-          <para>Achten Sie auf vollständigen Export. Im Exportmenü können Sie (versehentlich) einzelne Ordner, wie z.B. <filename>src</filename>, abwählen. In diesem Fall wird Ihr Quellcode nicht in das Archiv <filename>solution_1.zip</filename> exportiert.</para>
+          <para>Achten Sie auf vollständigen Export. Im Exportmenü können Sie
+          (versehentlich) einzelne Ordner, wie z.B. <filename>src</filename>,
+          abwählen. In diesem Fall wird Ihr Quellcode nicht in das Archiv
+          <filename>solution_1.zip</filename> exportiert.</para>
         </listitem>
 
         <listitem>
-          <para>Wählen Sie beim Hochladen nicht die falsche Datei, etwa das Ausgangsarchiv <filename>exam.zip</filename> oder eine ältere Version Ihres Projekts.</para>
+          <para>Wählen Sie beim Hochladen nicht die falsche Datei, etwa das
+          Ausgangsarchiv <filename>exam.zip</filename> oder eine ältere
+          Version Ihres Projekts.</para>
         </listitem>
 
         <listitem>
-          <para>Kontrollieren Sie nach dem Hochladen die Sichtbarkeit Ihres <filename>solution_1.zip</filename> Archivs im Klausursystem.</para>
+          <para>Kontrollieren Sie nach dem Hochladen die Sichtbarkeit Ihres
+          <filename>solution_1.zip</filename> Archivs im Klausursystem.</para>
         </listitem>
 
         <listitem>
-          <para>Sie können mehrere Versionen <filename>solution_2.zip</filename> ... hochladen und bei Bedarf ältere im <productname>Ilias</productname> System löschen. Nur die zuletzt hochgeladene Version wird bewertet.</para>
+          <para>Sie können mehrere Versionen
+          <filename>solution_2.zip</filename> ... hochladen und bei Bedarf
+          ältere im <productname>Ilias</productname> System löschen. Nur die
+          zuletzt hochgeladene Version wird bewertet.</para>
         </listitem>
       </itemizedlist>
 
       <caution>
         <itemizedlist>
           <listitem>
-            <para>Reservieren Sie für den Vorgang des Hochladens ausreichend Zeit vor Klausurende.</para>
+            <para>Reservieren Sie für den Vorgang des Hochladens ausreichend
+            Zeit vor Klausurende.</para>
           </listitem>
 
           <listitem>
-            <para>Bearbeitungen, welche sich nach Klausurende lediglich auf Ihrem Arbeitsplatzrechner befinden, werden nicht gewertet.</para>
+            <para>Bearbeitungen, welche sich nach Klausurende lediglich auf
+            Ihrem Arbeitsplatzrechner befinden, werden nicht gewertet.</para>
           </listitem>
 
           <listitem>
-            <para>Laden Sie keine Projekte mit <productname>Java</productname> Syntaxfehlern hoch, diese werden nicht bewertet!</para>
+            <para>Laden Sie keine Projekte mit <productname>Java</productname>
+            Syntaxfehlern hoch, diese werden nicht bewertet!</para>
           </listitem>
 
           <listitem>
-            <para>Exportieren Sie Ihr Projekt nicht als <filename>.tgz</filename>, <filename>.java</filename>, <filename>.tar.gz</filename> <acronym>o.ä.</acronym>. Das Klausursystem akzeptiert nur Archive mit der Endung <filename>.zip</filename>.</para>
+            <para>Exportieren Sie Ihr Projekt immer als .zip Archiv: Andere
+            Endungen ergeben beim Hochladen den Fehler<emphasis role="bold">
+            »Error 9641k_2653 occurred«</emphasis>.</para>
           </listitem>
         </itemizedlist>
       </caution>
@@ -150,17 +219,30 @@
     <section xml:id="aufgabe2_prepare">
       <title>Vorbereitung</title>
 
-      <para>Falls Sie die erste Aufgabe »<xref linkend="task1"/>« bearbeitet haben, arbeiten Sie einfach an Ihrem <productname>Maven</productname> Projekt weiter. Ansonsten lesen Sie bitte die Anleitung in der Aufgabe »<xref linkend="task1"/>« zum <productname>Eclipse</productname> <productname>Maven</productname> Projektimport sowie weitere Hinweise zum Hochladen in das <productname>Ilias</productname> System.</para>
+      <para>Falls Sie die erste Aufgabe »<xref linkend="task1"/>« bearbeitet
+      haben, arbeiten Sie einfach an Ihrem <productname>Maven</productname>
+      Projekt weiter. Ansonsten lesen Sie bitte die Anleitung in der Aufgabe
+      »<xref linkend="task1"/>« zum <productname>Eclipse</productname>
+      <productname>Maven</productname> Projektimport sowie weitere Hinweise
+      zum Hochladen in das <productname>Ilias</productname> System.</para>
     </section>
 
     <section xml:id="aufgabe2_descr">
       <title>Beschreibung</title>
 
-      <para>Implementierung von Methoden und einer neuen Klasse zur Verwaltung von Ersatzteilen.</para>
+      <para>Implementierung von Methoden und einer neuen Klasse zur Verwaltung
+      von Ersatzteilen.</para>
 
-      <para>Das <productname>Maven</productname> Projektskelett enthält eine Klasse <classname>Ersatzteil</classname> im <foreignphrase xml:lang="en">Package</foreignphrase> <package>de.hdm_stuttgart.mi.sd1.aufgabe2</package>.</para>
+      <para>Das <productname>Maven</productname> Projektskelett enthält eine
+      Klasse <classname>Ersatzteil</classname> im <foreignphrase
+      xml:lang="en">Package</foreignphrase>
+      <package>de.hdm_stuttgart.mi.sd1.aufgabe2</package>.</para>
 
-      <para>Implementieren Sie die nachfolgend beschriebenen Funktionalitäten. Sie bekommen bei unvollständiger Implementierung Teilpunkte. Nutzen Sie zum Test Ihrer Implementierung die <productname>Junit</productname> Tests in <package>de.hdm_stuttgart.mi.sd1.test.aufgabe2</package>.<classname>Test_Ersatzteil</classname>.</para>
+      <para>Implementieren Sie die nachfolgend beschriebenen Funktionalitäten.
+      Sie bekommen bei unvollständiger Implementierung Teilpunkte. Nutzen Sie
+      zum Test Ihrer Implementierung die <productname>Junit</productname>
+      Tests in
+      <package>de.hdm_stuttgart.mi.sd1.test.aufgabe2</package>.<classname>Test_Ersatzteil</classname>.</para>
     </section>
 
     <section xml:id="aufgabe2_task">
@@ -168,7 +250,9 @@
 
       <orderedlist>
         <listitem>
-          <para>Ein Ersatzteil soll durch Angabe einer Teilenummer und einer Bezeichnung erstellt werden können. Wir betrachten ein Beispiel für das gewünschte Verhalten:</para>
+          <para>Ein Ersatzteil soll durch Angabe einer Teilenummer und einer
+          Bezeichnung erstellt werden können. Wir betrachten ein Beispiel für
+          das gewünschte Verhalten:</para>
 
           <programlisting language="java">final Ersatzteil kurbelwelle =
    new Ersatzteil(12345, "Kurbelwelle");
@@ -183,23 +267,40 @@ System.out.println(brandneu);</programlisting>
           <screen>Kurbelwelle, Teilenummer:12345
 Bezeichnung unbekannt, Teilenummer:54321</screen>
 
-          <para>Ergänzen Sie die Klasse <classname>Ersatzteil</classname> um einen passenden Konstruktor, <code>private</code> Attribute und eine <methodname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--">toString()</methodname> Methode.</para>
+          <para>Ergänzen Sie die Klasse <classname>Ersatzteil</classname> um
+          einen passenden Konstruktor, <code>private</code> Attribute und eine
+          <methodname
+          xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--">toString()</methodname>
+          Methode.</para>
 
           <tip>
             <itemizedlist>
               <listitem>
-                <para>Das Kontextmenü <quote><foreignphrase xml:lang="en">Source</foreignphrase></quote> → <quote>Override/Implement <foreignphrase xml:lang="en">Methods</foreignphrase>...</quote> in <productname>Eclipse</productname> und die <interfacename xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Override.html">@Override</interfacename> Annotation sind Ihre Freunde.</para>
+                <para>Das Kontextmenü <quote><foreignphrase
+                xml:lang="en">Source</foreignphrase></quote> →
+                <quote>Override/Implement <foreignphrase
+                xml:lang="en">Methods</foreignphrase>...</quote> in
+                <productname>Eclipse</productname> und die <interfacename
+                xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Override.html">@Override</interfacename>
+                Annotation sind Ihre Freunde.</para>
               </listitem>
 
               <listitem>
-                <para>Achten Sie im Hinblick auf die <productname>Junit</productname> Tests sehr genau auf Leerzeichen, Groß/Kleinschreibung etc. in der erzeugten Zeichenkette. Erbsenzähler[innen] sind im Vorteil!</para>
+                <para>Achten Sie im Hinblick auf die
+                <productname>Junit</productname> Tests sehr genau auf
+                Leerzeichen, Groß/Kleinschreibung etc. in der erzeugten
+                Zeichenkette. Erbsenzähler[innen] sind im Vorteil!</para>
               </listitem>
             </itemizedlist>
           </tip>
         </listitem>
 
         <listitem>
-          <para>Zwei Ersatzteil Instanzen sollen bezüglich <methodname>equals()</methodname> genau dann gleich sein, wenn ihre Teilenummern gleich sind. Die Bezeichnung der Teile soll irrelevant sein. Wir betrachten ein Beispiel für das gewünschte Verhalten:</para>
+          <para>Zwei Ersatzteil Instanzen sollen bezüglich
+          <methodname>equals()</methodname> genau dann gleich sein, wenn ihre
+          Teilenummern gleich sind. Die Bezeichnung der Teile soll irrelevant
+          sein. Wir betrachten ein Beispiel für das gewünschte
+          Verhalten:</para>
 
           <programlisting language="java">final Ersatzteil
       kurbelwelle = new Ersatzteil(12345, "Kurbelwelle"),
@@ -219,25 +320,42 @@ kurbelwelle gleich lenkrad? false</screen>
         </listitem>
 
         <listitem>
-          <para>Definieren Sie die <classname>Ersatzteil</classname>.<methodname>equals()</methodname> Methode dergestalt, dass sie in abgeleiteten Klassen nicht überschrieben werden <emphasis role="bold">kann</emphasis>.</para>
+          <para>Definieren Sie die
+          <classname>Ersatzteil</classname>.<methodname>equals()</methodname>
+          Methode dergestalt, dass sie in abgeleiteten Klassen nicht
+          überschrieben werden <emphasis role="bold">kann</emphasis>.</para>
         </listitem>
 
         <listitem>
-          <para>Leiten Sie eine Klasse <classname>Reifen</classname> von <classname>Ersatzteil</classname> im selben <foreignphrase xml:lang="en">Package</foreignphrase> (<emphasis>wichtig für zugehörige <productname>Junit</productname> Tests!</emphasis>) ab.</para>
-
-          <para>Für die Erzeugung von <classname>Reifen</classname> Instanzen soll neben der Teilenummer die maximal erlaubte Fahrgeschwindigkeit angegeben werden müssen. Die Teilebezeichnung in der Basisklasse <classname>Ersatzteil</classname> soll automatisch auf <code>"Reifen"</code> gesetzt werden:</para>
+          <para>Leiten Sie eine Klasse <classname>Reifen</classname> von
+          <classname>Ersatzteil</classname> im selben <foreignphrase
+          xml:lang="en">Package</foreignphrase> (<emphasis>wichtig für
+          zugehörige <productname>Junit</productname> Tests!</emphasis>)
+          ab.</para>
+
+          <para>Für die Erzeugung von <classname>Reifen</classname> Instanzen
+          soll neben der Teilenummer die maximal erlaubte Fahrgeschwindigkeit
+          angegeben werden müssen. Die Teilebezeichnung in der Basisklasse
+          <classname>Ersatzteil</classname> soll automatisch auf
+          <code>"Reifen"</code> gesetzt werden:</para>
 
           <programlisting language="java">final Reifen reifen =      // Reifen mit Teilenummer 1234 und Maximalgeschwindigkeit 160 Km pro Stunde,
    new Reifen(1234, 160);  // Die feste Teilebezeichnung <emphasis role="bold">"Reifen"</emphasis> wird in der
                            // Basisklasse <classname>Ersatzteil</classname> automatisch gesetzt.
 System.out.println(reifen);</programlisting>
 
-          <para>Nutzen Sie Ihre zuvor implementierte <classname>Ersatzteil</classname>.<methodname>toString()</methodname> Methode und überschreiben Sie diese in der Klasse <classname>Reifen</classname> geeignet, damit Sie folgende Ausgabe erhalten:</para>
+          <para>Nutzen Sie Ihre zuvor implementierte
+          <classname>Ersatzteil</classname>.<methodname>toString()</methodname>
+          Methode und überschreiben Sie diese in der Klasse
+          <classname>Reifen</classname> geeignet, damit Sie folgende Ausgabe
+          erhalten:</para>
 
           <screen>Reifen, Teilenummer:1234, Maximalgeschwindigkeit:160 Kmh</screen>
 
           <tip>
-            <para>Achten Sie auch diesmal sehr genau auf Leerzeichen, Groß/Kleinschreibung etc. in der erzeugten Zeichenkette. Erbsenzähler[innen] sind weiterhin im Vorteil!</para>
+            <para>Achten Sie auch diesmal sehr genau auf Leerzeichen,
+            Groß/Kleinschreibung etc. in der erzeugten Zeichenkette.
+            Erbsenzähler[innen] sind weiterhin im Vorteil!</para>
           </tip>
         </listitem>
       </orderedlist>
@@ -246,13 +364,20 @@ System.out.println(reifen);</programlisting>
     <section version="5.1" xml:id="uploadFollow" xml:lang="de">
       <title>Hochladen Ihrer Lösung in das Klausursystem</title>
 
-      <para>Laden Sie die Lösung dieser Aufgabe als gemeinsamen Projekt Export mit der ersten Aufgabe <xref linkend="task1"/> gemäß den dortigen Hinweisen hoch. Falls Sie die Aufgabe »<xref linkend="task1"/>« ebenfalls bearbeitet haben, enthält Ihr <foreignphrase xml:lang="en">Upload</foreignphrase> die Lösungen zu beiden Aufgaben.</para>
+      <para>Laden Sie die Lösung dieser Aufgabe als gemeinsamen Projekt Export
+      mit der ersten Aufgabe <xref linkend="task1"/> gemäß den dortigen
+      Hinweisen hoch. Falls Sie die Aufgabe »<xref linkend="task1"/>«
+      ebenfalls bearbeitet haben, enthält Ihr <foreignphrase
+      xml:lang="en">Upload</foreignphrase> die Lösungen zu beiden
+      Aufgaben.</para>
 
-      <para>Tragen Sie im Freitextfeld weiter unten genau einen der beiden Texte ein:</para>
+      <para>Tragen Sie im Freitextfeld weiter unten genau einen der beiden
+      Texte ein:</para>
 
       <itemizedlist>
         <listitem>
-          <para>Ich habe die aktuelle Aufgabe bearbeitet und erhoffe dafür Punkte.</para>
+          <para>Ich habe die aktuelle Aufgabe bearbeitet und erhoffe dafür
+          Punkte.</para>
         </listitem>
 
         <listitem>
diff --git a/Klausuren/Sd1/2017Summer/Solve/Doc/task1.html b/Klausuren/Sd1/2017Summer/Solve/Doc/task1.html
deleted file mode 100644
index 78792820f..000000000
--- a/Klausuren/Sd1/2017Summer/Solve/Doc/task1.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<html xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:trans="http://docbook.org/ns/transclusion" xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook"><body>
-    
-
-    
-
-    
-      <h1>Vorbereitung</h1>
-
-      <p>Entpacken Sie das oben sichtbare Archiv <span style="color: #810000;">exam.zip</span> und importieren Sie den resultierenden Ordner <span style="color: #810000;">Exam</span> als <emph>Maven</emph> Projekt in Ihren <emph>Eclipse</emph><span> </span><emph>Workspace</emph>.</p>
-    
-
-    
-      <h1>Beschreibung</h1>
-
-      <p>Implementierung vorbereiteter Methoden gemäß <emph>Javadoc</emph> Beschreibungen und nachfolgend beschriebener Funktionalitäten. Sie bekommen bei unvollständiger Implementierung Teilpunkte.</p>
-    
-
-    
-      <h1>Aufgabe</h1>
-
-      <p>Vervollständigen Sie die Implementierung aller Methoden aus folgenden Klassen im <emph>package</emph><span> </span><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace; color: #FB6019;">de.hdm_stuttgart.mi.sd1.aufgabe1</span>:</p>
-
-      <ul>
-        <li>
-          <p><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">HandyAbrechnung</span></p>
-        </li>
-
-        <li>
-          <p><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Helper</span></p>
-        </li>
-
-        <li>
-          <p><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">StringHaeufigkeiten</span></p>
-        </li>
-      </ul>
-
-      <div style="display: block; width: fit-content; border-radius: 10px; padding: 5px; border-style: solid; border-color: #CCCCCC; border-width: 1px; background-color: #DEFBDE;"><p>Hinweis:</p>
-        <p>Das <emph>package</emph><span> </span><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace; color: #FB6019;">de.hdm_stuttgart.mi.sd1.aufgabe1</span> im Test Zweig Ihres Projekts enthält drei zugehörige <emph>Junit</emph> Testklassen:</p>
-
-        <ul>
-          <li>
-            <p><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Test_HandyAbrechnung</span></p>
-          </li>
-
-          <li>
-            <p><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Test_Helper</span></p>
-          </li>
-
-          <li>
-            <p><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Test_StringHaeufigkeiten</span></p>
-          </li>
-        </ul>
-      </div>
-    
-
-    
-      <h1>Allgemeine Hinweise</h1>
-
-      <ul>
-        <li>
-          <p>Für jede Methode stehen Ihnen in der zugehörigen Testklasse korrespondierende Tests zur Verfügung. Nutzen Sie diese!</p>
-        </li>
-
-        <li>
-          <p>Die von Ihnen erreichte Punktzahl richtet sich nach der Anzahl positiv bestandener Tests. Sie bekommen keine Punkte, wenn Ihre Implementierung in Bezug auf einen einzelnen Test lediglich »fast richtig« ist. Implementieren Sie im Zweifelsfall weniger Methoden, diese dafür aber vollständig.</p>
-        </li>
-
-        <li>
-          <p>Die <emph>Javadoc</emph> Kommentare der jeweiligen Methoden beschreiben das gewünschte Verhalten. Unter <a href="https://freedocs.mi.hdm-stuttgart.de/sd1SectMavenGenerateJavadoc.html" target="_blank">Generating Javadoc™ project documentation</a> finden Sie eine Anleitung zur Umwandlung in das HTML Format zwecks besserer Lesbarkeit.</p>
-
-          <p>Lesen Sie die (generierte) Dokumentation <strong>sehr genau</strong>.</p>
-        </li>
-
-        <li>
-          <p>Beachten Sie alle Sonderfälle. Dazu zählen insbesondere <code style="font-size:90%; color:black; font-family: &#34;Lucida Console&#34;, Monaco, monospace; background-color: #F3ECFF;">null</code> Werte von Variablen oder enthaltene <code style="font-size:90%; color:black; font-family: &#34;Lucida Console&#34;, Monaco, monospace; background-color: #F3ECFF;">null</code> Werte in <emph>Arrays</emph>.</p>
-        </li>
-
-        <li>
-          <p>Nutzen Sie den <emph>Debugger</emph> oder logging <emph>Statements</emph> im Fall fehlgeschlagener Testfälle.</p>
-        </li>
-
-        <li>
-          <p>Die Ausführung von <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace; color: #FB6019;">de.hdm_stuttgart.mi.sd1.test</span>.<span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">ShowAllReachedPoints</span> im Testzweig Ihres Projekts als <emph>Java</emph> Anwendung (nicht als Junit Test!) zeigt Ihnen zu jedem Zeitpunkt die in allen Programmieraufgaben bislang erreichten Punkte.</p>
-        </li>
-      </ul>
-    
-
-    
-      <h1>Hochladen Ihrer Lösung in das Klausursystem</h1>
-
-      <p>Exportieren Sie Ihre Implementierung dieser und weiterer Programmieraufgaben per Rechtsklick im <emph>Package Explorer</emph> Ihres <emph>Eclipse</emph> Projekts. Klicken Sie im <emph>Package Explorer</emph> (Maus Rechtsklick) auf Ihre Projektwurzel und exportieren Sie über das Kontextmenü »Export« → »General« → »Archive File« einen auf <span style="color: #810000;">.zip</span> endenden Archivnamen, z.B. <span style="color: #810000;">solution_1.zip</span>. Laden Sie danach <span style="color: #810000;">solution_1.zip</span> über die »<emph>Upload</emph> File« Funktion am unteren Seitenende des <emph>Ilias</emph> Klausursystems hoch. Wichtige Punkte:</p>
-
-      <ul>
-        <li>
-          <p>Achten Sie auf vollständigen Export. Im Exportmenü können Sie (versehentlich) einzelne Ordner, wie z.B. <span style="color: #810000;">src</span>, abwählen. In diesem Fall wird Ihr Quellcode nicht in das Archiv <span style="color: #810000;">solution_1.zip</span> exportiert.</p>
-        </li>
-
-        <li>
-          <p>Wählen Sie beim Hochladen nicht die falsche Datei, etwa das Ausgangsarchiv <span style="color: #810000;">exam.zip</span> oder eine ältere Version Ihres Projekts.</p>
-        </li>
-
-        <li>
-          <p>Kontrollieren Sie nach dem Hochladen die Sichtbarkeit Ihres <span style="color: #810000;">solution_1.zip</span> Archivs im Klausursystem.</p>
-        </li>
-
-        <li>
-          <p>Sie können mehrere Versionen <span style="color: #810000;">solution_2.zip</span> ... hochladen und bei Bedarf ältere im <emph>Ilias</emph> System löschen. Nur die zuletzt hochgeladene Version wird bewertet.</p>
-        </li>
-      </ul>
-
-      <div style="display: block; width: fit-content; border-radius: 10px; padding: 5px; border-style: solid; border-color: #CCCCCC; border-width: 1px;                       background-color: #FFDFDF;"><p>Achtung:</p>
-        <ul>
-          <li>
-            <p>Reservieren Sie für den Vorgang des Hochladens ausreichend Zeit vor Klausurende.</p>
-          </li>
-
-          <li>
-            <p>Bearbeitungen, welche sich nach Klausurende lediglich auf Ihrem Arbeitsplatzrechner befinden, werden nicht gewertet.</p>
-          </li>
-
-          <li>
-            <p>Laden Sie keine Projekte mit <emph>Java</emph> Syntaxfehlern hoch, diese werden nicht bewertet!</p>
-          </li>
-
-          <li>
-            <p>Exportieren Sie Ihr Projekt nicht als <span style="color: #810000;">.tgz</span>, <span style="color: #810000;">.java</span>, <span style="color: #810000;">.tar.gz</span><span> </span><strong>o.ä.</strong>. Das Klausursystem akzeptiert nur Archive mit der Endung <span style="color: #810000;">.zip</span>.</p>
-          </li>
-        </ul>
-      </div>
-    
-  </body></html>
\ No newline at end of file
diff --git a/Klausuren/Sd1/2017Summer/Solve/Doc/task2.html b/Klausuren/Sd1/2017Summer/Solve/Doc/task2.html
deleted file mode 100644
index 67480852d..000000000
--- a/Klausuren/Sd1/2017Summer/Solve/Doc/task2.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<html xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:trans="http://docbook.org/ns/transclusion" xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook"><body>
-    
-
-    
-      <h1>Vorbereitung</h1>
-
-      <p>Falls Sie die erste Aufgabe »<span style="font-weight: bold;">Klassenmethoden</span>« bearbeitet haben, arbeiten Sie einfach an Ihrem <emph>Maven</emph> Projekt weiter. Ansonsten lesen Sie bitte die Anleitung in der Aufgabe »<span style="font-weight: bold;">Klassenmethoden</span>« zum <emph>Eclipse</emph><span> </span><emph>Maven</emph> Projektimport sowie weitere Hinweise zum Hochladen in das <emph>Ilias</emph> System.</p>
-    
-
-    
-      <h1>Beschreibung</h1>
-
-      <p>Implementierung von Methoden und einer neuen Klasse zur Verwaltung von Ersatzteilen.</p>
-
-      <p>Das <emph>Maven</emph> Projektskelett enthält eine Klasse <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Ersatzteil</span> im <emph>Package</emph><span> </span><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace; color: #FB6019;">de.hdm_stuttgart.mi.sd1.aufgabe2</span>.</p>
-
-      <p>Implementieren Sie die nachfolgend beschriebenen Funktionalitäten. Sie bekommen bei unvollständiger Implementierung Teilpunkte. Nutzen Sie zum Test Ihrer Implementierung die <emph>Junit</emph> Tests in <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace; color: #FB6019;">de.hdm_stuttgart.mi.sd1.test.aufgabe2</span>.<span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Test_Ersatzteil</span>.</p>
-    
-
-    
-      <h1>Aufgaben</h1>
-
-      <ol>
-        <li>
-          <p>Ein Ersatzteil soll durch Angabe einer Teilenummer und einer Bezeichnung erstellt werden können. Wir betrachten ein Beispiel für das gewünschte Verhalten:</p>
-
-          <pre style="display: block; width: fit-content; border-radius: 10px; padding: 5px; font-size:90%; font-family: 'Lucida Console', Monaco, monospace; background-color: #F3ECFF;">final Ersatzteil kurbelwelle =
-   new Ersatzteil(12345, "Kurbelwelle");
-System.out.println(kurbelwelle);
-      
-final Ersatzteil brandneu =     // Bezeichnung noch
-   new Ersatzteil(54321, null); // unbekannt. 
-System.out.println(brandneu);</pre>
-
-          <p>Dies soll folgende Ausgabe liefern:</p>
-
-          <pre style="display: block; width: fit-content; border-radius: 10px; padding: 5px; font-size:90%; font-family: 'Lucida Console', Monaco, monospace; background-color: #E7FFFE;">Kurbelwelle, Teilenummer:12345
-Bezeichnung unbekannt, Teilenummer:54321</pre>
-
-          <p>Ergänzen Sie die Klasse <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Ersatzteil</span> um einen passenden Konstruktor, <code style="font-size:90%; color:black; font-family: &#34;Lucida Console&#34;, Monaco, monospace; background-color: #F3ECFF;">private</code> Attribute und eine <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" target="_blank"><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #C29B07;">toString()</span></a> Methode.</p>
-
-          <div style="display: block; width: fit-content; border-radius: 10px; padding: 5px; border-style: solid; border-color: #CCCCCC; border-width: 1px; background-color: #DEFBDE;"><p>Hinweis:</p>
-            <ul>
-              <li>
-                <p>Das Kontextmenü »<emph>Source</emph>« → »Override/Implement <emph>Methods</emph>...« in <emph>Eclipse</emph> und die <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Override.html" target="_blank"><span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #B9B505;">@Override</span></a> Annotation sind Ihre Freunde.</p>
-              </li>
-
-              <li>
-                <p>Achten Sie im Hinblick auf die <emph>Junit</emph> Tests sehr genau auf Leerzeichen, Groß/Kleinschreibung etc. in der erzeugten Zeichenkette. Erbsenzähler[innen] sind im Vorteil!</p>
-              </li>
-            </ul>
-          </div>
-        </li>
-
-        <li>
-          <p>Zwei Ersatzteil Instanzen sollen bezüglich <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #C29B07;">equals()</span> genau dann gleich sein, wenn ihre Teilenummern gleich sind. Die Bezeichnung der Teile soll irrelevant sein. Wir betrachten ein Beispiel für das gewünschte Verhalten:</p>
-
-          <pre style="display: block; width: fit-content; border-radius: 10px; padding: 5px; font-size:90%; font-family: 'Lucida Console', Monaco, monospace; background-color: #F3ECFF;">final Ersatzteil
-      kurbelwelle = new Ersatzteil(12345, "Kurbelwelle"),
-   schwurbelwelle = new Ersatzteil(12345, "Schwurbelwelle"), // Tippfehler?
-          lenkrad = new Ersatzteil(54321, "Lenkrad");
-
-System.out.println("kurbelwelle gleich schwurbelwelle? " + 
-      kurbelwelle.equals(schwurbelwelle));
-     
-System.out.println("kurbelwelle gleich lenkrad? " + 
-      kurbelwelle.equals(lenkrad));</pre>
-
-          <p>Dies soll folgende Ausgabe liefern:</p>
-
-          <pre style="display: block; width: fit-content; border-radius: 10px; padding: 5px; font-size:90%; font-family: 'Lucida Console', Monaco, monospace; background-color: #E7FFFE;">kurbelwelle gleich schwurbelwelle? true
-kurbelwelle gleich lenkrad? false</pre>
-        </li>
-
-        <li>
-          <p>Definieren Sie die <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Ersatzteil</span>.<span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #C29B07;">equals()</span> Methode dergestalt, dass sie in abgeleiteten Klassen nicht überschrieben werden <strong>kann</strong>.</p>
-        </li>
-
-        <li>
-          <p>Leiten Sie eine Klasse <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Reifen</span> von <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Ersatzteil</span> im selben <emph>Package</emph> (<strong>wichtig für zugehörige <emph>Junit</emph> Tests!</strong>) ab.</p>
-
-          <p>Für die Erzeugung von <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Reifen</span> Instanzen soll neben der Teilenummer die maximal erlaubte Fahrgeschwindigkeit angegeben werden müssen. Die Teilebezeichnung in der Basisklasse <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Ersatzteil</span> soll automatisch auf <code style="font-size:90%; color:black; font-family: &#34;Lucida Console&#34;, Monaco, monospace; background-color: #F3ECFF;">"Reifen"</code> gesetzt werden:</p>
-
-          <pre style="display: block; width: fit-content; border-radius: 10px; padding: 5px; font-size:90%; font-family: 'Lucida Console', Monaco, monospace; background-color: #F3ECFF;">final Reifen reifen =      // Reifen mit Teilenummer 1234 und Maximalgeschwindigkeit 160 Km pro Stunde,
-   new Reifen(1234, 160);  // Die feste Teilebezeichnung <strong>"Reifen"</strong> wird in der
-                           // Basisklasse <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Ersatzteil</span> automatisch gesetzt.
-System.out.println(reifen);</pre>
-
-          <p>Nutzen Sie Ihre zuvor implementierte <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Ersatzteil</span>.<span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #C29B07;">toString()</span> Methode und überschreiben Sie diese in der Klasse <span style="font-size:90%; font-family: 'Lucida Console', Monaco, monospace;color: #FB9C19;">Reifen</span> geeignet, damit Sie folgende Ausgabe erhalten:</p>
-
-          <pre style="display: block; width: fit-content; border-radius: 10px; padding: 5px; font-size:90%; font-family: 'Lucida Console', Monaco, monospace; background-color: #E7FFFE;">Reifen, Teilenummer:1234, Maximalgeschwindigkeit:160 Kmh</pre>
-
-          <div style="display: block; width: fit-content; border-radius: 10px; padding: 5px; border-style: solid; border-color: #CCCCCC; border-width: 1px; background-color: #DEFBDE;"><p>Hinweis:</p>
-            <p>Achten Sie auch diesmal sehr genau auf Leerzeichen, Groß/Kleinschreibung etc. in der erzeugten Zeichenkette. Erbsenzähler[innen] sind weiterhin im Vorteil!</p>
-          </div>
-        </li>
-      </ol>
-    
-
-    
-      <h1>Hochladen Ihrer Lösung in das Klausursystem</h1>
-
-      <p>Laden Sie die Lösung dieser Aufgabe als gemeinsamen Projekt Export mit der ersten Aufgabe <span style="font-weight: bold;">Klassenmethoden</span> gemäß den dortigen Hinweisen hoch. Falls Sie die Aufgabe »<span style="font-weight: bold;">Klassenmethoden</span>« ebenfalls bearbeitet haben, enthält Ihr <emph>Upload</emph> die Lösungen zu beiden Aufgaben.</p>
-
-      <p>Tragen Sie im Freitextfeld weiter unten genau einen der beiden Texte ein:</p>
-
-      <ul>
-        <li>
-          <p>Ich habe die aktuelle Aufgabe bearbeitet und erhoffe dafür Punkte.</p>
-        </li>
-
-        <li>
-          <p>Ich habe die aktuelle Aufgabe nicht bearbeitet.</p>
-        </li>
-      </ul>
-    
-  </body></html>
-- 
GitLab