operatoren selber schreiben @ WIR brauchen echt hilfe



  • Dasd schrieb:

    Wie wäre es mal mit einer konkreteren Fragestellung?

    Die Operatoren lassen sich allesamt analog zu den beiden gegebenen implementieren. Bei konkreten Fragen gibt es auch konkrete Antworten. Aber einen ganzen Roman posten und hoffen, dass jemand eure Aufgaben erledigt ist definitiv der falsche Ansatz.



  • also, wie vergleicht man denn dann die zwei klassen miteinander??
    wir haben es mit if else versucht, aber das funktionierte nicht.
    du musst uns ja keinen roman antworeten.
    ne kleine denkidee reicht
    danke

    t i m



  • Pelipe schrieb:

    Ey ihr müsst uns helfen!

    Wieso muss ich das?

    -junix



  • leuet bitte schrieb:

    ne kleine denkidee reicht

    Na dann:

    leuet bitte schrieb:

    also, wie vergleicht man denn dann die zwei klassen miteinander??

    Was genau an den Klassen willst du denn vergleichen?
    Tip: Die Adresse im Speicher wo die Klasse liegt zu vergleichen macht wenig sinn

    Denkt mal darüber nach.



  • bitte helft uns.
    weißt du,
    irgendwann habt ihr mal ein problem und euch hilft keiner.
    stell dir das mal vor.
    man einige telefonieren hier gerade zu kumpels aber von sowas haben wir keinen plan.
    wir wissen auch net, was unser lehrer da mit bewirken weill, wenn er uns sowas gibt. warscheinlich will er seheen, wie gut unsere kommunikation zu anderen ist.
    aber ein kleiner logischer tipp wäre ja nicht zu viel oder??
    wir danken euch echt für jeden tipp

    gretts
    masterfu



  • es soll die ganze tTime klasse verglichen werden.
    wir haben ja 6 variuablen
    und wenn dann zum beispiel

    klasse 1 == klasse 2 ist (also alles übereinstimmt)

    dann soll irgendwie glaube ich true zurückkommen
    so interpretieren wir das jedenfalls

    helft uns



  • bitte schrieb:

    irgendwann habt ihr mal ein problem und euch hilft keiner.
    stell dir das mal vor.

    Nö, weil ich mich mit der Materie jeweils auseinandersetze...

    bitte schrieb:

    warscheinlich will er seheen, wie gut unsere kommunikation zu anderen ist.

    Ich glaube eher er will EUER analytisches Denken sehen und nicht, wie ihr euch die Lösung von anderen zusammenschnorrt.

    bitte schrieb:

    aber ein kleiner logischer tipp wäre ja nicht zu viel oder??
    wir danken euch echt für jeden tipp

    Steht doch da?

    -junix



  • hm schrieb:

    es soll die ganze tTime klasse verglichen werden.
    wir haben ja 6 variuablen

    jo.

    hm schrieb:

    (also alles übereinstimmt)

    ...was soviel heisst wie?

    hm schrieb:

    dann soll irgendwie glaube ich true zurückkommen

    Haja, oder false...

    Frage: als was bezeichnet man "=="?

    hm schrieb:

    helft uns

    Lass solche sätze in Zukunft. Alleine die Tatsache, das du hier postest impliziert das du Hilfe suchst. Ist also völlig unnötig, redundant und nervtötend ist dieses gewinsel auch.



  • Da steht ne Aufgabe (im Quelltext)
    wer lesen kann is klar im Vorteil!
    Wir wollen ja nur eine kleine Hilfe, wie man das lösen könnte!
    müsst uns ja nich helfen, zwingt euch ja auch keiner zu!
    Wäre trotzdem nett 😉
    Greetz Pelipe.de



  • Pelipe.de schrieb:

    Da steht ne Aufgabe (im Quelltext)
    wer lesen kann is klar im Vorteil!

    Wenn man auch mal darüber hinwegsieht, dass dieser Ton reichlich unverfrohren ist für einen Bittsteller, dann muss ich sagen: Was soll ich mit der Aufgabe? Die musst DU ja lösen, nicht ich.

    Pelipe.de schrieb:

    Wir wollen ja nur eine kleine Hilfe, wie man das lösen könnte!

    Du fragst nach Gedankenanstössen die kriegst du.

    Pelipe.de schrieb:

    müsst uns ja nich helfen, zwingt euch ja auch keiner zu!

    Klang aber so "Ihr müsst uns helfen"....

    Pelipe.de schrieb:

    Wäre trotzdem nett 😉

    Ich bin nicht nett zu leuten die mich nicht kennen und dinge von mir fordern während sie das was ich anbiete ausschalge.

    -junix



  • so. wir habengerade mit eienem anwendungsentwickler telefoniert und es hinbekommen.
    WIR
    haben auch schon alle anderen dinger hinbekommen. er hat uns das erklärt. aber jetzt eine ernsthafte bitte an dich

    tTime tTime::operator- (tTime t)
    {
        tTime hlp;
    	hlp.hour = hour - t.hour;
    	hlp.min = min - t.min;
    	hlp.sec = sec - t.sec;
             hlp.tag = tag - t.tag;
             hlp.monat = monat - t.monat;
             hlp.jahr = jahr - t.jahr;
    	hlp.normIt_minus ();
    
       return hlp;
    }
    

    das ding funzt zwar
    aber wenn du dann 1:40:00 - 2:00:00 rechnest, sagt der -1,4. obwohl er -20 m,in ausgeben müsste
    haste ne idee??



  • Hängt wahrscheinlich davon ab, was normIt_minus macht.



  • jahr+=monat / 12;
     monat %= 12;
     monat += tag / 30;
     tag %= 30;
     tag+= hour / 24;
     hour %= 24;
     min %= 60;
     hour += min / 60;
     sec %= 60;
     min += sec/60;
    

    ich habe versucht, es anders als norm it zu machen - aber es hatte keinen effekt.
    also sie ist genauso wie normit()
    ich weiß nicht, wo der fehler ist.
    falls ihr uns daraquf ne lösung gebt, dann wärt ihr echt die ebsten
    danke



  • so schrieb:

    aber wenn du dann 1:40:00 - 2:00:00 rechnest, sagt der -1,4. obwohl er -20 m,in ausgeben müsste

    Vllt. solltet ihr nochmal nachrechnen...



  • //---------------------------------------------------------------------------
    #include <vcl\condefs.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    //---------------------------------------------------------------------------
    #include <iomanip.h>
    #include <conio.h>
    //---------------------------------------------------------------------------
    #pragma hdrstop
    /*---------------------------------------------------------------------------
    Aufgaben:	Erweitere die untenstehende Zeitklasse funktionsfähig um Tag, Monat
    ========  	und Jahr und schreibe die geforderten - im Quelltext nur als
    		Prototypen vorhandenen -  Memberfunktionen bzw. Klassenmethoden.
    		Hilfsfunktionen, die dir sinnvoll erscheinen, solltest du schreiben.
    		Am Schluss soll untenstehendes Hauptprogramm ohne Fehler laufen.
    //-------------------------------------------------------------------------*/
    class tTime                                   //Alles zu erweitern
    {
    	private:
      	long year;
        long month;
        long day;
    		long hour;
    		long min;
    		long sec;
    		void normIt ();
    	public:
    	 	tTime () : year(0L), month(0L), day(0L), hour(0L), min(0L), sec(0L) {};
    		tTime (long y, long mth, long d, long h, long m, long s)
    			: year(y), month (mth), day (d), hour(h), min(m), sec(s) {normIt ();}
    		void show (char* s);
    //---------------------------------------------------------------------------
    		tTime operator+ (tTime t);                //Ebenfalls beides zu erweitern
    		tTime operator+= (tTime t);
    //---------------------------------------------------------------------------
    		//DEINE DINGER! All dies musst Du vollständig selbst schreiben
    		void setTime (long y, long mth, long d, long h, long m, long s);
    		bool operator== (tTime t);
    		bool operator!= (tTime t);
    		bool operator> (tTime t);
    		bool operator<= (tTime t);
    		tTime operator* (long v);   //ermoeglicht z.B.: Zeit mal 5 zu nehmen
    		tTime operator-(tTime t);   //Achtung!!!!!
    };
    //---------------------------------------------------------------------------
    void tTime::setTime (long y, long mth, long d, long h, long m, long s)
    {
    }
    //---------------------------------------------------------------------------
    void tTime::normIt ()
    {
    	min += sec / 60;
      sec %= 60;
      hour += min / 60;
    	min %= 60;
      day += hour / 24;
      hour %= 24;
      month += day /30;
      day %= 30;
      year += month /12 ;
      month %= 12;
    }
    //---------------------------------------------------------------------------
    tTime tTime::operator+ (tTime t)  //tTime tTime::add (tTime t)
    {
    	tTime hlp;
      hlp.year = year + t.year;
      hlp.month = month + t.month;
      hlp.day = day + t.day;
    	hlp.hour = hour + t.hour;
    	hlp.min = min + t.min;
    	hlp.sec = sec + t.sec;
    	hlp.normIt ();
    	return hlp;
    }
    //---------------------------------------------------------------------------
    tTime tTime::operator+= (tTime t)
    {
    	year = year + t.year;
      month = month + t.month;
      day = day + t.day;
    	hour = hour + t.hour;
    	min = min + t.min;
    	sec = sec + t.sec;
    	normIt ();
    	//*this = *this + t;   //Alternativ fuer alles obige
    	return *this;
    }
    //---------------------------------------------------------------------------
    tTime tTime::operator* (long v)
    {
      tTime hlp;
      hlp.year = year * v;
      hlp.month = month * v;
      hlp.day = day * v;
      hlp.hour = hour * v;
      hlp.min = min * v;
      hlp.sec = sec * v;
      return hlp;
    }
    //---------------------------------------------------------------------------
    tTime tTime::operator- (tTime t)
    {
      tTime hlp;
      hlp.hour = hour - t.hour;
      hlp.min = min - t.min;
      hlp.sec = sec - t.sec;
      hlp.day = day - t.day;
      hlp.month = month - t.month;
      hlp.year = year - t.year;
      hlp.normIt();
      return hlp;   
    }
    //---------------------------------------------------------------------------
    bool tTime::operator== (tTime t)
    {
      	return (year == t.year &&
      	 				month == t.month &&
         				day == t.day &&
         				hour == t. hour &&
         				min == t.min &&
         				sec == t.sec);
    }
    //---------------------------------------------------------------------------
    bool tTime::operator!= (tTime t)
    {
      return !(operator== (t));
    }
    //---------------------------------------------------------------------------
    bool tTime::operator> (tTime t)
    {
      bool hlp = true;
      if(year < t.year)
      	hlp = false;
      else if(month < t.month)
      	hlp = false;
      else if(day < t.day)
        hlp = false;
      else if(hour < t.hour)
      	hlp = false;
      else if(min < t.min)
      	hlp = false;
      else if(sec < t.sec)
      	hlp = false;
      return hlp;
    }
    //---------------------------------------------------------------------------
    bool tTime::operator<= (tTime t)
    {
    	return !(operator> (t));
    }
    //---------------------------------------------------------------------------
    void tTime::show (char* s)
    {
    	cout  << setw (20) << s << "==> "
    				<< setw (3) << year << " : " << setw (3) <<month << " : "
    				<< setw (3) << day << " : "
    				<< setw (3) << hour << " : "
    				<< setw (3) << min << " : " << setw (3) << sec << endl << endl;
    }
    //---------------------------------------------------------------------------
    void main()
    {
    	/*
    		Es empfiehlt sich, sich mit einem ständig erweiterten Hauptprogramm
    		testend an die Überprüfung der vorgenommenen Veränderungen und selbst
    		zu schreibenen Funktionen HERANZUTASTEN.
    	*/
    	tTime summe, drei;
    	tTime eins (0,0,0,5,5,0);
    	tTime zwei (0,0,0,5,5,0);
    	drei = eins * 7;
    	eins.show("Eins");
    	zwei.show("Zwei");
    	drei.show("Drei(Eins*7)");
    	summe = eins + zwei + drei; //eins.add(zwei.add(drei))
    	summe.show("Summe123");
    	cout << endl;
    	summe += drei;
    	summe.show("Summe+=Drei");
    	summe = eins - zwei;
    	summe.show("Eins minus Zwei");
    	if (eins == zwei)
      	cout << "Eins == Zwei true" << endl;
      else                                            // ==
      	cout << "Eins == Zwei false" << endl;
    	if (eins != zwei)
      	cout << "Eins != Zwei true" << endl;
      else                                            // !=
      	cout << "Eins != Zwei false" << endl;
    	if (eins > zwei)
      	cout << "Eins > Zwei true" << endl;
      else                                            // >
      	cout << "Eins > Zwei true false" << endl;
    	if (eins <= zwei)
      	cout << "Eins <= Zwei true" << endl;
      else                                            // <=
      	cout << "Eins <= Zwei false" << endl;
    	getch ();
    }
    //---------------------------------------------------------------------------
    


  • Cool. Noch mehr Quelltext. Habe ich mir schon immer gewünscht.


Anmelden zum Antworten