Dipl.Phys. Gerald Kempfer Beuth Hochschule für Technik Berlin - University of Applied Sciences - Fachbereich VI – Informatik und Medien Studiengang Technische Informatik Bachelor
Lehrveranstaltung "Informatik II für TI-Bachelor" Übungsblatt 4
Hinweise: Dieses Übungsblatt ist zur Zulassung zu der Klausur erfolgreich zu bearbeiten ("Erfolg- reich" bedeutet: Keine Programmabstürze bzw. Endlosschleifen, Aufgabenstellung ein- schließlich der Nebenbedingungen müssen eingehalten sowie Kommentierung und Ein- rückung korrekt sein!). Für die Abgabe der Lösung laden Sie bitte Ihre erstellen Quelltextdateien in Moodle hoch (nur Dateiendungen *.c, *.h, *.zip und *.rar erlaubt). Der Abgabetermin für diese Aufgabe ist der 04. Juni 2021; letzte Abgabemöglichkeit ist der 18. Juni 2021.
Aufgabe: In der vierten Übungsaufgabe des Projektes “Mannschafts-Verwaltung“ sollen die Daten beim Beenden des Programms in einer Datei gespei- chert werden, damit sie beim nächsten Programmstart wieder eingelesen werden können. Für das Laden und Speichern der Daten sollen einige Funktionen in ei- nem neuen Modul database.c erstellt werden. Erzeugen Sie das Modul (C- und Headerdatei) und passen Sie das Projekt an. Das Speichern der Daten soll im neuen Modul die Funktion save über- nehmen. Hier soll nach dem erfolgreichen Öffnen der Datei die erste Zei- le mit der Startkennung der Daten (; siehe Beispiel) geschrieben werden. Dann werden in einer Schleife die Daten der einzelnen Mann- schaften geschrieben; das Schreiben einer Mannschaft kann eine Funkti- on namens saveTeam übernehmen (diese Funktion erhält als Parameter den Datenstrom der offenen Datei). Nach der Startkennung einer Mann- schaft (
Seite 1 von 4 G. Kempfer, BHT Berlin, TI-B IN2, Übungsblatt 4 Durch die Start- und Endkennungen können die Felder in beliebiger Rei- henfolge stehen. Ferner kann darüber beim Einlesen geprüft werden, ob die Struktur der Daten gültig ist. Um die Datenbank kontrollieren zu kön- nen, sollte auf eine Verschlüsselung der Daten verzichtet werden. Über- legen Sie sich, welche Maßnahmen noch nötig sind, um angemessen auf eine fehlerhafte Datenbank zu reagieren. Was muss getan werden, wenn in einem Datensatz ein Feld fehlt (z.B. fehlen in der Beispieldatenbank mehrere Felder), damit dieser Datensatz trotzdem noch korrekt eingele- sen und angezeigt werden kann. Wem diese ganze Beschreibung zu kompliziert ist, guckt sich am besten erst das unten stehende Beispiel an; dies sollte vieles erklären. Noch ein paar Hinweise: 1. Nach dem Laden und Speichern sollte die Datei natürlich jeweils wie- der geschlossen werden. 2. Das Laden der Daten erfolgt bei Programmstart; das Speichern (optio- nal mit Benutzerabfrage) bei Programmende. Wer möchte, kann alterna- tiv Laden und Speichern als Menüpunkte einbauen (das Laden sollte dann die Daten zu den bereits eingegebenen Daten hinzufügen!). 3. Vor dem Einlesen eines jeden Datensatzes sollten die Felder mit Nul- len (0 bzw. NULL) gefüllt werden. 4. Bei Programmende müssen natürlich (sofern nicht bereits in der vori- gen Übungsaufgabe erledigt) alle reservierten Speicherbereiche wieder freigegeben werden! 5. Beim Einlesen kann immer eine ganze Zeile eingelesen werden. Um herauszufinden, welche Daten in der Zeile stehen (dieser Vorgang wird „parsen“ genannt), kann z.B. die Funktion strncmp aus der string.h verwendet werden; z.B. wird mit if (strncmp(Zeile, "
Seite 2 von 4 G. Kempfer, BHT Berlin, TI-B IN2, Übungsblatt 4
Auszug der Beispieldatei:
...
Seite 3 von 4 G. Kempfer, BHT Berlin, TI-B IN2, Übungsblatt 4
Ausgabe der Beispieldaten:
Liste der Mannschaften ======
Name : 1. FC Union Berlin Trainer : Urs Fischer Anzahl Spieler : 11 Spieler: 01. Andreas Luthe (1; * 10.03.1987) 02. Marvin Friedrich (5; * 13.12.1995) 03. Robin Knoche (31; * 22.05.1992) 04. Christopher Trimmel (28; * 24.02.1987) 05. Nico Schlotterbeck (4; * 01.12.1999) 06. Robert Andrich (30; * 22.09.1994) 07. Sebastian Griesbeck (33; * 03.10.1990) 08. Christian Genther (34; * 14.08.1985) 09. Taiwo Awoniyi (14; * 12.08.1997) 10. Max Kruse (10; * 19.03.1988) 11. Joel Pohjanpalo (9; * 13.09.1994)
Name : Hertha BSC Trainer : Pal Dardai Anzahl Spieler : 11 Spieler: 01. Alexander Schwolow (1; * 02.06.1992) 02. Niklas Stark (5; * 14.04.1995) 03. Maximailian Mittelstaedt (17; * 18.03.1997) 04. Peter Pekarik (2; * 30.10.1986) 05. Marvin Plattenhardt (21; * 26.01.1992) 06. Lukas Kluenter (13; * 26.05.1996) 07. Dodi Lukebakio (11; * 24.09.1997) 08. Vlademir Darida (6; * 08.08.1990) 09. Krzysztof Piatek (9; * 01.07.1995) 10. Matheus Cunha (10; * 27.05.1999) 11. Jhon Cordoba (15; * 11.05.1993)
Seite 4 von 4