Hilfe bei Funktionen



  • Hallo,

    ich habe folgendes Programm geschrieben - nicht lache: Anfänger am Werk ^^

    #include <iostream.h>
    #include <conio.h>
    #include <string.h>
    #pragma hdrstop
    #pragma argsused

    struct BESTELLUNG
    {
    int kundennummer;
    string artikelbezeichnung;
    float preispromengeneinheit;
    float liefermenge;

    void Eingabe();
    float Gesamtpreis(float,float);
    float Mehrwertsteuer(float, float mwst=17);
    };

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

    BESTELLUNG bestelldatensatz;
    bestelldatensatz.Eingabe();

    float preis, menge;

    preis=bestelldatensatz.Gesamtpreis(preis,menge);
    cout<<"\n\nDer Gesamtpreis betraegt "<<preis<<" Euro."<<endl;

    getch();
    return 0;
    }

    /////////////////////////////Funktionen/////////////////////////////////////////

    void BESTELLUNG::Eingabe()
    {
    cout<<"Kundennummer: "; cin>>kundennummer;
    cout<<"Artikelbezeichnung: "; cin>>artikelbezeichnung;
    cout<<"Preis pro Mengeneinheit: "; cin>>preispromengeneinheit;
    cout<<"Liefermenge: "; cin>>liefermenge;
    }

    float BESTELLUNG::Gesamtpreis(float,float)
    {
    return(preispromengeneinheit*liefermenge);
    }

    float BESTELLUNG::Mehrwertsteuer(float, float)
    {
    return();
    }

    Nun meine Frage: Wie kann ich mit der Funktion "Mehrwertsteuer" auf die Funktion Gesamtpreis zugreifen, um die MwSt des Gesamtpreises berechnen zu lassen

    danke im voraus



  • Nun meine Frage: Wie kann ich mit der Funktion "Mehrwertsteuer" auf die Funktion Gesamtpreis zugreifen, um die MwSt des Gesamtpreises berechnen zu lassen

    Du willst innerhalb der Funktion Mehrwertssteuer() die Funktion Gesamtpreis() aufrufen?
    Wenn ja:

    float BESTELLUNG::Mehrwertsteuer(float, float)
    {
        Gesamtpreis(); // Ruft die Funktion Gesamtpreis() für das Objekt auf, welches Mehrwertsteuer() aufgerufen hat.
    return();
    }
    

    Btw: Hier gibt es Cpp-Codetags. (Benutzung derselben siehe in der FAQ sonstiges im Thread Syntaxhighlighting o.ä.)...

    Gruß Caipi



  • Also: ich möchte die Mehrwertsteuer des Gesamtpreises über eine Funktion berechnen lassen ... wie kann ich das realisieren?



  • Mr. Blonde schrieb:

    Also: ich möchte die Mehrwertsteuer des Gesamtpreises über eine Funktion berechnen lassen ... wie kann ich das realisieren?

    Sorry, aber du musst dich schon ein wenig klarer ausdrücken.

    Nehmen wir einmal an, du hast eine Klasse product. Diese besitzt eine Methode total_price(), die den Gesamtpreis des Produkts zurückgibt. Die Methode total_price() ruft ihrerseits die Methoden product_price() und mwst() auf um so den Gesamtpreis zu berechnen.

    #include <iostream>
    using namespace std;
    
    class product
    {
        double id;
        string name;
        double price;
        // ...
    
        public:
            product(size_t i, const string& n, double p) : id(i), name(n), price(p) {}
    
            double product_price() const { return price; }
            double mwst() const { return price * 0.16; }
            double total_price() const { return product_price() + mwst(); }
            // ...
    };
    
    int main()
    {
        product pr(12345, "das absolute spezial-produkt", 9999);
        cout << pr.total_price() << endl;
    }
    

    /edit: Ich brauch dringend Schlaf...

    Gruß Caipi



  • danke erstmal 🙂 - aber dein quellcode ist mir doch noch etwas zu krass ^^

    ich möchte mit dieser funktion

    float BESTELLUNG::Mehrwertsteuer(float, float)...

    die Mehrwertsteuer für den returnwert der funktion:

    float BESTELLUNG::Gesamtpreis(float,float)
    {
    return(preispromengeneinheit*liefermenge);
    }

    berechnen

    wie kann ich das realisieren?



  • Hab das jetzt soweit gelöst:

    #include <conio.h>
    #include <iostream.h>
    #include <string.h>
    #pragma hdrstop
    #pragma argsused

    class BESTELLUNG
    {
    private:
    int kundennummer;
    string bezeichnung;
    float ppm;
    float liefermenge;

    public:
    BESTELLUNG(int k, const string &b, float p, float l);
    ~BESTELLUNG();

    int getKundennummer() {return kundennummer;}
    const string& getBezeichnung() {return bezeichnung;}
    float getPpm() {return ppm;}
    float getLiefermenge() {return liefermenge;}
    void setKundennummer(int k) {kundennummer=k;}
    void setBezeichnung(const string & b) {bezeichnung=b;}
    void setPpm(float p) {ppm=p;}
    void setLiefermenge(float l) {liefermenge=l;}

    void eingabe();
    void gesamtpreis();
    void mehrwertsteuer();

    };

    ////////////////////////////////////////////////////////////////////////////////

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

    BESTELLUNG b(123,"",0.0,0.0);
    b.eingabe();
    b.gesamtpreis();
    b.mehrwertsteuer();

    getch();
    return 0;
    }

    ////////////////////////////////////////////////////////////////////////////////

    BESTELLUNG::BESTELLUNG(int k, const string &b, float p, float l){}

    BESTELLUNG::~BESTELLUNG(){}

    void BESTELLUNG::eingabe()
    {
    cout<<"Kundennummer: "; cin>>kundennummer;
    cout<<"Bezeichnung: "; cin>>bezeichnung;
    cout<<"Preis pro Mengeneinheit: "; cin>>ppm;
    cout<<"Liefermenge: "; cin>>liefermenge;
    }

    void BESTELLUNG::gesamtpreis()
    {
    cout<<(ppm*liefermenge);
    }

    void BESTELLUNG::mehrwertsteuer()
    {
    float mwst;
    cout<<"\n\nMehrwertsteuersatz: "; cin>>mwst;
    cout<<(ppm*(mwst/100));
    }

    aber wie muss ich die funktionen im hauptprogramm aufrufen, wenn ich nicht

    void BESTELLUNG::gesamtpreis()
    {
    cout<<(ppm*liefermenge);
    }

    sondern

    floatBESTELLUNG::gesamtpreis()
    {
    return(ppm*liefermenge);
    }

    verwenden will?

    danke im voraus 🙂



  • Du wurdest bereits einmal gebeten, CodeTags zu verwenden.

    Wenn deine Funktion ein float zurueckliefert, kannst du den Rueckgabewert direkt weiterleiten. In diesem Fall an cout.
    Du musst allerdings das Object b verwenden und nicht die Structur.

    cout << b.Gesamtwert() << endl;



  • Danke 🙂

    sorry wegen den tags - ich war in eile


Anmelden zum Antworten