Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C++ Sprache » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (6): [1] 2 3 nächste » ... letzte » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C++ Sprache
Beiträge zu diesem Thema Autor Datum
 C++ Sprache Victor 06.08.2017 12:47
 RE: C++ Sprache as_string 06.08.2017 14:29
 RE: C++ Sprache Victor 06.08.2017 14:38
 RE: C++ Sprache Victor 08.08.2017 02:13
 RE: C++ Sprache Victor 09.08.2017 12:36
 RE: C++ Sprache Victor 12.08.2017 11:14
 RE: C++ Sprache as_string 12.08.2017 12:27
 RE: C++ Sprache as_string 12.08.2017 13:57
 RE: C++ Sprache Victor 12.08.2017 23:42
 RE: C++ Sprache as_string 13.08.2017 00:32
 RE: C++ Sprache Victor 13.08.2017 01:51
 RE: C++ Sprache as_string 13.08.2017 11:50
 RE: C++ Sprache Victor 13.08.2017 11:59
 RE: C++ Sprache as_string 13.08.2017 12:19
 RE: C++ Sprache Victor 13.08.2017 13:58
Nächste Seite »

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Victor
unregistriert
C++ Sprache Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo alle zusammen .

Habe im Moment bei der g) mit der Print methode so meine Probleme.

Habe irgendwie das Gefühl das ich an die Grenzen meines Wissens gekommen bin .

Wie soll ich das ausgeben ?
Zeit: Dienstag, 14.2.2017

Ich habe es ein wenig probiert ,bin nicht sicher wie ich es machen soll?
Header


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
    #ifndef MYCODE_CJULIANDATE_H_
#define MYCODE_CJULIANDATE_H_

#include <string>
#include<iostream>
using namespace std;


/**
 * Diese Klasse repr&#65533;sentiert ein Julianisches Datum ohne Uhrzeit.
 */
class CJulianDate {
private:
	long m_days;

	/**
	 * Formatiert die &#65533;bergebene Tagesnummer (1-31) wie folgt: Ist die Zahl
	 * einstellig, wird ein Leerzeichen vorangestellt (3 --> " 3"). Stimmt
	 * die Zahl mit dem Tag des von diesem Objekt repr&#65533;sentierten
	 * gregorianischen Datums &#65533;berein, wird das Ergebnis mit eckigen
	 * Klammern umgeben ("10" --> "[10]"), sonst werden am Anfang und
	 * am Ende je ein Leerzeichen erg&#65533;nzt ("10" --> " 10 ").
	 */
	std::string formatDayNumber (short day) const;
public:

	/**
	 * Erzeugt ein neues Objekt mit dem angegebenen Julianischen Datum.
	 */
	CJulianDate(long date = 0);



	/**
	 * Erzeugt ein neues Objekt, dessen Wert aus dem angegebene Gregorianische Datum
	 * berechnet wird.
	 *
	 * - year: das Jahr
	 * - month: der Monat (Januar = 1)
	 * - day: der Tag (erster Tag eines Monats: 1)
	 */
	CJulianDate(int year, short month, short day);

	CJulianDate(const CJulianDate& oldvariable);

	/**
	 * Liefert das Julianische Datum (Tage seit dem 1. Januar -4712 (4713 v. Chr)).
	 */
	long getJulianDate() const;

	/**
	 * &#65533;bernimmt das angegebene Julianische Datum.
	 */
	void setJulianDate(long date);

	/**
	 * Liefert den aktuallen Wert als Gregorianisches Datum.
	 *
	 * - year: das Jahr
	 * - month: der Monat (Januar = 1)
	 * - day: der Tag (erster Tag eines Monats: 1)
	 */
	void toGregorianDate(int& year, short& month, short& day) const;
	void prettyPrintMonth();
	/**
	 * Konvertiert und &#65533;bernimmt das angegebene Gregorianische Datum.
	 *
	 * - year: das Jahr
	 * - month: der Monat (Januar = 1)
	 * - day: der Tag (erster Tag eines Monats: 1)
	 */
	void fromGregorianDate(int year, short month, short day);

	/**
	 * Liefert den Wochentag zu dem aktuellen Datum (Montag = 1).
	 */
	int dayOfWeek() const;

	/**
	 * Liefert den Namen des Wochentags zu dem aktuellen Datum (Montag = 1).
	 */
	std::string dayOfWeekAsName() const;

	/**
	 * Addiert die angegebene Anzahl Tage zu diesem Julianischen Datum hinzu.
	 */
	CJulianDate& operator+= (long days) {
		m_days += days;
		return *this;
	}


	/**
	 * Vergleicht zwei Julianische Daten und liefert true, wenn das als
	 * linker Operand angegebene Datum vor dem als rechter Operand
	 * angegebenen liegt.
	 */
	bool operator< (const CJulianDate& rhs) const;
	friend ostream& operator << (ostream& lop, const CJulianDate& rhs);
	long operator-(const CJulianDate& other);
	void print();


};

#endif /* MYCODE_CJULIANDATE_H_ */
   



code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:

#include "CJulianDate.h"
#include <cstdio>
#include<iostream>
using namespace std;
#include "CCalendarEntry.h"

//===============================================
// Erg&#65533;nzen Sie Ihren Code am Ende dieser Datei!
//===============================================

CJulianDate::CJulianDate(long date) {
	m_days = date;
}

CJulianDate::CJulianDate(int year, short month, short day) {
	fromGregorianDate(year, month, day);
}

long CJulianDate::getJulianDate() const {
	return m_days;
}

void CJulianDate::setJulianDate(long date) {
	m_days = date;
}

void CJulianDate::toGregorianDate(int& year, short & month, short & day) const {
	long i, j, k, l, n;

	l = m_days + 68569;
	n = 4 * l / 146097;
	l = l - (146097 * n + 3) / 4;
	i = 4000 * (l + 1) / 1461001;
	l = l - 1461 * i / 4 + 31;
                                                                                                                                     	j = 80 * l / 2447;
	k = l - 2447 * j / 80;
	l = j / 11;
	j = j + 2 - 12 * l;
	i = 100 * (n - 49) + i + l;

	year = i;
	month = j;
	day = k;
}

void CJulianDate::fromGregorianDate(int year, short month, short day) {
	m_days = day - 32075 + 1461 * (year + 4800 + (month - 14) / 12) / 4
			+ 367 * (month - 2 - (month - 14) / 12 * 12) / 12
			- 3 * ((year + 4900 + (month - 14) / 12) / 100) / 4;
}

int CJulianDate::dayOfWeek() const {
	return (m_days % 7) + 1;
}

std::string CJulianDate::dayOfWeekAsName() const {
	switch (dayOfWeek()) {
	case 1:
		return "Montag";
	case 2:
		return "Dienstag";
	case 3:
		return "Mittwoch";
	case 4:
		return "Donnerstag";
	case 5:
		return "Freitag";
	case 6:
		return "Samstag";
	case 7:
		return "Sonntag";
	default:
		return "(Fehler)";
	}
}

std::string CJulianDate::formatDayNumber(short day) const {
	char buffer[5];
	int year;
	short month;
	short refDay;

	toGregorianDate(year, month, refDay);
	sprintf(buffer, day == refDay ? "[%2d]" : " %2d ", day);
	return std::string(buffer);
}

bool CJulianDate::operator <(const CJulianDate& rhs) const {
	return m_days < rhs.m_days;
}

//=====================================================
// Erg&#65533;nzen Sie Ihren Code unterhalb dieses Kommentars
//=====================================================



ostream& operator << (ostream& lop, const CJulianDate& rhs){
	short day, month;
		int year;
		rhs.toGregorianDate(year, month, day);
		lop<< rhs.dayOfWeekAsName() << ", " << day << "." << month << "." << year << std::endl;
	return lop;

}

