Uebungsaufgaben
Uebungsaufgaben
Uebungsaufgaben
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Aufgabe 51 'Studentenverwaltung' CFATDSLP ****<br />
Diese Aufgabe wird sie während mehreren Lektionen beschäftigen. Ihr Programm wird im Laufe der Zeit ständig<br />
erweitert und umfangreicher, versuchen Sie deshalb von Anfang sauber zu Programmieren. Kommentare und<br />
Struktogramme gehören grundsätzlich ebenfalls zur Lösung der Aufgaben.<br />
Aufgabe 1<br />
Definieren sie eine Struktur, in welcher folgende Studentendaten abgelegt werden können:<br />
Name (String bis 30 Zeichen), Vorname (String bis 30 Zeichen), Notendurchschnitt (float) und<br />
Geburtsdatum (Tag, Monat, Jahr). Auch das Datum soll in einer (unter-) Strukturvariablen abgelegt werden.<br />
Schreiben Sie ein Programm, das die zwei Funktionen ReadStudentData() und WriteStudentData()<br />
enthält. Die Funktion ReadStudentData() soll die Daten eines Studenten von der Tastatur einlesen, und an<br />
den Aufrufer (in einer Strukturvariablen) zurückliefern. Zudem soll sie dem Aufrufer mitteilen, ob die<br />
Eingabe korrekt erfolgt ist, oder ob die Eingabe vom Benutzer abgebrochen wurde. (Z. B. indem der<br />
Notendurchschnitt auf -1 gesetzt wird).<br />
Die Funktion WriteStudentData() erhält als Argument eine Studentenstrukturvariable und soll Name,<br />
Vorname, Notendurchschnitt und Geburtsdatum des Studenten auf dem Bildschirm ausgeben.<br />
Schreiben Sie ein Hauptprogramm main(), das die Informationen zu einem Studenten einliest und<br />
anschliessend wieder ausgibt. Dazu sollen die beiden oben beschriebenen Funktionen verwendet werden.<br />
Wenn die Eingabe abgebrochen wurde, soll auf die Ausgabe verzichtet werden, und eine entsprechende<br />
Fehlermeldung ausgegeben werden.<br />
Aufgabe 2<br />
Erweitern Sie das Programm aus Aufgabe 1 so, dass bis zu 10 Studenten verwaltet werden können. Die<br />
Studentendaten sollen in einem Array abgelegt werden. Es sollen die Daten von bis zu 10 Studenten<br />
eingegeben werden können. Bei der Ausgabe sollen entweder alle Studenten, oder nur die Studenten<br />
unterhalb eines bestimmten, vom Benutzer einzugebenden Notendurchschnitts ausgegeben werden.<br />
Erweitern Sie das Programm um ein kleines Menu, in welchem der Benutzer auswählen kann ob er<br />
Studenten eingeben, alle Studenten ansehen, nur Studenten unterhalb eines bestimmten Schnitts ansehen,<br />
alle Einträge löschen oder das Programm verlassen will. (Denken Sie daran, das Menu wird im weiteren<br />
Verlauf dieser Aufgabe ständig erweitert)<br />
Aufgabe 3<br />
Erweitern Sie das Programm um die Möglichkeit, nach einem bestimmten Eintrag zu suchen, und diesen<br />
Anzuzeigen, wenn er gefunden wird.<br />
Aufgabe 4<br />
Erweitern Sie das Programm um die Möglichkeit, die Einträge nach Namen oder nach Notendurchschnitt zu<br />
sortieren und sortiert auszugeben. Erweitern Sie das Programm um die Möglichkeit, bestimmte Einträge zu<br />
löschen oder zu ändern. Verwenden Sie Zeiger um Einträge im Array zu suchen (Z. B. Beim Sortieren).<br />
Aufgabe 5<br />
Erweitern Sie das Programm um Funktionen zum Laden und Abspeichern von Studentendaten (Load und<br />
Save). Es sollen jeweils alle Daten in eine Datei abgespeichert werden und zu einem späteren Zeitpunkt<br />
wieder eingelesen werden können. Teilen Sie das Programm sinnvoll in Module auf. (Ein-Ausgabe,<br />
Laden/Speichern...)<br />
Aufgabe 6<br />
Erweitern Sie das Programm um dynamische Funktionen. Die Studenten sollen nicht mehr in einem Array,<br />
sondern in einer Liste verwaltet werden. Die Listenelemente sollen nach bedarf alloziert und wieder<br />
freigegeben werden. (Ein Modul mit Listenfunktionen wird zur Verfügung gestellt). Einträge sollen beliebig<br />
gelöscht oder hinzugefügt werden können.<br />
Aufgabe 7<br />
Erweitern Sie das Programm mit eigenen Ideen.<br />
Aufgabe 52 'Zeilen drehen'<br />
CFATD ****<br />
Schreiben Sie ein Programm, das eine beliebige Anzahl Zeilen einliest, und diese anschliessend in umgekehrter<br />
Reihenfolge ausgibt. (Das Ende der Eingaben wird durch eine Leere Zeile angezeigt).<br />
<strong>Uebungsaufgaben</strong> Informatik (23.09.2010, I. Oesch) 9