C-Kurs/Studentendatenbank/Musterlösung
< C-Kurs | Studentendatenbank
Version vom 19. September 2009, 13:14 Uhr von Alexander Kührmann (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=== Musterlösung === <pre> #include <stdlib.h> #include <stdio.h> #include <string.h> #define ANZAHL 10 →Teil a: struct student { int mat_nr; char vorna...“)
Musterlösung
#include <stdlib.h> #include <stdio.h> #include <string.h> #define ANZAHL 10 /* Teil a */ struct student { int mat_nr; char vorname[25]; char nachname[25]; }; /* Teil b */ print_student(struct student *studi) { printf("Matr.Nr.: %i, Vorname: %s, Nachname: %s\n", studi->mat_nr, studi->vorname, studi->nachname); } /* Teil c */ print_studenten_db(struct student **db) { int i; for (i=0; i<ANZAHL; i++) { if (db[i] != NULL) { print_student(db[i]); } } } /* Teil e */ clear_db(struct student **db) { int i; for (i=0; i<ANZAHL; i++) { if (db[i] != NULL) { free(db[i]); db[i] = NULL; } } } int main() { /* Teil b*/ printf("Teil b\n"); struct student *ein_student = malloc(sizeof(struct student)); ein_student->mat_nr = 123456; strcpy(ein_student->vorname, "Max"); strcpy(ein_student->nachname, "Mustermann"); print_student(ein_student); /* Teil c */ printf("Teil c\n"); struct student *alle_studenten[ANZAHL]; int i; for (i=0; i<ANZAHL; i++) { alle_studenten[i] = NULL; } alle_studenten[0] = ein_student; print_studenten_db(alle_studenten); /* Teil d */ printf("Teil d\n"); alle_studenten[1] = malloc(sizeof(struct student)); alle_studenten[1]->mat_nr=653321; strcpy(alle_studenten[1]->vorname, "Herbert"); strcpy(alle_studenten[1]->nachname, "Meier"); alle_studenten[2] = malloc(sizeof(struct student)); alle_studenten[2]->mat_nr=765431; strcpy(alle_studenten[2]->vorname, "Hubertine"); strcpy(alle_studenten[2]->nachname, "Schulze"); free(alle_studenten[0]); alle_studenten[0] = NULL; print_studenten_db(alle_studenten); /* Teil e */ clear_db(alle_studenten); }
Kommentare
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)