Complier hat Probleme mit meinen Funktionen

t0bee

Grünschnabel
Hallo,

Ich habe ein sehr große Problem.Ich soll ein Programm schreiben, wo man eine gewisse Anzahl von Schülern eintragen kann. Die Schülerdaten sollen dann in einer Dateigespeichert werden und auf Wunsch darstellbar sein.
Ich habe das Programm eigentlich schon fertig aba nun meckert mein Compiler (Dev-C++ 5 Beta) und ich absolut keine Ahnung was ich machen muss.

Code:
//#include <stdlib>
#include <iostream>
#include <fstream>
#include <string>
//#include <stdio>

using namespace std;

int main(int argc, char* argv[])
{
      
      char schuelervorname[30] [30];
      char schuelernachname[30] [30];
      char schuelertele[30] [30];
      char schuelerstrasse[30] [30];
      char schuelerpost[30] [30];
      char schuelerhausnr[30] [30];
      char schuelerwohnort[30] [30];
      const int falsch=0;
      int anzahl;
      int zaehler=1;

int input()
{
    for(anzahl=1; anzahl<falsch;++anzahl)
    {
           cout<<"Geben Sie den Vorname des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelervorname[anzahl];
           
           cout<<"Geben Sie den Nachname des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelernachname[anzahl];
           
           cout<<"Geben Sie die Telefonnummer des "<<anzahl<<" Schulers ein: ";
           cin>>schuelertele[anzahl];
           
           cout<<"Geben Sie die Strass des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerstrasse[anzahl];
           
           cout<<"Geben Sie die Postleitzahl des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerpost[anzahl];
           
           cout<<"Geben Sie die Hausnummer des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerhausnr[anzahl];
           
           cout<<"Geben Sie den Wohnort des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerwohnort[anzahl];
    }
    return 0;
};
    
int save()
{
    ofstream schuelerdatei;
    schuelerdatei.open("schuelerdaten.dat");
    
    if( !schuelerdatei )
    {
        cout<<"Die Datei ist beschädigt"<<endl;
    }
    for(anzahl=1; anzahl<=falsch; ++anzahl)
    {
        schuelerdatei<<schuelervorname[anzahl]<<endl;
        schuelerdatei<<schuelernachname[anzahl]<<endl;
        schuelerdatei<<schuelertele[anzahl]<<endl;
        schuelerdatei<<schuelerstrasse[anzahl]<<endl;
        schuelerdatei<<schuelerpost[anzahl]<<endl;
        schuelerdatei<<schuelerhausnr[anzahl]<<endl;
        schuelerdatei<<schuelerwohnort[anzahl]<<endl;
    }
    schuelerdatei.close();
}

int read()
{
    ifstream schuelerdatei;
    schuelerdatei.open("schuelerdaten.dat");
     if( !schuelerdatei )
    {
        cout<<"Die Datei ist beschädigt"<<endl;
        return -1;
    }
    while ( !schuelerdatei.eof())
    {
     char schuelername[30];
     schuelerdatei>>schuelername;
     if (! schuelerdaten.fail())
     {
           cout<<"Name des Schuelers "<<zaehler++<<": "<<schuelername<endl;
     }
     }
     schuelerdaten.close();
     }
     
    
int output()
{
    int a,b;
    cout<<"Auflistung von Schueler: ";cin>>a;endl;
    cout<<"bis Schueler: ";cin>>b;endl;
    cout<<"Hier ist die Tabelle der gewünschten Schueler: "<<endl;
    cout<<"Nr.\t Vorname\t Nachname\t Telefonnr.\t Strasse\t PLZ\t Wohnort\t"<<endl;
    for (anzahl=a; anzahl<=b; ++anzahl)
    {
        cout<<anzahl<<".\t "<<schuelervorname[anzahl];
    }
 
int exit()
{
    system("PAUSE");
    return EXIT_SUCESS;
}  

      
int menue()
{
    cout<<"Willkommen:"<<endl;
    cout<<"[1] eingeben um die Schuelerdaten einzugeben: "<<endl;
    cout<<"[2] eingeben um die Daten der Schueler zu Speichern: "<<endl;
    cout<<"[3] eingeben um eine Datei zu oeffnen: "<<endl;
    cout<<"[4] eingeben um die Schuelerdaten auszugeben: "<<endl;
    cout<<"[5] eingeben um das Programm zu verlassen: "<<endl;
    cout<<"Bitte waehlen: ";
    cin>>auswahl;
    
switch (auswahl)
{
       case 1: cout<<"Welche Anzahl von Schuelern moechten sie eingeben?";
       
       if(falsch>30)
       {
        cout<<"Sie koennen maximal 30 Schueler eingeben!";
        }
       else
       {
       }
           input();
           menue();
           break;
       case 2:
            save();
            menue();
            break;
       case 3:
            read();
            menue();
            break;
       case 4:
            output();
            menue();
            break;
       case 5:
            exit();
            break;
       default: cout<<"Bitte nur Zahlen eigeben!"<<endl;
                break;
}

   
    sytem(); 
    system("PAUSE");
    return 0;
}

Und die Fehlermeldung des Compilers sind :
Expected primary-expression befor "int"
expected `;' before "int"
Diese Meldungen sind dann vor jeder Funktion.

gruß t0bee
 
Hallo,

Deine Funktionen solltest du ausserhalb/vor der Main() Funktion implementieren.
in der Main dann nur noch aufrufen.

MfG Turri
 
Danke für deinen Tipp aber das auch nicht funktioniert jetzt mault der compiler mit den if Funtkion rum -.-
 
Ach Sorry ich vergass^^

Also einmal sagt er: "statement cannot resolve address of overloaded function".
Zweitens: "undeclared(first use this function)"

Jop das waren alle^^
 
Also gut^^

Code:
int output()
{
    int a,b;
  1-->  cout<<"Auflistung von Schueler: ";cin>>a;endl;
  2-->  cout<<"bis Schueler: ";cin>>b;endl;
    cout<<"Hier ist die Tabelle der gewünschten Schueler: "<<endl;
    cout<<"Nr.\t Vorname\t Nachname\t Telefonnr.\t Strasse\t PLZ\t Wohnort\t"<<endl;
    for (anzahl=a; anzahl<=b; ++anzahl)
    {
        cout<<anzahl<<".\t "<<schuelervorname[anzahl];
    };


int read()
{
    ifstream schuelerdatei;
    schuelerdatei.open("schuelerdaten.dat");
     if( !schuelerdatei )
    {
        cout<<"Die Datei ist beschädigt"<<endl;
        return -1;
    }
    while ( !schuelerdatei.eof())
    {
     char schuelername[30];
     schuelerdatei>>schuelername;
 3-->    if (!schuelerdaten.fail())
     {
 4--->   cout<<"Name des Schuelers "<<zaehler++<<": "<<schuelername<endl;
     }
     }
     schuelerdaten.close();
     };

1=statement cannot resolve address of overloaded function
2=statement cannot resolve address of overloaded function
3=(each undeclraed identifier is repor only once each function it appeas in.)
4="schuelerdaten" undeclared (first use this function)
 
Da dein Progrämmchen ja ein kleines Durcheinander ist, hab ich das mal etwas zurecht gerückt, und auch nen Stück korregiert.

Code:
//#include <stdlib>
#include <iostream>
#include <fstream>
#include <string>
//#include <stdio>

using namespace std;

char schuelervorname[30] [30];
char schuelernachname[30] [30];
char schuelertele[30] [30];
char schuelerstrasse[30] [30];
char schuelerpost[30] [30];
char schuelerhausnr[30] [30];
char schuelerwohnort[30] [30];
int falsch=0;
int anzahl;
int zaehler=1;

int exit()
{
    system("PAUSE");
    return 0;
}

int input()
{
    for(anzahl=1; anzahl<falsch;++anzahl)
    {
           cout<<"Geben Sie den Vorname des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelervorname[anzahl];

           cout<<"Geben Sie den Nachname des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelernachname[anzahl];

           cout<<"Geben Sie die Telefonnummer des "<<anzahl<<" Schulers ein: ";
           cin>>schuelertele[anzahl];

           cout<<"Geben Sie die Strass des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerstrasse[anzahl];

           cout<<"Geben Sie die Postleitzahl des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerpost[anzahl];

           cout<<"Geben Sie die Hausnummer des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerhausnr[anzahl];

           cout<<"Geben Sie den Wohnort des "<<anzahl<<" Schuelers ein: ";
           cin>>schuelerwohnort[anzahl];
    }
    return 0;
}

void save()
{
    ofstream schuelerdatei;
    schuelerdatei.open("schuelerdaten.dat");

    if( !schuelerdatei )
    {
        cout<<"Die Datei ist beschädigt"<<endl;
    }
    for(anzahl=1; anzahl<=falsch; ++anzahl)
    {
        schuelerdatei<<schuelervorname[anzahl]<<endl;
        schuelerdatei<<schuelernachname[anzahl]<<endl;
        schuelerdatei<<schuelertele[anzahl]<<endl;
        schuelerdatei<<schuelerstrasse[anzahl]<<endl;
        schuelerdatei<<schuelerpost[anzahl]<<endl;
        schuelerdatei<<schuelerhausnr[anzahl]<<endl;
        schuelerdatei<<schuelerwohnort[anzahl]<<endl;
    }
    schuelerdatei.close();
}

void read()
{
    ifstream schuelerdatei;
    schuelerdatei.open("schuelerdaten.dat");
    if( !schuelerdatei )
    {
        cout<<"Die Datei ist beschädigt"<<endl;
    }
    else
    {
        while ( !schuelerdatei.eof())
        {
            char schuelername[30];
            schuelerdatei>>schuelername;
            if (! schuelerdatei.fail())
            {
                cout<<"Name des Schuelers "<<zaehler++<<": "<<schuelername<<endl;
            }
        }
    }
    schuelerdatei.close();
}

void output()
{
    int a,b;
    cout<<"Auflistung von Schueler: ";cin>>a; cout<<endl;
    cout<<"bis Schueler: ";cin>>b; cout<<endl;
    cout<<"Hier ist die Tabelle der gewünschten Schueler: "<<endl;
    cout<<"Nr.\t Vorname\t Nachname\t Telefonnr.\t Strasse\t PLZ\t Wohnort\t"<<endl;
    for (anzahl=a; anzahl<=b; ++anzahl)
    {
        cout<<anzahl<<".\t "<<schuelervorname[anzahl];
    }
}

void menue()
{
     int auswahl;
     cout<<"Willkommen:"<<endl;
     cout<<"[1] eingeben um die Schuelerdaten einzugeben: "<<endl;
     cout<<"[2] eingeben um die Daten der Schueler zu Speichern: "<<endl;
     cout<<"[3] eingeben um eine Datei zu oeffnen: "<<endl;
     cout<<"[4] eingeben um die Schuelerdaten auszugeben: "<<endl;
     cout<<"[5] eingeben um das Programm zu verlassen: "<<endl;
     cout<<"Bitte waehlen: ";
     cin >> auswahl;

     switch (auswahl)
     {
       case 1: cout<<"Welche Anzahl von Schuelern moechten sie eingeben?";

          if(falsch > 30)
          {
               cout<<"Sie koennen maximal 30 Schueler eingeben!";
          }
          input();
          menue();
          break;
       case 2:
            save();
            menue();
            break;
       case 3:
            read();
            menue();
            break;
       case 4:
            output();
            menue();
            break;
       case 5:
            exit();
            break;
       default: cout<<"Bitte nur Zahlen eigeben!"<<endl;
            break;
     }
}

int main(int argc, char* argv[])
{

     menue();
     // sytem();
     // system("PAUSE");
     return 0;
}

Ist allerdings nicht der Beste Code...
und mit dem int Wert "falsch" haut auch was nicht hin, der ist bei dir immer 0.
Musst du selbst nochmal schauen.

Möcht wissen wo du deinen Code her geklaut hast :D

MfG Turri
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück