Kalender


Marschal

Großer Enumerator
Hallo,
Ich habe bis ende Mai ein projekt abzugeben. Es soll was mit Dateihandling zu tun haben. Ich habe mir einen Kalender überlegt, wo man mit WASD und sonstigen Tasten in einem Kalenderblatt (gültig für den jeweiligen Monat) ein Datum Auswählen kann und zu diesem Datum dan in einer Binärdatei informationen wie Geburtstag, Name, Ort usw..speichern kann.

Die erzeugung der Einzelnen Kalender seiten(Von Jan-Dez)habe ich mit einer schleife versucht(Bild). Habe die idde aus einem Zeitstempel mit ctime, ob man nicht daraus die Gewünschte kalenderseite berechnen kann.

Das wär dan auch mein Problem: Wie erstelle ich aus einem Zeitstempel (ctime funktion) eine Kalenderseite?

Würde mich sehr über Hilfe freuen.
Ich kan auch den Sourcecode bereitstellen, wer den haben möchte.

zum Bild(Der Smily soll die "Maus" sein, womit man sich im kalender zurechtfindet - nur die "Maus" wird bis jezt neben die KalenderZahl geschrieben, somit gibt es eine Verschiebeung im Feld)


Mfg Marschal
 

Anhänge

Zuletzt bearbeitet:

Marschal

Großer Enumerator
Bin jezt weiter... (der alte code war ja sowieso Müll..eiglich eher so n paar vorüberlegungen.)

kann nun komplett für das Jahr 2008 jeden monat sogar richtig anzeigen lassen.Ich habs noch nicht variabel gemacht, so dass man nen ewigen Kalender hätte...kommt aber noch;) Der eigentliche sinn, also die termine reinschreiben und löschen (Dateihandling) hab ich noch nicht. werde mein Projekt reinstellen, sobald ichs fertig habe.

Fragen, Anmerkungen, Verbesserungen, Kritik und sontiges...einfach mal antexten;)

Hier der "neue" Sourdecode

MfG Marschal
 

Anhänge

Mickeyman

Mitglied
Bei der Errechnung des Schaltjahres hätte ich mal folgendes zu erwähnen:
Code:
if (jahr%4==0&jahr%100!=0)
   anzahltage[1]=29;
Meiner Meinung nach ist dies falsch! Denn der UND-Operator wird durch zwei "&" ausgedrückt ("&&"), zudem fehlt bei deiner Berechnung noch das Miteinbeziehen des 400 Jahre Zyklus. Daher folgender Vorschlag:
Code:
if ( (jahr%4==0&&jahr%100!=0)||(jahr%400==0) )
   anzahltage[1]=29;
Gruß Mickeyman
 

Marschal

Großer Enumerator
Hast schon recht;) aber gib acht auf diese Zeile:
(der alte code war ja sowieso Müll..eiglich eher so n paar vorüberlegungen.)
glaub mir, an so kleinigkeiten wie operatoren sols nicht liegen;)

..hab jezt übrigends funktionen für Anlegen eines Termin, alle auslese, und alle löschen (Binärdatei) weitere folgen. werde den sourcecode reinstellen, wenn gewünscht;)
 

Mickeyman

Mitglied
Ich hatte eigentlich gedacht, dass der Code schon funktionsfähig sein soll. Zu dem beruht deine Aussage, dass der alte Code quasi nur Müll sei, auf den ersten Quellcode, den du vorgestellt hast und nicht auf den, auf den ich mich bezogen habe.
Zum Quellcode hätte ich da aber noch was zu sagen:
Ich weiß nicht ob du nicht mit der objektorientierten Programmierung auskennst, aber wenn ja, solltest du nach Möglichkeit auch von ihr Gebrauch machen. Ich finde den Code nämlich trotz seiner Kürze, recht unübersichtlich.
Auf Grund von Kränkungen mir gegenüber, die du durch deinen letzten Post verursacht hast, werde ich jetzt mal nichts Positives erwähnen.

