Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/Studentendatenbank/Musterlösung: Unterschied zwischen den Versionen

(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...“)
(kein Unterschied)

Version vom 19. September 2009, 13:14 Uhr

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 ;)