![]() Vorherige Seite |
![]() Eine Ebene hoch |
![]() Nächste Seite |
---|
In dem folgenden Programm werden Vorname und Nachname, sowie Geburtsjahr, Geburtsmonat und Geburtstag in einer Struktur zusammengefasst. Zu dem Programm gehören die Funktion GetAdr zur Eingabe dieser Daten und die Funktion PrintAdr, welche die Daten auf dem Bildschirm ausgibt.
Außerdem wurden zwei Funktionen verwendet, die eine fehlerfreie Eingabe der Datenfelder ermöglicht: GetInt und GetZeile. Da diese Funktionen nicht Gegenstand des hier behandelten Themas sind, werden sie nur im Anhang (Abschnitt A1.3) für den interessierten Leser beigefügt. Die Deklarationen der beiden Funktionen befindet sich in der Datei Eingabe.h und hat folgenden Inhalt:
int GetInt(char *Text, int Min, int Max); void GetZeile(char *Text, int MaxSize, char *Zeile);
Der eigentliche Inhalt des Programms folgt hier:
#include <stdio.h> #include "Eingabe.h" #define NAME_SIZE 20 struct Adresse { char Vorname[NAME_SIZE+1]; char Nachname[NAME_SIZE+1]; int GebJahr; char GebMon; char GebTag; }; void GetAdr(struct Adresse *Adr); void PrintAdr(struct Adresse Adr); int main() { struct Adresse Adr; GetAdr(&Adr); PrintAdr(Adr); return 0; } void GetAdr(struct Adresse *ad) { int Tage=31; GetZeile("Geben Sie den Nachnamen ein", NAME_SIZE, ad->Nachname); GetZeile("Geben Sie den Vornamen ein", NAME_SIZE, ad->Vorname); ad->GebJahr = GetInt("Geben Sie das Geburtsjahr ein",1900, 2002); ad->GebMon = GetInt("Geben Sie den Geburtsmonat ein", 1, 12); switch(ad->GebMon) { case 4: case 6: case 9: case 11: Tage = 30; break; case 2: if((ad->GebJahr%4==0&&ad->GebJahr%100!=0) ||ad->GebJahr%400==0) Tage = 29; else Tage = 28; break; } ad->GebTag = GetInt("Geben Sie den Geburtstag ein", 1, Tage); } void PrintAdr(struct Adresse a) { printf("Name: %s %s\n", a.Vorname, a.Nachname); printf("Geburtsdatum: %02d.%02d.%04d\n", a.GebTag, a.GebMon, a.GebJahr); }