Gruß Mickeyman.
 

Marschal

Großer Enumerator
mir ists auch afgefallen...muss dir recht geben:) der is schon n bizzel unübersichtlich, aber mit dem klassen-baum (oder wie der heist) kan man sich find ich schon zurechtfinden.
Würd mich aber über hilfe und hinweise freuen, wie man besser und übersichtlicher gestlten könnte. Wie soll mir objektorientierte programierung dabei helfen? - nein ich kenne mich nicht gut mit ihr aus:(

und versteh mich nicht falsch;) ich arbeite schon die lezten tage an diesem projekt...un dan kanns sein, dass man al etwas gereizt reagiert;)

MfG Marschal
 

Marschal

Großer Enumerator
Hier ist der aktuellste code bis jezt

wer gebrauch davon machen will, sollte folgende Sachen in c++ einegermasen verstehen: Schleifen, Funktionen, Arrays, Übergabeparameter, Zeigeraritmethik.usw

Bitte um konstruktive kritik;) (deshalb an dieser stelle noch mal danke an "Mickeyman")

MfG Marschal
 

Anhänge

Mickeyman

Mitglied
Jetzt habe ich wieder einen etwas besseren Eindruck von dir :).
Bei der objektorientierten Programmierung versucht man bestimmte Teile des Programmes in Klassen zusammen zu fassen. Zum Beispiel sollte man die Anzeige und das Errechnen der Daten in zwei separate Klassen unterteilen. Dies macht deinen Code schon mal um einiges Netter(Verständlicher). Auch die Wiederverwendbarkeit würde dadurch gesteigert werden.
Da ich keine Ahnung habe, wie viel du über die Verwendung von Klassen weißt, geb ich dir einfach mal einen Link zu einem Tutorial, welches meiner Meinung nach ziemlich gut: http://www.cpp-tutor.de/cpp/le09/le09_01.htm
Als kleiner Tipp noch: Du solltest in deinem Code die Breite und Höhe des Kalenders der übersichtshalber mit Symbolen definieren.

Gruß Mickeyman
 

Marschal

Großer Enumerator
Hört sich ganz gut an dein vorschlag;) werde mich demnächst mal mit klassen befassen (habe erst seit einen halben jahr c++)

Als kleiner Tipp noch: Du solltest in deinem Code die Breite und Höhe des Kalenders der übersichtshalber mit Symbolen definieren.
...wie ist das zu verstehen? meinst du eine #define anweisung?
wie gesagt, ich bin noch nicht so der held in cpp;) aber s mit konstruktiver kritik, wie die von dir wird das schon;)

MfG Marschal
 

Mickeyman

Mitglied
Für die Symbole musst du einfach mal bei dem Tutorial, dessen Link ich bereits erwähnt habe, im Inhaltsverzeichnis auf "Kapitel 2" und dort dann auf "Präprozessor-Direktiven" folgen. Auf der dann erscheinenden Seite auf "define-Direktiven" gehen. Denn du hast recht, Symbole werden mit dem Schlüsselwort "define" erstellt.
Ich glaub das war jetzt ein bisschen viel, nur um dir ein kleines, fast unbedeutendes Fachwort zu erklären^^. Ich halte von Fachwörtern eigentlich nicht sonderlich viel, allerdings wenn man sie kennt, macht es einen doch ein wenig stolz.(Die Vereinfachung bei der Kommunikation ist selbsterklärend)

Gruß Mickeyman
 

Marschal

Großer Enumerator
:) hatte noch keine zeit bis kapitel 2 zu kommen;)
Aber es hat was, wen man mit "fremdwörtern" um sich verfen kann;)
ich zitiere immer gerne: "Sicheres Auftreten, bei völliger Ahnungslosigkeit":D
bin ich ganz gut drin;)

nochmals danke für deine hilfe, werde mir den Tip Mit den Klassen mal aneignen;)

MfG MArschal