long CJulianDate::operator-(const CJulianDate& other){
	return this->m_days -other.m_days;
}
void CJulianDate::prettyPrintMonth(){
	CJulianDate current = CJulianDate(*this);
	int year;
	short month;
	short day;
	short printMonth = month;


	current.toGregorianDate( year,  month,  day);
	 current.fromGregorianDate(year,  month, 1);
	 current.dayOfWeekAsName();
	 current += -(current.dayOfWeek() - 1);
	 current.toGregorianDate(year, month, day);

	 while( month <= printMonth ){
		 if(month <printMonth){

		 cout << " " << " " << " " << " " << endl;


	 }
	 else {

		 current.formatDayNumber(day);
	 }

	 if(current.dayOfWeekAsName() == "Sonntag" ){
		 cout << endl;

	 }
	 current.operator +=(1);}
}

CJulianDate::CJulianDate(const CJulianDate& oldvariable){

	m_days = oldvariable.m_days;
}

void CJulianDate::print(){

	cout<< CJulianDate semesterBegin(2016,10,1) << " ," << CJulianDate semesterBegin(2017,14,2) <<CJulianDate semesterEnd(2017,3,31) << endl;

	    cout << "Dauer::" << "182 Tage" <<  endl;
 cout << "Zeit:" << m_days << " , " <<....... ?

 cout << "Ort:" << m_location <<endl;

 cout<< "Beschreibung:" << " " << "Git-Klausur" << endl;


	prettyPrintMonth();



}











code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:


#ifndef MYCODE_CCALENDARENTRY_H_
#define MYCODE_CCALENDARENTRY_H_

#include <string>
#include "CJulianDate.h"

class CCalendarEntry {
private:
	CJulianDate m_date;
	std::string m_location;
	std::string m_description;

public:
	/**
	 * Setzt die Werte der Attribute f&#65533;r den Termin.
	 *
	 * Da der gregorianische Kalender erst am 15.10.1582 in Kraft trat, erfolgt
	 * eine Plausibilit&#65533;tspr&#65533;fung (Zusicherung). Liegt das &#65533;bergebene Datum vor
	 * dem 15.10.1582 werden die Daten nicht &#65533;bernommen (die Attribute bleiben
	 * unver&#65533;ndert) und es wird "false" zur&#65533;ckgegeben.
	 *
	 * - date: das Datum
	 * - location: der Ort
	 * - description: die Beschreibung
	 *
	 * R&#65533;ckgabewert: true, wenn die Daten &#65533;bernommen wurden.
	 */
	bool set(const CJulianDate& date, const std::string& location,
			const std::string& description);

	/**
	 * Liefert das Datum, zu dem der Termin stattfindet.
	 */
	const CJulianDate& getDate() const;

	/**
	 * Liefert den Ort, an dem der Termin stattfindet.
	 */
	const std::string& getLocation() const;

	/**
	 * Liefert die Beschreibung des Termins.
	 */
	const std::string& getDescription() const;

	/**
	 * Gibt den Termin wie folgt auf der Konsole aus:
	 *
	 * Zeit: <Attribut m_date im gregorianischen Format>
	 * Ort: <Attribut m_location>
	 * Beschreibung: <Attribut m_description>
	 */
	void print() const;
};

#endif /* MYCODE_CCALENDARENTRY_H_ */




code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:

#include <iostream>		// Header f&#65533;r die Standard-IO-Objekte (z.B. cout, cin)
#include <stdlib.h>
#include "CJulianDate.h"
// F&#65533;gen Sie hier weitere ben&#65533;tigte Header-Dateien der
// Standard-Bibliothek ein z.B.
// #include <string>

using namespace std;	// Erspart den scope vor Objekte der
						// C++-Standard-Bibliothek zu schreiben
						// z.B. statt "std::cout" kann man "cout" schreiben

// Inkludieren Sie hier die Header-Files Ihrer Klassen, z.B.
// #include "CFraction.h"


// Hauptprogramm
// Dient als Testrahmen, von hier aus werden die Klassen aufgerufen
int main (void)
{
    CJulianDate semesterBegin(2016,10,1);
    CJulianDate semesterEnd(2017,3,31);
}







Fehlermeldungen:

Description Resource Path Location Type
die Regel für Ziel „CJulianDate/CCalenderEntry.o“ scheiterte subdir.mk /CJulianDate/Debug/CJulianDate line 24 C/C++ Problem
fatal error: CCalendarEntry.h: Datei oder Verzeichnis nicht gefunden CCalenderEntry.cpp /CJulianDate/CJulianDate line 16 C/C++ Problem
Function 'semesterBegin' could not be resolved CJulianDate.cpp /CJulianDate/CJulianDate line 158 Semantic Error
Function 'semesterBegin' could not be resolved CJulianDate.cpp /CJulianDate/CJulianDate line 158 Semantic Error
Function 'semesterEnd' could not be resolved CJulianDate.cpp /CJulianDate/CJulianDate line 158 Semantic Error
Invalid overload of 'endl' CJulianDate.cpp /CJulianDate/CJulianDate line 158 Semantic Error
make: *** [CJulianDate/CCalenderEntry.o] Fehler 1 CJulianDate C/C++ Problem
Member declaration not found CCalenderEntry.cpp /CJulianDate/CJulianDate line 21 Semantic Error

Victor hat diese Bilder (verkleinerte Versionen) angehängt:
prog1.png prog2.png prog3.png

06.08.2017 12:47
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Da steht, er kann die CCalendarEntry.cpp nicht finden. Ich auch nicht...

Gruß
Marco
06.08.2017 14:29 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hier sorry vergessen zu posten

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:

/*
 * CCalendarEntry.cpp
 *
 *  Created on: 04.02.2017
 *      Author: mnl
 */

#include "CCalendarEntry.h"
#include <string>
#include<iostream>
using namespace std;

const std::string& CCalenderEntry::getLocation(){

	return m_location;
}





Hast du tipps für mich?
06.08.2017 14:38
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hast du irgendwelche Tipps ?
08.08.2017 02:13
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hat jemand tipps wie die Print Ausgabe ausschauen soll?
09.08.2017 12:36
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

???
12.08.2017 11:14
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das ist ziemlich viel, was man sich da anschauen muss.
Also, was mir beim kurzen Anschauen auffällt:
Warum implementierst Du die print-Methode in CCJulianDate? Da steht, dass man das (unter Punktabzug) alternativ zur Implementierung der Operatorüberladung von << machen kann (bei der a)), das hat aber nichts mit der g) zu tun. Die Teile e) bis h) gehen alle um die Klasse CCalendarEntry. Dort sollst Du auch die print-Methode implementieren, nachdem die set Methode und so weiter implementiert sind.
Die Überladung des << Operators: Bei der a) steht explizit: "ohne abschließenden Zeilenumbruch". Warum machst Du dann ein << endl dran?
Was ist mit der c)? Ich sehe die Testausgabe nicht.
Ich bekomme übrigens als Dauer einen Tag zu wenig raus, als in der Beispielausgabe. Das kann allerdings trotzdem richtig sein, wenn man nämlich den Semesterbeginn-Tag und Semesterende-Tag einschließlich zählt, müsste man wahrscheinlich einfach noch 1 dazu addieren. Überprüfe das erst einmal.

Erst wenn die CJulianDate-Klasse korrekt ist, kannst Du weiter zur CCalendarEntry gehen!
12.08.2017 12:27 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

In der prettyPrintMonth() Methode:
Die Zuweisung der Variablen month zu printMonth sollst Du natürlich erst machen, nachdem der Wert für die Variable month schon bestimmt ist! So wie Du es jetzt geschrieben hast, macht das ja überhaupt gar keinen Sinn, weil zu dem Zeitpunkt der Zuweisung die Variable month noch einen undefinierten Wert hat.
Du rufst dayOfWeekAsName() zwischendrin einfach mal auf, ohne den Rückgabewert überhaupt zu verwenden. Da die Funktion sonst ja auch keine Nebeneffekte haben sollte (sie ist ja const definiert), bringt das gar nichts.
Dann die while-Schleife:
Wenn Du 4 Leerzeichen ausgeben willst, dann mach das doch einfach mit
code:
1:
cout << "    ";
und nicht mit 4 einzelnen Strings mit jeweils einem Leerzeichen! Außerdem sollst Du da kein endl hin schreiben: Es soll ja in derselben Zeile noch was ausgegeben werden hinten dran. Der Zeilenumbruch soll nur bei "Sonntag" kommen.
Das formatDayNumber darfst Du natürlich nicht als Member von "current" aufrufen! current hat ja auch aktuell day als Tag, dann wäre es ja immer ein Treffer. formatDayNumber musst Du einfach für this aufrufen (also gar kein Objekt vorne dran schreiben, einfach die Funktion formatDayNumber aufrufen und das day von current übergeben).
current um eins erhöhen kannst Du mit current += 1;
Am Ende der while-Schleife solltest Du nochmal year, month und day aktualisieren, damit die Auswertung der Bedingung der While-Schleife den richtigen Monat überprüft.

