Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Anfängerproblem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.03.2005, 22:56 Uhr
Gino



Halllo.

Ich soll ein einfaches Telefonbuch erstellen.
Die Namen speichern in einer Structur klappt wunderbar, das Aufrufen auch.
Das Problem ist es klappt nicht mit der Überprüfung ob ein Eintrag exestiert.

Hier der Ouellcode:


C++:
#include<iostream.h>
#include<string.h>
int nummer,a,kopie,numm,b,nummer_eins;
char auswahl;
char eing;

struct person {
     char vname[50];
     char nname[50];
     int tnummer;
     }telefonbuch[100];



     //Funktion zum Einträge erstellen
     void eintrag (){
         static int s=0;
          if (s<100) {
            cout<<"Vorname  : ";cin>>telefonbuch[s].vname;cout<<endl;
            cout<<"Nachname : ";cin>>telefonbuch[s].nname;cout<<endl;
            cout<<"Telefonnr: ";cin>>telefonbuch[s].tnummer;cout<<endl;
            cout<<"Die Eintragsnummer ist "<<s+1;
            nummer_eins=s++;
            kopie=s;
            }
         else cout<<"Das Telefonbuch ist voll!!!";
         }

         //Funktion zum überprüfen der Eintragsnummer
         int eintra( int a){
              if(nummer_eins != nummer)
              numm=-1;
              return (numm);
            }



     //Funktion zum Anzeigen der Namen
      void nummerneingabe(){
        cout<<"Eintragsnummer : ";
        cin>>nummer;
                   eintra(a);
                   if (numm==-1)
                     cout<<"Falsche Eingabe!!!";  //Überprüfung ob der Eintrag vorhanden ist
                     else{
                        cout<<"Name : "<<telefonbuch[nummer-1].vname<<" ";
                        cout<<telefonbuch[nummer-1].nname<<endl;
                        cout<<"Telefonnumer : "<<telefonbuch[nummer-1].tnummer<<endl;
                     }
              }  



Habt ihr eine Idee ??

Gruss Gino


Bearbeitung von typecast:
cpp-Tags gesetzt

Dieser Post wurde am 15.03.2005 um 07:26 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.03.2005, 07:29 Uhr
typecast
aka loddab
(Operator)


Das ist eine Frage, die besser in das ANSI Board passt ->
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.03.2005, 07:41 Uhr
typecast
aka loddab
(Operator)


Also da sind mehrere Fehler (bzw. Dinge, die man nicht machen sollte) drin:

1.)


C++:
#include <iostream.h>
#include <string.h>



Du solltest die Header nicht so, sondern so:


C++:
#include <iostream>
#include <string>



einbinden. Wenn du die Boardsuche benutzt, dann wirst du auch wissen warum.
Die Boardsuche wird dir dann auch bei den Fehlern helfen, die kommen werden, sobald du das veraendert hast

2.)


C++:
int nummer,a,kopie,numm,b,nummer_eins;
char auswahl;
char eing;



Du solltest es vermeiden globale Variablen zu deklarieren. Versuche alle Variablen lokal zu deklarieren.

3.)


C++:
         int eintra( int a){
              if(nummer_eins != nummer)
              numm=-1;
              return (numm);
            }



Also hier ueberpruefst du nur, ob der Eintrag gleich dem letzten Eintrag ist. Du solltest aber das komplette Telefonbuch durchlaufen:


C++:
bool eintra(int num) {
   for (int i = 0; i <= 100; ++i) {
     if (num == telfonbuch.tnummer)
         return true;

     return false;
  }
}

// der Aufruf muesste dann so aussehen:
  std::cin >> nummer; // <-- hier ist uebrigens ein Tipp fuer den angekuendigten Fehler in 1.) drin ;)
  if (!eintra(nummer))
        std::cout << "Diese Telefonnummer gibt es nicht im Telefonbuch" << std::endl;  



Ausserdem wuerde ich dir empfehlen statt des Arrays telefonbuch[100] einen std::vector zu verweden.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.03.2005, 17:31 Uhr
Gino



HI!

Leider hat dein Vorschlag nichts genützt. Bekomme immer die Warnung :
[C++ Warnung] aufgabe4.cpp(40): W8070 Funktion sollte einen Wert zurückgeben.

Ich benutze den Borland C++ Builder 6 Pro.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.03.2005, 11:05 Uhr
Th



typecast meinte wohl:


C++:
bool eintra(int num) {
   for (int i = 0; i <= 100; ++i)
   {
     if (num == telfonbuch.tnummer)
         return true;
   }
   return false;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.03.2005, 19:14 Uhr
typecast
aka loddab
(Operator)


Ups, ja da bin ich mit der Klammer in der Zeile verrutscht.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.03.2005, 20:03 Uhr
Gino



Dann ist ja auch klar warum es nicht geht .

Ich danke Typecast. Du hast mir sehr geholfen!!

Gruss Gino
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: