From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- Bachelor/Prog2/Prakt3/index.htm | 231 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 Bachelor/Prog2/Prakt3/index.htm (limited to 'Bachelor/Prog2/Prakt3/index.htm') diff --git a/Bachelor/Prog2/Prakt3/index.htm b/Bachelor/Prog2/Prakt3/index.htm new file mode 100644 index 0000000..bbd2dfb --- /dev/null +++ b/Bachelor/Prog2/Prakt3/index.htm @@ -0,0 +1,231 @@ + + + + +Praktikum 3 + + + + + + + + + + + + + +
 
FH Darmstadt  +
FB Informatik  +
Prof.Dr. H.P.Weber
+
Programmieren II  +
Praktikum
+
+
3
+
+ +
+ + + + +
Ziel: +Sie sollen Dateien ein- und auslesen und die enthaltenen Daten weiter verarbeiten können.  +
+ +
+
+ + + + + + + + + + + + +
+

+1    Einlesen einer Binärdatei und Weiterverarbeitung ihrer Daten

+
+Der Spielleiter der Tischtennis-Bezirksklasse möchte +den aktuellen Tabellenstand des Spielbetriebs darstellen lassen. Eine Datei + mit dem +aktuellen Stand aller Mannschaften steht hierfür zur Verfügung; allerdings noch nicht + in Form einer sortierten Tabelle. Die Mannschaftsdaten liegen als Binärdatei +vor. Die nebenstehende Abbildung zeigt die verwendete Datenstruktur. Der in der +Datei vorhandene C-String für 'teamName' ist in den einzelnen Datensätzen +unterschiedlich lang und enthält jeweils als letztes Zeichen eine binäre Null.

Als Hexadezimal-Darstellung sieht das +dann beispielsweise so aus - zu sehen ist zu Beginn der Datei der TSV Auerbach (teamName) mit 18 Spielen (matchesPlayed), +64:86 Sätzen (gamesWon : gamesLost) und 14:22 Punkten (pointsWon : pointsLost).

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributDatentyp
teamName std::string
matchesPlayedint
gamesWonint
gamesLostint
pointsWonint
pointsLostint
+
+ +

Technische Hinweise:   +

Entwerfen Sie ein Anwendungsprogramm, das +

    +
  • +die Daten dieser Datei in eine Tabelle einliest, sie am Bildschirm ausgibt, +innerhalb der Tabelle sortiert und danach nochmals am Bildschirm ausgibt und +
  • +
  • +die sortierte Tabelle in einer Textdatei speichert. +
  • +
+ +Sehen Sie folgende Klassen vor: +
Team   hat die oben dargestellte + Attributstruktur, die zur binären Eingabedatei passt,
Table   enthält einen vector<Team> + (mit allen Mannschaften) als Attribut.
+Zum Sortieren der Mannschaften innerhalb der Tabelle können Sie einen +beliebigen Sortieralgorithmus verwenden. Die Reihenfolge +der Mannschaften in der sortierten Tabelle wird bestimmt durch +
    +
  1. +die Anzahl der gewonnenen Punkte (pointsWon)
  2. + +
  3. +bei Gleichheit: Anzahl der verlorenen Punkte (pointsLost)
  4. + +
  5. +bei Gleichheit: Differenz der Satzresultate (gamesWon - gamesLost)
  6. + +
  7. +bei Gleichheit: ursprüngliche Reihenfolge
  8. +
+ + +
+ +
+
+
+ + + + + + + + + + +
+

+2    Bestandsliste (fakultativ)

+ +

+

+Für eine Eisenwarenhandlung soll eine Bestandsliste geführt werden, die +Auskunft über die vorhandenen Werkzeuge (toolName) einschließlich Stückzahl im +Lager (inStock) und Einzelpreis (unitPrice) gibt. Schreiben Sie ein Programm, das menügesteuert +
    +
  • die Binärdatei +(Random Access File) "tools.dta" + mit 100 leeren Records initialisiert, +
  • +
  • +die Eingabe der Daten für jedes Werkzeug erlaubt, +
  • +
  • +alle Werkzeuge mit ihren Daten auflistet, +
  • +
  • +das Löschen eines nicht mehr benötigten Records ermöglicht +
  • +
  • +und die Aktualisierung jeder Information in der Datei erlaubt. +
  • +
+ +

Die partNumber jedes Werkzeugs soll auch die Record-Nummer sein. +
+Benutzen Sie diese Datei zum Testen Ihres Programms. + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributDatentyp
partNumber int
toolNamechar[30]
inStockint
unitPricedouble
+
+ + + \ No newline at end of file -- cgit v1.2.3