Also alles in allem ist die ganze Funktion noch eine riesige Baustelle bei Dir. Da sind ja mehr falsche als richtige Zeilen drin!

Gruß
Marco

PS: Da hat dann noch das cout << vor dem formatDayNumber() gefehlt, wenn ich mich recht erinnere...
12.08.2017 13:57 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Aber das mit dem current steht doch in der Aufgabenstellung so ?

Siehe Bild2?
12.08.2017 23:42
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Was steht in der Aufgabe gegen das ich was geschrieben hätte?
13.08.2017 00:32 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:

void CJulianDate::prettyPrintMonth(){
	CJulianDate current = CJulianDate(*this);
	int year;
	short month;
	short day;
	short printMonth = month;


	current.toGregorianDate( year,  month,  day);
	 current.fromGregorianDate(year,  month, 1);
	 current.dayOfWeekAsName();
	 current += -(current.dayOfWeek() - 1);
	 current.toGregorianDate(year, month, day);

	 while( month <= printMonth ){
		 if(month <printMonth){

		 cout << " " << " " << " " << " " << endl;


	 }
	 else {

		 current.formatDayNumber(day);
	 }

	 if(current.dayOfWeekAsName() == "Sonntag" ){
		 cout << endl;

	 }
	 current.operator +=(1);}
}



code:
1:
current.dayOfWeekAsName();


Was soll ich denn in die kleine Klammer schreiben ?
Ich weiss ja nicht welchen Tag ich habe ?

Woher weiss ich was der Rückgabewert ist ?
13.08.2017 01:51
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hast Du denn gar nichts von dem, was ich geschrieben hatte, verstanden? Das ist ja wieder derselbe Quelltext wie vorher.
Zeile 7 macht so keinen Sinn. Du weißt der Variable printMonth den Wert von month zu, der aber zu diesem Zeitpunkt noch gar nicht initialisiert ist. Die Zuweisung musst Du natürlich nach der Zeile 10 machen!
Zeile 12 kannst Du ersatzlos streichen. Was willst Du damit erreichen?
Zeile 19: warum hast Du vier Strings mit jeweils einem Leerzeichen? Du kannst Doch auch einfach einen String mit 4 Leerzeichen ausgeben! Außerdem ist das << endl hier falsch. Es soll doch in derselben Zeile noch dahinter was ausgegeben werden, dann kannst Du doch kein endl machen.
Zeile 25 hat auch wieder 2 Fehler. Die Methode formatDayNumber() gibt selbst nichts aus, sondern gibt einen String zurück, den Du ausgeben möchtest. Nur machst Du mit dem Rückgabewert ja gar nichts. Wie soll da jemals der Tag ausgegeben werden?
Dann ist es falsch diese Methode auf dem Objekt current aufzurufen. Die Variable day ist doch auf Basis diese Objekts initialisiert. Dann würde ja day immer dem Tag des current Objekts entsprechen und es würden immer eckige Klammern um die Nummer drumrum ausgegeben werden.das ist falsch! Nur wenn der current Tag (der in der Variablen Day gespeichert ist) dem Tag des eigenen Objekts entspricht (also this), soll eine solche Klammer ausgegeben werden. Ich habe das Gefühl, Du verstehst da überhaupt nicht, was da überhaupt passiert, oder?

Deine Zeile 32 ist eventuell nicht falsch, aber doch ziemlich unsinnig. Man definiert einen Operator doch nicht, um dann das als Methode operator+=() aufzurufen, sondern den Operator zu verwenden! Du solltest da schreiben current += 1;
Nach dem Hochzählen von current fehlt aber noch was, was mE auch in der Aufgabe erwähnt war. Du musst am Ende der while-Schleife (also noch innerhalb des while-Blocks) die Variablen year, month und day aktualisieren auf Basis von current. Das ist dieselbe Anweisung, wie Du sie schon. In 14 benutzt hast.

Super, jetzt hätte ich Dir auch gleich die ganze Methode schreiben könnnen.ich mache mir da irgendwie Sorgen. Du hast so viele Sachen falsch, dass ich den Eindruck gewinne, dass Du gar nichts verstanden hast. Was bringt es Dir jetzt, wenn ich Dir jedes Detail vorkaue, dann hast Du es vielleicht irgendwann in Deinem Programm richtig, aber immer noch nicht verstanden.
Vor allem finde ich es auch merkwürdig, dass Du die ganzen Fehler, die Du schon in den Aufgabenteilen davor drin hast, gar nicht korrigieren willst. Offenbar hast Du auch noch kein einziges Mal versucht, den Code zu kompilieren, sonst wäre Dir schon so einiges aufgefallen.
Du solltest die Aufgaben nacheinander lösen, nach jeder Teilaufgabe kompilieren und ausführen und schauen, was passiert. Dann würdest Du sehen, dass es nicht viel ist bzw nichts richtiges...

Gruß
Marco
13.08.2017 11:50 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Gut ich setze mich jetzt an der Aufgabe und werde vielleicht bisschen später dann wieder Ansätze posten.

Ich habe sehr viele Probleme beim proggen , hatte auch ein wenig hilfe bei der Aufgabe erhalten , anscheinend war das aber falsch großes Grinsen
13.08.2017 11:59
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

OK, hatte ich mir schon fast gedacht, dass das nicht nur Deine eigenen Gedanken waren, aber das ist schon ok.
Ich denke nur, dass Dein Ansatz vielleicht nicht so sinnvoll ist. Wichtig ist, dass Du irgendwie die Zusammenhänge lernst/verstehst. Wenn Dir ein anderer einfach seinen Code gibt, dann hast Du da ja noch nichts gelernt.
Versuche mal so ungefähr zu verstehen, was ich geschrieben habe, und das dann auch mal umzusetzen, wie Du denkst es könnte passen. Ich bin allerdings erst wieder heute Abend am Rechner...
Und mache mal noch die ersten Teilaufgaben. Du kannst die Klasse CJulianDate ja auch ohne den Rest kompilieren und dann auch eine kleine main.cpp machen, die die ersten paar Methoden aufruft, ähnlich wie es in der Aufgabe ja auch angedacht ist (so kommt man zu den Beispielausgaben zumindest).

Gruß
Marco
13.08.2017 12:19 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Aber nach dem ich current auf this gestellt habe , habe ich Fehlermeldungen bekommen ?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:

void CJulianDate::prettyPrintMonth(){
	CJulianDate current = CJulianDate(*this);
	int year;
	short month;
	short day;
	


	current.toGregorianDate( year,  month,  day);
	 current.fromGregorianDate(year,  month, 1);
	 short printMonth = month;
	 current += -(current.dayOfWeek() - 1);
	 current.toGregorianDate(year, month, day);

	 while( month <= printMonth ){
		 if(month <printMonth){

		 cout << "  ,  ,  ,  ," << endl;


	 }
	 else {

		 this.formatDayNumber(day);
	 }

	 if(this.dayOfWeekAsName() == "Sonntag" ){
		 cout << endl;

	 }
	 current +=1;
	 current.toGregorianDate(year, month, day);

	 
	 }
}


Description Resource Path Location Type
Method 'dayOfWeekAsName' could not be resolved CJulianDate.cpp /CJulianDate/CJulianDate line 144 Semantic Error

Description Resource Path Location Type
Method 'formatDayNumber' could not be resolved CJulianDate.cpp /CJulianDate/CJulianDate line 141 Semantic Error


Ich habe das hier jetzt so gemacht ?

cout << " , , , ," << endl;

Wieso soll da kein endl hin ? Verstehe ich nicht ?
13.08.2017 13:58
Seiten (6): [1] 2 3 nächste » ... letzte » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » C++ Sprache