001
09.08.2017, 10:47 Uhr
Alex33
|
C++: |
#include "CJulianDate.h" #include <cstdio> #include<iostream> using namespace std; #include "CCalendarEntry.h" //=============================================== // Erg�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�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(); }
|
C++: |
#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�r den Termin. * * Da der gregorianische Kalender erst am 15.10.1582 in Kraft trat, erfolgt * eine Plausibilit�tspr�fung (Zusicherung). Liegt das �bergebene Datum vor * dem 15.10.1582 werden die Daten nicht �bernommen (die Attribute bleiben * unver�ndert) und es wird "false" zur�ckgegeben. * * - date: das Datum * - location: der Ort * - description: die Beschreibung * * R�ckgabewert: true, wenn die Daten �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_ */
|
C++: |
#include <iostream> // Header f�r die Standard-IO-Objekte (z.B. cout, cin) #include <stdlib.h> #include "CJulianDate.h" // F�gen Sie hier weitere ben�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); }
|
C++: |
/* * 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; }
|
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
https://www.pic-upload.de/view-33685174/prog1.png.html https://www.pic-upload.de/view-33685175/prog2.png.html
https://www.pic-upload.de/view-33685176/prog3.png.html Dieser Post wurde am 09.08.2017 um 10:48 Uhr von Alex33 editiert. |