![]() |
Anzeige:
|
|
|||||||
| C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hallo, habe folgendes Programm(siehe unten), jetzt soll ich das Programm implementieren, was ist damit gemeint, kann mir jemand zu mein Prog ein Bsp machen oder Tipps geben:
Genauer Auftrag lautet: 2.Funktionen (implementiert in externen Modulen): # include <stdio.h> # include <string.h> # include <stdlib.h> # include <conio.h> #define MAX 10 typedef struct { char titel [20]; char schlagwort [20]; char autor [20]; char isbn [20]; } BUCH; ////////////////////////////////////////// // Prototypen der Funktionen: BUCH* heap_reservieren( int ); int eingeben ( BUCH*, int ); int einlesen ( BUCH*, FILE* ); int speichern ( int, BUCH*, FILE* ); void sortieren ( int, BUCH* ); void suchen ( int, BUCH* ); void zeigen ( int, BUCH* ); /////////////////////////////////////////// // Globale Daten char datei [] = "bibliothek.dat"; /////////////////////////////////////////////////////////////////////// int main (){ BUCH* bibliothek = NULL; FILE* fin = NULL; FILE* fout = NULL; char z = '0'; int aktAnzahl = 0; /////////////////////////////////////////////////////////////////// // Datenbank oeffnen und automatisch einlesen bibliothek = heap_reservieren(MAX); // Dynamischen Vektor anlegen aktAnzahl = einlesen ( bibliothek, fin); //////////////////////////////////////////////////////////// // Bildschirmmaske aufbauen do { //clrscr(); system("COLOR 0b"); printf("\n==================================\n" " Bitte waehlen Sie aus: \n" " 1. Eingabe (Tastatur) \n" " 2. Einlesen (Datei) \n" " 3. Zeigen (Bildschirm) \n" " 4. Speichern (Datei) \n" " 5. Sortieren \n" " 6. Suchen \n" " 7. EXIT \n" "==================================\n" "Ihre Wahl -> "); /////////////////////////// // 2. Nutzereingabe lesen: z = getche(); fflush(stdin); clrscr(); /////////////////////////// // 3. Analyse der Nutzereingabe // und Funktionsaufrufe switch( z ) { case '1': aktAnzahl = eingeben (bibliothek, aktAnzahl); break; case '2': // 2. Einlesen (Datei) aktAnzahl = einlesen( bibliothek, fin ); break; case '3': // 3. Ausgabe (Bildschirm) ersonen[0]), compare ); zeigen (aktAnzahl, bibliothek); break; case '4': // 4. Speichern (Datei) speichern( aktAnzahl, bibliothek, fout ); break; case '5': // 5. sortieren sortieren (aktAnzahl, bibliothek); break; case '6': // 6. Suchen suchen(aktAnzahl, bibliothek); break; case '7': // 7. EXIT break; default: printf("Falsche Eingabe"); break; } } while( z != '7' ); return 0; } /////////////////////////////////////////// // FUNKTIONEN: BUCH* heap_reservieren( int temp ) { return malloc (temp * sizeof (BUCH)); } /////////////////////////////////////////// // Von Tastatur einlesen int eingeben (BUCH vek[], int akt){ int i; for (i=akt; i<MAX; i++) { puts( "========================"); printf("======= %i. Buch: =======\n",i+1); puts ("\nGeben Sie den Titel ein: "); gets(vek[i].titel); fflush (stdin); if (vek[i].titel[0]=='\0') break; puts ("Geben Sie ein Schlagwort ein: "); gets(vek[i].schlagwort); fflush (stdin); puts ("Geben Sie den Autor ein: "); gets(vek[i].autor); fflush (stdin); puts ("Geben Sie die ISBN ein: "); gets(vek[i].isbn); fflush (stdin); } //printf("%i Buecher eingelesen", i); //getchar(); return i; } ///////////////////////////////////////////////// // Von Datei einlesen int einlesen ( BUCH* bib, FILE* fin ) { int ok=0; fin= fopen(datei, "rb"); if( fin == NULL ) { puts ("Error FIN: Datenbank nicht vorhanden"); getchar(); fclose(fin); return -1; } ok = fread ( bib, sizeof(BUCH),MAX,fin); printf("%i Datensaetze eingelesen", ok); fclose(fin); return ok; } ////////////////////////////////////////////////// // Datenbank speichern int speichern( int min, BUCH* bib, FILE* fout) { int ok=0; fout = fopen(datei, "wb"); ok = fwrite ( bib, sizeof(BUCH), min, fout); printf("%i Datensaetze gespeichert", ok); ; fclose(fout); return ok; } ////////////////////////////////////////////////// // Datensaetze in Grossbuchstaben wandeln // und sortieren void sortieren (int akt, BUCH vek[]) { int j, k=0; BUCH temp; ///Grossbuchstaben for (j=0; j < akt; j++) { if (vek[j].titel[0] > 96) { vek[j].titel[0] -= 32; } if (vek[j].schlagwort[0] > 96) { vek[j].schlagwort[0] -= 32; } if (vek[j].autor[0] > 96) { vek[j].autor[0] -= 32; } } ////// Sortieren while (k++ < MAX) { for (j=1; j < akt; j++) { if (strcmp (vek[j-1].titel, vek[j].titel) > 0) { temp = vek[j]; vek[j] = vek[j-1]; vek[j-1] = temp; } } } clrscr(); printf("Verarbeitung beendet, Buecher sortiert"); //getchar(); } //////////////////////////////////////////////// // Datensatz suchen void suchen (int akt, BUCH temp[]) { int i; char schlagwort[20]; puts("Nach welchem Schlagwort suchen:"); gets(schlagwort); for(i=0; i < akt; i++) { if(strcmp(schlagwort, temp[i].schlagwort)==0) { printf("\n\n====Buch Nr. %i ====",i+1); printf("\nTitel: %s", temp[i].titel); printf("\nAutor: %s", temp[i].autor); printf("\nSchlagwort: %s", temp[i].schlagwort); printf("\nISBN: %s", temp[i].isbn); } } puts("\n=== Suche beendet ================="); getchar(); clrscr(); } //////////////////////////////////////////////// // Bildschirmausgabe void zeigen (int akt, BUCH vek[]) { int j; if(akt==0) { printf("Nichts auszugeben...\n"); } else { for (j=0; j < akt; j++) { printf("\n===== %i. Buch =======",j+1); printf("\nTitel: %s", vek[j].titel); printf("\nAutor: %s", vek[j].autor); printf("\nSchlagwort: %s", vek[j].schlagwort); printf("\nISBN: %s", vek[j].isbn); printf("\n=====================\n"); } } getchar(); clrscr(); } |
|
|
|
|
#2 (Direktlink) |
|
Gast
Beiträge: n/a
|
hat sich erledigt mit implementieren ist ja das programmieren gemeint
-----Thread kann geschloßen werden. |
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|