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 ?
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: