Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Programm Konto1 funktioniert einfach nicht

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
08.10.2013, 10:04 Uhr
Alex_c-plusplus



Hallo Leute, ich bin neu hier.
Ich habe mich jetzt einige Zeit und unter zuhilfenahme mehrerer Bücher mit diesem Programm beschäftigt, aber es möchte einfach nicht funktionieren.
Es wäre super, wenn jemand man schauen könnte woran es liegt und es mir sagen könnte, oder wenn jemand die Fehler korrigiert und das programm hier wieder einstellt.
Ich weiß leider nicht mehr weiter... :-(

Hier das Programm:


C++:
#include "stdafx.h"

using namespace std;

class Konto1
{
    private:
        string name;
        string vorname;
        string adresse;
        int kontonr;
        int blz;
        double saldo;

    public:
        Konto1(string k_name,string k_vorname,string k_adresse, int k_kontonr, int k_blz, double k_saldo)
        {
            name=k_name;vorname=k_vorname;adresse=k_adresse;kontonr=k_kontonr;blz=k_blz;saldo=k_saldo;
        }
        ~Konto1(){}

        void setName(string n)
        {
            name=n;
        }
        string getName()
        {
            return name;
        }
        void setVorname(string v)
        {
            vorname=v;
        }
        string getVorname()
        {
            return vorname;
        }
        void setAdresse(string a)
        {
            adresse=a;
        }
        string getAdresse()
        {
            return adresse;
        }
        void setKontonr(int k)
        {
            kontonr=k;
        }
        int getKontonr()
        {
            return kontonr;
        }
        void setBlz(int b)
        {
            blz=b;
        }
        int getBlz()
        {
            return blz;
        }
        void setSaldo(double s)
        {
            saldo=s;
        }
        double getSaldo()
        {
            return saldo;
        }
};




und die Hauptfunktion
der übergebene Parameter ist deshalb ausgeklammert, weil mir der Compiler sagte, hier würde ein Problem vorliegen.


C++:
// Konto.cpp: Hauptprojektdatei.

#include "stdafx.h"
#include "Konto1.h"
#include <iostream>

using namespace std;

int _tmain(int argc/*, _TCHAR* argv[]*/)
{
    Konto1 k1;
    
    cout<<"Bitte geben sie einen Vornamen ein: \n";
    string s;
    cin>>s;
    k1.setVorname(s);
    cout<<"Bitte geben sie einen namen ein: \n";
    cin>>s;
    k1.setName(s);
    cout<<"Bitte geben sie eine adresse ein: \n";
    cin>>s;
    k1.setAdresse(s);
    cout<<"Bitte geben sie eine kontonr ein: \n";
    int a;
    cin>>a;
    k1.setKontonr(a);
    cout<<"Bitte geben sie eine blz ein: \n";
    cin>>a;
    k1.setBlz(a);
    cout<<"Bitte geben sie ihren saldo ein: \n";
    double b;
    cin>>b;
    k1.setSaldo(b);

    return 0;
}




Für eine Antwort oder eine korrigierte Version wäre ich sehr dankbar.

Lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.10.2013, 11:42 Uhr
TOSHMAX



Hallo,

es wäre einfacher, wenn du die Fehlermeldungen oder Probleme dazuschreiben würdest.

Auf den ersten Blick fällt mir allerdings auf, dass du das Konto ohne Argumente erzeugst ("Konto1 k1;"), aber keinen passenden Konstruktor zur Verfügung stellst. Es fehlt also etwas wie "Konto1() {}" innerhalb der Klasse.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.10.2013, 19:38 Uhr
Alex_c-plusplus



Also die Fehlermeldungen sind folgende:

Fehler 10 error C2061: Syntaxfehler: Bezeichner 'string' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 16
Fehler 11 error C2061: Syntaxfehler: Bezeichner 'string' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 22
Fehler 16 error C2061: Syntaxfehler: Bezeichner 'string' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 30
Fehler 21 error C2061: Syntaxfehler: Bezeichner 'string' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 38
Fehler 42 error C2065: 'a': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 40
Fehler 30 error C2065: 'adresse': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 41 error C2065: 'adresse': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 40
Fehler 43 error C2065: 'adresse': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 44
Fehler 31 error C2065: 'k_adresse': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 33 error C2065: 'k_blz': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 32 error C2065: 'k_kontonr': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 27 error C2065: 'k_name': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 34 error C2065: 'k_saldo': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 29 error C2065: 'k_vorname': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 36 error C2065: 'n': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 24
Fehler 26 error C2065: 'name': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 35 error C2065: 'name': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 24
Fehler 37 error C2065: 'name': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 28
Fehler 39 error C2065: 'v': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 32
Fehler 28 error C2065: 'vorname': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 18
Fehler 38 error C2065: 'vorname': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 32
Fehler 40 error C2065: 'vorname': nichtdeklarierter Bezeichner cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 36
Fehler 7 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'adresse' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 10
Fehler 22 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getAdresse' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 42
Fehler 12 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getName' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 26
Fehler 17 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getVorname' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 34
Fehler 1 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 8
Fehler 4 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'vorname' cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 9
Fehler 49 error C2660: 'Konto1::setAdresse': Funktion akzeptiert keine 1 Argumente CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 22
Fehler 47 error C2660: 'Konto1::setName': Funktion akzeptiert keine 1 Argumente CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 19
Fehler 45 error C2660: 'Konto1::setVorname': Funktion akzeptiert keine 1 Argumente CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 16
Fehler 44 error C2678: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'std::istream' akzeptiert (oder keine geeignete Konvertierung möglich) CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 15
Fehler 46 error C2678: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'std::istream' akzeptiert (oder keine geeignete Konvertierung möglich) CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 18
Fehler 48 error C2678: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'std::istream' akzeptiert (oder keine geeignete Konvertierung möglich) CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 21
Fehler 2 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 8
Fehler 3 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 8
Fehler 5 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 9
Fehler 6 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 9
Fehler 8 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 10
Fehler 9 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 10
Fehler 13 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 26
Fehler 14 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 27
Fehler 18 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 34
Fehler 19 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 35
Fehler 23 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 42
Fehler 24 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. cusers\alexander\documents\visual studio 2010\projects\konto\konto\Konto1.h 43


Wie gesagt, ich habe nur das gemacht, was ich im Buch gelesen habe und als richtig erachtet habe... Ich kann mir die Fehler nicht erklären. Vor allem die ersten nicht, da ich den Variablen ja den Typ String vorangestellt habe... :-(

Falls sich das jemand anschauen könnte wäre das super. :-)

Vielen Dank im Voraus.

Lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.10.2013, 20:10 Uhr
TOSHMAX



Die Fehler treten auf, weil der Compiler nicht weiß, was ein "string" ist. Um den nutzen zu können, muss noch der passende Header in Konto1.h eingefügt werden:

C++:
#include <string>

So wie ich das sehe, sind alle Fehler darauf zurückzuführen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.10.2013, 20:27 Uhr
Alex_c-plusplus



Ich habe in der Konto1.h jetzt diese Headerdateien inkludiert:
#include "stdafx.h"

using namespace std;
#include <string>

jetzt zeigt mir der Compiler auch nur noch in der main folgende Fehler an:

Fehler 4 error C2228: Links von ".setAdresse" muss sich eine Klasse/Struktur/Union befinden. CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 22
Fehler 6 error C2228: Links von ".setBlz" muss sich eine Klasse/Struktur/Union befinden. CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 29
Fehler 5 error C2228: Links von ".setKontonr" muss sich eine Klasse/Struktur/Union befinden. CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 26
Fehler 3 error C2228: Links von ".setName" muss sich eine Klasse/Struktur/Union befinden. CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 19
Fehler 7 error C2228: Links von ".setSaldo" muss sich eine Klasse/Struktur/Union befinden. CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 33
Fehler 2 error C2228: Links von ".setVorname" muss sich eine Klasse/Struktur/Union befinden. CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 16
Fehler 1 error C2601: 'k1': Lokale Funktionsdefinitionen sind unzulässig CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\Konto.cpp 11


Allerdings dachte ich das diese Schreibweise von der Syntax her so korrekt wäre.
Ich möchte ja im Programmverlauf das Konto mit den jeweiligen Angaben selbst füllen.
Oder wie sollte ich das anders bewerkstelligen?
Kannst du mir da noch einen Tipp geben TOSHMAX?
Oder wie würdest du es schreiben?
Nach den Büchern kann ich scheinbar nicht gehen, da kommt nur murks bei heraus... :-(

Lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.10.2013, 18:38 Uhr
TOSHMAX



"Lokale Funktionsdefinitionen sind unzulässig": Das klinkt so, als hättest du k1 als "Konto1 k1();" deklariert. Mit Klammern erzeugt das eine Funktion ohne Parameter, die ein Konto1-Objekt zurückgibt. Ohne Klammern (wie im Code oben) wird der Konstruktor Konto1() von k1 aufgerufen. Damit das funktioniert muss dieser, wie in meiner 1. Antwort geschrieben, erst erstellt werden.

Ich habe den Code gerade getestet (mit GCC) und das Programm lief. Es dürfte also sonst keine Probleme beim kompilieren geben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.10.2013, 23:57 Uhr
Alex_c-plusplus



So, ich habe das jetzt noch mal etwas abgeändert. Ich habe es gerade in einigen Varianten probiert und debuggt, aber nichts hat funktioniert. Auf diese Weise (wie folgt) bekomme ich wenigstens nur eine Fehlermeldung

Die Klasse sieht jetzt so aus:

Der Abschnitt auf den es scheinbar ankommt:


C++:
public:
        Konto1(){}
        ~Konto1(){}

        Konto1(string k_name,string k_vorname,string k_adresse, int k_kontonr, int k_blz, double k_saldo)
        {
            name=k_name;vorname=k_vorname;adresse=k_adresse;kontonr=k_kontonr;blz=k_blz;saldo=k_saldo;
        }
//        ~Konto1(){}




Die Hauptklasse:

Ebenfalls wieder abgeändert auf den Ursprungszustand:


C++:
Konto1 k1;
    
    cout<<"Bitte geben sie einen Vornamen ein: \n";
    string s;
    cin>>s;
    k1.setVorname(s);
    cout<<"Bitte geben sie einen namen ein: \n";
    cin>>s;
    k1.setName(s);
    cout<<"Bitte geben sie eine adresse ein: \n";
    cin>>s;
    k1.setAdresse(s);
    cout<<"Bitte geben sie eine kontonr ein: \n";
    int a;
    cin>>a;
    k1.setKontonr(a);
    cout<<"Bitte geben sie eine blz ein: \n";
    cin>>a;
    k1.setBlz(a);
    cout<<"Bitte geben sie ihren saldo ein: \n";
    double b;
    cin>>b;
    k1.setSaldo(b);



Folgende Fehlermeldung bekomme ich:
Fehler 1 error LNK1561: Einstiegspunkt muss definiert werden. CUsers\Alexander\documents\visual studio 2010\Projects\Konto\Konto\LINK

Was für ein Einstiegspunkt? Ich habe doch den Konstruktor und Destruktor bekannt gemacht.
Ebenso habe ich eine main methode in welcher ich das Objekt aufrufe...
Was ist hier noch falsch?
Wenn ich deine letzte Antwort richtig verstanden habe, sollte das Programm jetzt eigtl. laufen... was es so noch nicht tut :-(

Wenn du mir hier vlt. noch einmal genau sagen kannst, was wo falsch ist und was genau wo hingeschrieben werden muss, wäre ich dir äußerst dankbar! :-)
Ich weiß, das es bei mir vlt. etwas nervenaufreibend ist, aber mit den Büchern kann ich wohl tatsächlich nichts anfangen... denn damit klappts so wie es scheint nicht...
oder sollte ich noch eine Klassendefinition hinzufügen?

Lg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.10.2013, 08:39 Uhr
Tommix



'Morgen,
"Einstiegspunkt" ist main-Funktion. Wie sieht die denn mittlerweile aus?

Gruß,
Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.10.2013, 17:25 Uhr
TOSHMAX



Tut mir Leid. Ich habe noch _tmain zu main abgeändert und habe es nicht erwähnt, weil ich dachte das wäre so eine Visual Studio "Erweiterung", die bereits funktioniert.

Anscheindend könntest du alternativ auch TCHAR.h inkludieren. Siehe http://msdn.microsoft.com/en-us/library/6wd819wh.aspx.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.10.2013, 23:46 Uhr
Alex_c-plusplus



Ich danke dir vielmals! :-D

Jetzt funktioniert das Programm endlich...!
oh man hat das gedauert, nur mit dem Buch hätte das nicht geklappt.
Danke für deine Hilfe!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: