Fehler E2034 Konvertierung von float nach konto nicht möglich



  • Das war keine Kritik an deinem code fr33g, sondern war als Denkanstoss für den TE gedacht 🙂



  • die aufgabenstellung habe ich ja ganz am anfang mit reingestellt...
    das Programm sollte ja ohne viel Schnick-Schnack sein
    achja.. die Berrechnung kann ich ja eigentlich wirklich in die class mitrein setzen

    EDIT: danke für den "Denkanstoß" aber im Moment bin ich froh dass es jetzt funktioniert^^



  • Leute ... 😉
    ich hab das Programm verbessert und es funktioniert ;P
    also die Berechnung hab ich jetzt in der Klasse drin
    außerdem hab ich den Speicher dynamisch verwaltet

    nochmals DANKE, ohne eure Hilfe hätte ich noch Tage lang an der Aufgabe gesessen

    lg Manuela



  • ManuEllen schrieb:

    Leute ... 😉
    ...außerdem hab ich den Speicher dynamisch verwaltet...

    Ehm zeig mal bitte den Code, denn dynamisch verwalten heißt nicht automatisch besser 😉

    Lg freeG



  • (dynamische Speicherverwaltung ist bei der Aufgabe gefordert)
    es kann sein das ihr Profis, das Ganze ein wenig anders machen würdet,
    aber ich bin der Meinung das es so wie´s nun ist ganz in Ordnung ist 😛

    #include <iostream.h>
    #include <conio.h>
    
    class konto
    {
    private:
     int Einz;
     float Zins, Betr, Erge;
    
    public:
     int kontonummer;
     konto(int ein, float zin, float betr, float erg)
     {Einz=ein; Zins=zin; Betr= betr; Erge= erg ;}
     konto(){Einz=0; Zins=0; Betr=0; Erge=0; return;}
    
     void berechnung();
     int ausgabeEinzahlung();
     float ausgabeZinssatz();
     float ausgabeBetrag();
     float ausgabeErgebnis();
    };
    
    void konto:: berechnung()
            {
            Einz = kontonummer * 500;
            Zins = kontonummer/ 100.0;
            Betr = Einz*Zins;
            Erge = Einz + Betr;
            }
    
    int konto:: ausgabeEinzahlung()
            { return Einz;        }
    
    float konto:: ausgabeZinssatz()
            { return Zins;        }
    
    float konto:: ausgabeBetrag()
            { return Betr;        }
    
    float konto:: ausgabeErgebnis()
            { return Erge;        }
    
    int main()
    {
     konto *kto=NULL;
     int anz;
     cout<<endl<<"Wie viele Konten sollen erstellt werden?;
     cin>>anz;
     kto=new konto[anz];            
     float Zinssatz, Betrag, Erg;
    
    for(int i=0; i<anz; i++)
     {
      kto[i].kontonummer=i+1;
      kto[i].berechnung();
    
      cout<<"Das Konto Nr"<<kto[i].kontonummer<<" hat eine Einzahlung von:"
      << kto[i].ausgabeEinzahlung() <<endl;
      cout<<"einen Zinssatz/-betrag von: "<< kto[i].ausgabeZinssatz() <<" Betr: "
      << kto[i].ausgabeBetrag()<<endl;
      cout<<"und ein Erg von "<< kto[i].ausgabeErgebnis() <<endl;
     }
    
    delete []kto;
    kto =NULL;             
    getch();
    }
    

    lg Manuela



  • @ fr33g

    ja was sagst du zu meinem Programm?
    ist´s so okay?



  • Ich bin zwar nicht fr33g, aber:

    - für die Konstruktoren solltest du lieber Initialisierungslisten verwenden
    - public-Member sind ungünstig, weil du nicht kontrollieren kannst, wer diese verändert
    - die berechnung() Methode sieht (inhaltlich) eigenartig aus - bist du sicher, daß das so gemacht werden soll?
    - verwende lieber double anstelle von float
    - und vector<> anstelle des manuell verwalteten Speichers



  • ManuEllen schrieb:

    @ fr33g

    ja was sagst du zu meinem Programm?
    ist´s so okay?

    Ich bin auch nicht fr33g, aber gebe auch mal meinen Senf dazu...

    Zuerst fällt mir die Einrückung auf, die nicht sonderlich leserlich ist. Die Initialisierungen sollte man auf mehrere Zeilen verteilen bzw. sogar Initialisierungslisten verwenden. Deine Funktionsnamen sind übrigens irreführend. Bei einer Funktion ausgabe... erwarte ich, das diese Zeile auch eine Ausgabe macht. Deine Funktionen geben aber nur einen Wert zurück.



  • die berechnung stimmt so 😛
    könntet ihr mir vielleicht zeigen wie ihr euere vorschläge umsetzen würdet?
    lg



  • ManuEllen schrieb:

    die berechnung stimmt so 😛

    Na wenn du das sagst 😃

    könntet ihr mir vielleicht zeigen wie ihr euere vorschläge umsetzen würdet?

    Konstruktoren:

    konto() : Einz(0), Zins(0), Betr(0), Erge(0) {}
    

    public-Member: Anstatt die Kontonummer öffentlich zugänglich zu machen, solltest du eine Methode bereitstellen, um den Wert zu setzen

    Funktionsnamen: Da wäre eventuell getEinzahlung() besser.

    Speicherverwaltung: Schau dich mal nach den STL-Containern um, besonders nach vector<>.



  • merci 😉
    das mit dem vektor<> schau ich mir demnächst mal an



  • ManuEllen schrieb:

    @ fr33g

    ja was sagst du zu meinem Programm?
    ist´s so okay?

    Da bin ich ja sehr geschmeichelt dass du extra nach meiner Meinung fragst 😉 😃
    Ne aber Spaß beseite, sorry dass ich erst jetzt schreibe, aber ich war mit Fußball beschäftigt 😋 . Anonsten wurde aber ja eigentlich schon alles von den Anderen genannt, was auch ich bemängelt hätte.
    Würd mir an deiner Stelle unbedingt auch Vektoren anschauen, bzw generell die STL, ist sehr hilfreich.

    Lg freeG


Anmelden zum Antworten