Tageszeit Projekt -> Zeitausagbe in Worten



  • Woher die Ausgabe "0Null0" kommt, bin ich auch überfragt.

    Desweiterebn bekomme ich keine Leerzeichen bzw zeilenschübe zwischen der ausgabe in Worten und der ausgabe der vorhandenen objekte hin

    Leerzeichen kannst du mit "cout<<' ';" ausgeben, Zeilenwechsel mit "cout<<'\n';" oder "cout<<endl;".



  • HAllo,

    ich habs gefunden lag wohl an der Ausgabe Minute bei 1 und Minuten bei allem anderen etc...

    nun werden die sekunden aber seltsamerweise net mit der zahl ausgegeben

    // File: daytime.cpp: implementation of the daytime class.
    // Author: Gunnar Goebel
    // Date: 06-04-28
    // Version 1.0
    // Copyright: This File is released under a creative Common Licence. See Link for further Information
    // Licence Link: http://creativecommons.org/licenses/by-nc-sa/2.0/de/
    //////////////////////////////////////////////////////////////////////
    
    #include "daytime.h"
    #include <iostream>
    #include <cassert>
    #include <string>
    using namespace std;
    
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
    static string numbers[]= {"null", "ein", "zwei", "drei", "vier", "fuenf", "sechs",
                              "sieben", "acht", "neun", "zehn", "elf", "zwoelf", "dreizehn",
                              "vierzehn", "fuenfzehn", "sechzehn", "siebzehn", "achtzehn",
                              "neunzeh", "zwanzig", "einundzwanzig", "zweiundzwanzig", "dreiundzwanzig",
                              "vierundzwanzig", "fuenfundzwanzig", "sechsundzwanzig", "siebenundzwanzig"
                              "achtundzwanzig", "neunundzwanzig", "dreissig", "einunddreissig",
                              "zweiunddreissig", "dreiunddressig", "vierunddreissig",
                              "fuenfunddreissig", "sechsunddreissig", "siebenunddreissig",
                              "achtunddreissig", "neununddreissig", "vierzig", "einundvierzig", "zweiundvierzig",
                              "dreiundvierzig", "vierundvierzig", "fuenfundvierzig", "sechsundvierzig", "siebenundvierzig"
                              "achtundvierzig", "neunundvierzig", "fuenfzig", "einundfuenzig", "zweiundfuenzig",
                              "dreiundfuenzig", "vierundfuenzig", "fuenfundfuenzig", "sechsundfuenzig", "siebenundfuenzig"
                              "achtundfuenzig", "neunundfuenzig",};
    
    int daytime::NumberOfTimeObjekts = 0;
    
    daytime::daytime()
    {
        ++ NumberOfTimeObjekts;
        cout << "Vorhandene Objekte: " << NumberOfTimeObjekts <<endl;
    }
    
    daytime::~daytime()
    {
        -- NumberOfTimeObjekts;
        cout << "Vorhandene Objekte: " << NumberOfTimeObjekts <<endl;
    }
    
    void daytime::print24hFormat()
    {
        cout << ( hour < 10 ? "0" : "" ) << hour << ":"
             << ( minute < 10 ? "0" : "" ) << minute << ":"
             << ( second < 10 ? "0" : "" ) << second;
    }
    
    void daytime::print12hFormat()
    {
        cout << (( hour==0 || hour==12 ) ? 12 : hour % 12 )
             << ":" << ( minute < 10 ? "0" : "" ) << minute
             << ":" << ( second < 10 ? "0" : "" ) << second
             << ( hour < 12 ? " AM" : " PM" );
    }
    
    void daytime::setHMS(int HMShour, int HMSminute, int HMSsecond)
    {
        // check if hour >=0 and <24
        assert(HMShour < 24 && HMShour >= 0);
        // check if minute >=0 and <60
        assert(HMSminute < 60 && HMSminute >= 0);
        // check if second >=0 and <60
        assert(HMSsecond < 60 && HMSsecond >= 0);
    
        hour = HMShour;
        minute = HMSminute;
        second = HMSsecond;
    }
    
    /*void daytime::endTime()
    {
        cout << "Abendessen endet um: ";
        cout << ( hour < 10 ? "0" : "" ) << hour << ":"
             << ( minute < 10 ? "0" : "" ) << minute << ":"
             << ( second < 10 ? "0" : "" ) << second <<endl;
    }*/
    
    int daytime::getTimeInSeconds()
    {
        int sec;
        sec = hour*60*60 + minute*60 + second;
    return sec;
    }
    
    void daytime::setS(int sec)
    {
        assert(sec < 86401);
        hour = sec/3600;
        sec = sec%3600;
        minute = sec/60;
        second = sec%60;
    }
    
    void daytime::printHour12()
    {
      int h12 = (( hour==0 || hour==12 ) ? 12 : hour % 12 );
      cout << numbers[h12] << " Uhr ";
    }
    
    void daytime::printHour24()
    {
    	cout << numbers[hour] << " Uhr ";
    }
    
    void daytime::printMinute()
    {
    	cout << numbers[minute] << " Minute(n) "; 
    		//<< (minute==1) ? " Minute ":" Minuten ";
    }
    
    void daytime::printSecond()
    {
    	cout << numbers[second]  << " Sekunde(n) \n";
    		//<< (second==1) ? " Sekunde ":" Sekunden " ;
    }
    
    int getDurationInSeconds(daytime end, daytime begin)
    {
        int durationInSeconds;
        durationInSeconds = end.getTimeInSeconds() - begin.getTimeInSeconds();
    return durationInSeconds;
    }
    


  • Hallo Gunnar,

    bist ja schon recht weit mit deinem Programm. Die Lehrmethode bei euch kann ich zwar auch nicht ganz nachvollziehn, aber das ist ja hier auch nicht das Thema.
    Mir ist bei Deinem String-Array aufgefallen dass du viele Kommata vergessen hast, das verursacht bestimmt eine menge Fehler.

    Dein Array sollte so hier aussehen, falls du es nicht schon längst geändert hast.

    static string numbers[]= {"null", "ein", "zwei", "drei", "vier", "fuenf", "sechs",
                              "sieben", "acht", "neun", "zehn", "elf", "zwoelf", "dreizehn",
                              "vierzehn", "fuenfzehn", "sechzehn", "siebzehn", "achtzehn",
                              "neunzeh", "zwanzig", "einundzwanzig", "zweiundzwanzig", "dreiundzwanzig",
                              "vierundzwanzig", "fuenfundzwanzig", "sechsundzwanzig", "siebenundzwanzig",
                              "achtundzwanzig", "neunundzwanzig", "dreissig", "einunddreissig",
                              "zweiunddreissig", "dreiunddressig", "vierunddreissig",
                              "fuenfunddreissig", "sechsunddreissig", "siebenunddreissig",
                              "achtunddreissig", "neununddreissig", "vierzig", "einundvierzig", "zweiundvierzig",
                              "dreiundvierzig", "vierundvierzig", "fuenfundvierzig", "sechsundvierzig", "siebenundvierzig",
                              "achtundvierzig", "neunundvierzig", "fuenfzig", "einundfuenzig", "zweiundfuenzig",
                              "dreiundfuenzig", "vierundfuenzig", "fuenfundfuenzig", "sechsundfuenzig", "siebenundfuenzig",
                              "achtundfuenzig", "neunundfuenzig"};
    

    Gruß Chris



  • Gunnar_Fh schrieb:

    nun werden die sekunden aber seltsamerweise net mit der zahl ausgegeben

    Wie meinst du das? Zeigt er das Wort nicht an?

    mfg.


Anmelden zum Antworten