Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 // 6_1_KKarte als Struct // // demonstriert structs // Bei Behandlung von "Randfällen" nicht robust. // Fehlerhaft !? #include const char ZeilenEnde.

Ähnliche Präsentationen


Präsentation zum Thema: "1 // 6_1_KKarte als Struct // // demonstriert structs // Bei Behandlung von "Randfällen" nicht robust. // Fehlerhaft !? #include const char ZeilenEnde."—  Präsentation transkript:

1 1 // 6_1_KKarte als Struct // // demonstriert structs // Bei Behandlung von "Randfällen" nicht robust. // Fehlerhaft !? #include const char ZeilenEnde = '\n', Null = '\0'; const int autorMax = 75, titelMax = 100, verlagMax = 128; struct BuchDaten { int jahr, seiten; float preis; }; Ausführen

2 2 struct karteikarte { char autor[autorMax]; char titel[titelMax]; char verlag[verlagMax]; BuchDaten dieDaten; }; //Funktionsprototypen int GanzeZahlLesen(char *); float ReelleZahlLesen(char *); void LiesBuchDaten (BuchDaten *); void AngabeLesen(char *, char *, int); void KarteLesen(int, karteikarte *); void AutorAusgeben(karteikarte *); void TitelAusgeben(karteikarte *); const n=2;

3 3 int main() { karteikarte kartei[n],*zk; int i; cout << "Eingabe der Kartei-Karten:\n"; for (int i=0;i<n;i++) KarteLesen(i, &kartei[i]); zk = kartei; cout << "\nAusgabe der Autoren:\n"; for (i=0;i<n;i++) { AutorAusgeben(zk); TitelAusgeben(zk++); } cout << '\n' << "Fertig!" << endl; return 0; // }

4 4 int GanzeZahlLesen(char * prompt) { int i; char unnuetz; // wird gebraucht, // um \n aus Tastaturpuffer zu entfernen! cout << prompt << "(ganze Zahl)\t"; cin >> i; unnuetz=getchar(); // entfernt \n aus Tastaturpuffer! return i; } float ReelleZahlLesen(char * s) { float fl; char unnuetz; // wird gebraucht um \n aus //Tastaturpuffer zu entfernen! while (*s != Null) putchar(*s++); // Alternative zur Verwendung in GanzeZahlLesen cout << "(reelle Zahl)\t"; cin >> fl; unnuetz=getchar(); // entfernt \n aus Tastaturpuffer! return fl; }

5 5 void AngabeLesen(char * prompt, char * angabe, int maxWert){ int i = 0; cout << prompt << "(Zeichenkette)\t"; for (i = 0; (angabe[i] = getchar()) != ZeilenEnde && i < maxWert; i++); if (i <= maxWert) angabe[i] = Null; } void LiesBuchDaten (BuchDaten *bd) { bd->jahr = GanzeZahlLesen ("Jahr: "); bd->seiten = GanzeZahlLesen ("Seiten: "); bd->preis = ReelleZahlLesen ("Preis: "); } void KarteLesen(int i, karteikarte * k){ cout << "Buch Nr. :" << (i + 1) << endl; AngabeLesen("Autor: ", k->autor, autorMax); AngabeLesen("Titel: ", k->titel, titelMax); AngabeLesen("Verlag : ", k->verlag, verlagMax); LiesBuchDaten (&(k->dieDaten)); }

6 6 void AutorAusgeben(karteikarte * k){ cout << "Autor : " autor << '\n'; } void TitelAusgeben(karteikarte * k){ cout << "Titel : " titel << '\n'; }


Herunterladen ppt "1 // 6_1_KKarte als Struct // // demonstriert structs // Bei Behandlung von "Randfällen" nicht robust. // Fehlerhaft !? #include const char ZeilenEnde."

Ähnliche Präsentationen


Google-Anzeigen