Kann mir jemand helfen ?

chico maradona

Grünschnabel
Einen schönen guten Tag,

Folgende Aufgabe:

Es soll ein Adressbuch geschrieben werden, mit den 'üblichen' Abfragen.
Eigentlich klappt das auch ausser die Eingabefunktion.
Mit einer Initialisierungsfunktion soll jedem Eintrag ein neuer Wert zugeordnet werden.
Mein Problem ist, dass die Eingabefunktion nicht beendet wird, nachdem ein Eintrag eingefügt wurde, wenn der Nutzer die Einträge ansehen will.

Kann mir vielleicht jemand auf die Sprünge helfen ?

Code:
#include <iostream.h>
#include <string.h>
#include <conio.h>
/////////////////////////////////
//Die Funktionsprototypen
    int initialisierung();
    int anzeige(int);
    int nummerneingabe();
    int loeschen();
    int eingabe(int i) ;
// Die Struktur
    struct person{
        char vorname[20];
        char name[20];
        int telefon;
        };
// Die Strukturvariable
    person telefonbuch[100];
////////////////////////////////////
// Die Initialisierung
int initialisierung(){
            for(int i=0; i < 100; i++){
               eingabe(i);
            }
}
/////////////////////////////////////
// Die Eingabe
    int eingabe(int i)
    {
       // Zur Kontrolle der Schleife
       cout << i <<endl;

          cout << "Vorname: ";
          cin >> ws;
          cin.getline(telefonbuch[i].vorname, 20);

          cout << "Nachname: ";
          cin >> ws;
          cin.getline(telefonbuch[i].name, 20);

          cout << "Telefon: ";
          cin >> ws;
          cin >> telefonbuch[i].telefon;

          cout << "Eingabe(1) oder Anzeige(2) "<< endl;
          int eingabe;
          cin >> eingabe;

            if(eingabe==1){
                return 1;
                }
                if(eingabe==2){
                    nummerneingabe();
                    return -1;
                    }
return -1;
    }
///////////////////////////////////////////////////////////////
// Frage nach einem gewuenschten Eintrag
int nummerneingabe(){
    cout<<"Welchen Eintrag wollen sie sehen (1-100)?\n"<<endl;
    int auswahl;
    cin>>auswahl;
          // Überprüft die Eingabe
          if(auswahl > 100){
            cout << "Es gibt leider nur 100 Eintraege !" << endl;
            }
          else{
            //anzeige(auswahl);
            cout<<telefonbuch[auswahl].vorname<<endl;
            cout<<telefonbuch[auswahl].name<<endl;
            cout<<telefonbuch[auswahl].telefon<<endl;
            }
    cout<<"Weitere Eintraege ansehen (j/n) ?"<<endl;
        char weitere;
        cin>>weitere;

            if(weitere=='j'){
                nummerneingabe();
                }
                else{
                    cout << "Auf Wiedersehen" << endl;
                    }
return 0;
}
///////////////////////////////////////////////////////////////
int loeschen(){
    cout<<"Welchen Eintrag moechten Sie loeschen (1-100)?"<<endl;
        int eintrag;
        cin>>eintrag;
    strcpy(telefonbuch[eintrag].name,"");
    strcpy(telefonbuch[eintrag].vorname,"");
    telefonbuch[eintrag].telefon= 0;

    cout<<"Der Name wurde geloescht !"<<endl;

    cout<<"Weitere Eintraege loeschen j/n ?"<<endl;
        char weitere;
        cin>>weitere;

            if(weitere=='j'){
                loeschen();
                }
            else{
                cout << "Auf Wiedersehen "<< endl;
                }
 return 0;
    }
//////////////////////////////////////////////
int main(){
    clrscr();

    cout<<"*\t Willkommen zu ihrem Adressbuch \t* \n"<<endl;
    cout<<" \t Bitte waehlen Sie:\n"<<endl;
    cout<<"\t a) Eingabe neuer Eintraege \n"<<endl;
    cout<<"\t b) Anzeigen der Eintraege  \n"<<endl;
    cout<<"\t c) Loeschen von Eintraegen \n"<<endl;
    cout<<"\t d) Beenden \n"<<endl;

    char auswahl;
    cin >> auswahl;

        switch(auswahl){
            case 'a': initialisierung();
            break;
            case 'b': nummerneingabe();      
            break;
            case 'c': loeschen();          
            break;
            case 'd': return -1;            
            };

    char p[50];
    cin.getline(p,50);
    cin.getline(p,50);
return 0;
}
 
Zuletzt bearbeitet:
moin


In der Funktion Nummerneingabe, sollte dein else wie folgt aussehen:
Code:
else{
		cout << "Auf Wiedersehen" << endl;
		return 101;
	}

Und deine initialisierung so:
Code:
int initialisierung(){
	for(int i=0; i < 100; i++){
		i = eingabe(i);
	}

	return 0;
}



mfg
umbrasaxum
 

Neue Beiträge

Zurück