Problem bei einer Aufgabe!



  • Guten Tag,

    ich habe eine Übung, die ich lösen sollte. Die Übung ist folgendes:

    Schreiben Sie ein Programm, das solange Minutenwerte einliest bis es keine
    valide Ganzzahl bekommt. Das Programm soll die Minuntenwerte in Stunden
    und Minuten umrechnen und formatieren. Bevor das Programm beendet, soll
    die Gesamtdauer aller Eingaben in Minuten angezeigt werden. Die Ausgabe
    des Programms ist wie folgt:
    Geben Sie eine Zeitspanne in Minuten ein: 217
    1. 3:37
    Geben Sie eine Zeitspanne ein in Minuten: 42
    2. 0:42
    Geben Sie eine Zeitspanne ein in Minuten: 60
    3. 1:00
    Geben Sie eine Zeitspanne ein in Minuten: .
    Total min: 920

    Ich neugierig mit der Programmiersprache C++. und ich weiss nicht wie ich anfangen könnte. Ich habe schon ein paar Klassen deklariert wie folgt:
    class Minuten {
    public:

    Minuten(int min);
    int berechneStunden ();
    int berechneMinuten ();
    void ausgabe ();
    private:
    int minuten;
    };

    kann mir jemand vielleicht weiterhelfen
    Vielen Dank im vorraus für Ihre Hilfe

    Gisele



  • Hi,
    also eine Klasse halte ich hier nicht für angebracht. Ich würde es so machen:
    1. while Schleife. Im Kopf dieser machst du deine Eingabe. Die while Schleife bricht automatisch ab, wenn keine Ganzzahl mehr eingeben wird.

    2. In der while Schleife addierst du deine Minuten auf.

    3. Du schreibst dir eine Funktion, die deine Gesamtminuten als Argument bekommt und sie in Stunden-Minuten umrechnet.

    4. Es geht wieder bei 1. los.


  • Mod

    Würde ich eigentlich gar nicht so kompliziert machen, aber wenn es unbedingt mit Klassen sein muss, hier ein Ansatz:

    class Minuten 
    {
    public:
     Minuten(int min);
     std::ostream& ausgabe(std::ostream& out) const;
     void addiere(const Minuten& anderer_wert);
     int get_minuten() const;
     std::istream& lies_ein(std::istream &in) { return in >> minuten; }
    private:
     int minuten;
    }; 
    
    int main()
    {
     Minuten total = 0, aktueller_wert = 0;
     int zaehler = 0;
     while(cout << "Geben Sie eine Zeitspanne in Minuten ein: ",
           aktueller_wert.lies_ein(cin))
      {
        cout << ++zaehler << ". ";
        aktueller_wert.ausgabe(cout);
        cout << '\n';
        total.addiere(aktueller_wert);
      }
      cout << "Total min: " << total.get_minuten() << '\n';
    }
    

    Die fehlenden Codeschnippsel bekommst du bestimmt selber hin.



  • Hallo,
    Vielen Dank für die schnelle Rückmeldung.
    Ich probiere jetzt mal den Code von SeppJ, und melde mich zurück wenn etwas nicht Klappt.
    Nochmal Danke



  • Ich versuche jetzt die andere funktionnen zu schreiben. Aber es funktionniert immer nicht.
    void addiere(const Minuten& anderer_wert);
    int berechneStuden();
    int berechneMinuten();

    hat jemand vielleicht eine idée?

    danke im Vorraus

    Gisele


  • Mod

    Was sollen die Funktionen machen?
    Was ist dein Problem?
    Hat dir denn meine Lösung nicht gepasst?
    Wenn Ja, warum nicht?

    Siehe dringend den ersten Thread in meiner Signatur. Es ist schlecht, wenn deine Fragen mehr Gegenfragen als Antworten provozieren. Dann kann dir nämlich nicht geholfen werden.



  • Hallo,
    Das Problem ist folgende Ausgabe zu bekommen:

    Geben Sie eine Zeitspanne in Minuten ein: 217
    1. 3:37
    Geben Sie eine Zeitspanne ein in Minuten: 42
    2. 0:42
    Geben Sie eine Zeitspanne ein in Minuten: 60
    3. 1:00
    Geben Sie eine Zeitspanne ein in Minuten: .
    Total min: 920

    Ich habe ihre Lösung angepasst aber ich bekomme folgende Fehler:

    Error 2 error LNK2019: unresolved external symbol "public: void __thiscall Minuten::addiere(class Minuten const &)" (?addiere@Minuten@@QAEXABV1@@Z) referenced in function _main C:\Users\dep19025436\documents\visual studio 2010\Projects\Übung1\Übung1\Übung1.obj Übung1

    Error 1 error LNK2019: unresolved external symbol "public: int __thiscall Minuten::get_minuten(void)const " (?get_minuten@Minuten@@QBEHXZ) referenced in function _main

    Error 3 error LNK2019: unresolved external symbol "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall Minuten::ausgabe(class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?ausgabe@Minuten@@QBEAAV?basic_ostream@DU?basic\_ostream@DU?char_traits@D@std@@@std@@AAV23@@Z) referenced in function _main

    Error 4 error LNK2019: unresolved external symbol "public: __thiscall Minuten::Minuten(int)" (??0Minuten@@QAE@H@Z) referenced in function _main C:\Users\dep19025436\documents\visual studio 2010\Projects\Übung1\Übung1\Übung1.obj Übung1

    Error 5 error LNK1120: 4 unresolved externals C:\Users\dep19025436\documents\visual studio 2010\Projects\Übung1\Debug\Übung1.exe 1

    Danke im Vorraus


  • Mod

    Du musst die Funktionen schon noch schreiben! Das ist nur ein Ansatz, den ich dir gegeben habe. Ich mache dir doch schließlich nicht die Hausaufgaben! Sind doch bloß Einzeiler, was ich dir noch übrig gelassen habe.


Log in to reply