HILFE!!!!!!!!!!!!!!
-
Kann mit BITTE jemand den folgenden Quellcode zeile für zeile beschreiben was dort passiert!
Es ist super super wichtig!!!!!!!!!!!!!!!!!!!
Danke im Vorraus/* Präprozessoranweisungen */
#include <stdio.h>
#include <windows.h>
#define clrscr() system("cls");/* Variablen Deklaration und Initialisierung */
int i = 0;
int l = 0;/* Funktionsdeklarationen */
void menue();
void tln_eingeben();
void tln_ausgeben();
void daten_speichern();
void daten_lesen();
void suchen();/* Strukturdefinitionen */
struct eintrag {
char nname[16];
char vname[16];
int nummer;
};/* Struktur-Array Deklaration */
struct eintrag liste[100];/* Main-Funktion */
int main()
{
clrscr()
daten_lesen();
printf ("\nHier ist die Funktion Main");
menue();
clrscr()
}void menue()
{
char v_eingabe;do
{printf("\n\n*********************************************************");
printf ("\n\nTelefonverzeichnis - Hauptmenue");
printf("\n*********************************************************");
printf ("\n\nTeilnehmer eingeben 1");
printf ("\nTeilnehmer ausgeben 2");
printf ("\nIn Datei speichern 3");
printf ("\nProgramm beenden 4");
printf ("\nSuchen 5");
printf ("\n\n\nBitte waehlen Sie: ");switch (v_eingabe = getch())
{
case '1' : tln_eingeben();
break;
case '2' : tln_ausgeben();
break;
case '3' : daten_speichern();
break;
case '4' : break;
case '5' : suchen();
break;
default : clrscr()
printf("\n\nfalsche Eingabe, bitte wiederholen: \n");
}
}
while(v_eingabe!='4');}
void tln_eingeben()
{
clrscr()
printf("\n---------------------------------------------------------");
printf("\n1.) Teilnehmer eingeben");
printf("\n---------------------------------------------------------");
printf("\n\n\n Datensatz: %-3d", i);
if (i < 99)
{
printf("\n\nBitte geben Sie den Nachnamen ein: ");
scanf("%15s", liste[i].nname);
fflush(stdin);
printf("Bitte geben Sie den Vornamen ein: ");
scanf("%15s", liste[i].vname); //s Zeichenkette
fflush(stdin);
printf("Bitte geben Sie die Telefon-Nr. ein: ");
scanf("%4i", &liste[i].nummer); //int dezimal
fflush(stdin);
i = i+1;
}
else
{
printf("\n\nTelefonbuch voll - letzter Datensatz erreicht");
}
}void tln_ausgeben()
{
clrscr()
printf("\n---------------------------------------------------------");
printf("\n2.) Teilnehmer-Anzeige");
printf("\n---------------------------------------------------------");
printf("\n\nName\t\t Vorname \t Tel.-Nummer");
printf("\n---------------------------------------------------------");for (l=0; l<i; l++)
{
printf("\n%-17s%-17s%d", liste[l].nname, liste[l].vname, liste[l].nummer);
}
printf("\n\n");
}void daten_speichern()
{
FILE dateizeiger1;
dateizeiger1 = fopen( "daten\\daten.text", "w+");
if(dateizeiger1 != 0)
{
clrscr()
printf("** text: Datei im Modus Lesen und Anfuegen erfolgreich geoeffnet");
fprintf(dateizeiger1,"%i\n", i);
for (l=0; l<i; l++)
{
fprintf(dateizeiger1,"%-15s%-15s%-4i\n", liste[l].nname, liste[l].vname, liste[l].nummer);
}
printf("\n*** text: Daten wurden gespeichert (text)\n");
fclose(dateizeiger1);
}else
{
printf("\n text: Fehler beim Oeffnen der Datei\n");
}FILE dateizeiger2;
dateizeiger2 = fopen("daten\\daten.bin", "a+b");
if(dateizeiger2 != 0)
{
struct eintrag ptr_eintrag;
ptr_eintrag = &liste[0];
printf("* binaer: Datei im Modus Lesen und Anfuegen erfolgreich geoeffnet");
/* for (l=0; l<i; l++)
{ /
fwrite(ptr_eintrag, sizeof(struct eintrag), i, dateizeiger2);
/* } /
printf("\n* binaer: Daten wurden gespeichert (text)\n");
fclose(dateizeiger2);
}else
{
printf("\n binaer: Fehler beim Oeffnen der Datei\n");
}
}/* **************************************** */
/* Funktionsdefinition: aus Datei auslesen */
/* **************************************** */
void daten_lesen()
{
clrscr()
FILE *dateizeiger;
dateizeiger = fopen( "daten\\daten.text", "rt");if(dateizeiger != 0)
{
clrscr()
printf("*** text: Datei im Modus Lesen erfolgreich geoeffnet");
fscanf(dateizeiger, "%d", &i);
printf("\n*** Anzahl Datensaetze: %3d\n\n", i);for (l=0; l<i; l++)
{
fscanf(dateizeiger, "%15s%15s%4i", liste[l].nname, liste[l].vname, &liste[l].nummer);
}
}
}/* **************************************** */
/* Funktionsdefinition: Suchen */
/* **************************************** */
void suchen()
{
clrscr();
char suchstring[16];
int gefunden = 0;
int rueckgabe;
printf("\n---------------------------------------------------------");
printf("\n5.) Suchfunktion");
printf("\n---------------------------------------------------------");
printf("\nBitte geben Sie den gesuchten Namen ein: ");
scanf("%15s", suchstring);
fflush(stdin);
printf("\n\nName\t\t Vorname \t Tel.-Nummer");
printf("\n---------------------------------------------------------");
for (l=0; l<i; l++)
{
rueckgabe = strcmp(suchstring, liste[l].nname); //vergleicht die Zeichenketten
if (rueckgabe == 0)
{
gefunden = gefunden+1;
printf("\n%-17s%-17s%d", liste[l].nname, liste[l].vname, liste[l].nummer);
}/* printf("\n\nstrcmp liefert: %i\n", rueckgabe); /
}
if (gefunden > 0)
{
printf("\n\n\n\n** Anzahl gefundener Datensaetze: %i", gefunden);
printf("\n*** Anzahl durchsuchte Datensaetze: %i\n", i);
}
else
{
printf("\n*** kein Datensatz gefunden ");
printf("\n\n\n\n Suchbegriff: %-16s", suchstring);
printf("\n*** Anzahl durchsuchte Datensaetze: %i\n", i);
}}
-
Timi schrieb:
...zeile für zeile beschreiben was dort passiert!
wenn's weniger zeilen wären, hätt's bestimmt einer gemacht
btw: super thread titel
-
Schnorreralarm !!!
BTW: Wenn es "super wichtig" ist, hast Du bestimmt schon hart daran gearbeitet und kannst konkreter sagen, wo Du Probleme hast. Dann hilft man Dir hier gerne.
Ach ja: Als erstes Zeichen guten Willens wirst Du bestimmt gerne die 2 Minuten in einen sinnvollen Threadtitel und Codetags investieren - schließlich willst Du unsere Hilfe und nicht wir Deine, oder ? :pGruß,
Simon2.
-
@ Timi:
Das war ja schonmal nix. Threadtitel nichtssagend (dann auch noch Caps), viel zuviel Code, keine konkreten Fragen, keine Codetags ([cpp]) und eindeutig zuviele Ausrufezeichen!!!!!!!!!!!!
Da du als Unreg nicht editieren kannst (und ich fange sicher nicht an Beiträge anderer schönzumachen) -> Thread geschlossen
Auf zum nächsten Versuch.