[C++] Klasa dla daty

NY85
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 1 gru 2013, o 14:02
Płeć: Kobieta

[C++] Klasa dla daty

Post autor: NY85 »

Witam, czy byłby ktoś w stanie pomóc w napisaniu programu w c++
Napisz program demonstrujący użycie poniższych metod:
Zdefiniuj klasę data
Powinna dostarczać pól składowych:
-dzień, miesiąc, rok
-gettery i settery dla tych pól. Zwróć uwagę na to, że zmiana dnia lub miesiąca wymaga
sprawdzenia poprawności danych (np. nie ma daty 31 lutego 2011).
-konstruktor inicjalizujący podane pola. Uwaga jak wyżej.
-metodę toString() zwracającą tekstową reprezentację daty
Ostatnio zmieniony 8 sty 2014, o 17:43 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
ravgirl
Użytkownik
Użytkownik
Posty: 171
Rejestracja: 29 gru 2013, o 17:41
Płeć: Kobieta
Lokalizacja: Pruszków
Pomógł: 64 razy

[C++] Klasa dla daty

Post autor: ravgirl »

Co już zdążyłeś napisać? Z czym masz problem?
NY85
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 1 gru 2013, o 14:02
Płeć: Kobieta

[C++] Klasa dla daty

Post autor: NY85 »

Kod: Zaznacz cały

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



class Data
{
	short Dzien;
	short Miesiac;
	short Rok;
	
	
	public:
	
	Data(short Dzien, short Miesiac, short Rok);
	
	void setDzien(short newDzien)
	{
		if((Miesiac==1 || Miesiac==3 || Miesiac==7 || Miesiac==9 || Miesiac==12) && newDzien>=1 && newDzien <=31);
		Dzien=newDzien;
		
		if((Miesiac==4 || Miesiac==6 || Miesiac==8 || Miesiac==10 ) && newDzien>=1 && newDzien<=30)
		Dzien=newDzien;
		
		
		
	}
	
	
	short getDzien()
	{
		return Dzien;
	}
	
	short getMiesiac()
	{
		return Miesiac;
	}
	
	short getRok()
	{
		return Rok;
	}
	
	string toString()
	{
		ostringstream ss;
		ss<<"Dzien"<<'-'<<"Miesiac"<<'-'<<"Rok"<<endl;
		return ss.str();
	}
		
};
   
   


int main()
{
	
	Data Dzis(19,12,2013);
	cout<<Dzis.toString()<<endl;
	
	
	

	return 0;
}
Mam coś takiego, nie wiem tylko czy dobrze to robię, i jak to dalej pociągnąć.
Ostatnio zmieniony 8 sty 2014, o 17:44 przez Afish, łącznie zmieniany 1 raz.
Powód: Brak tagów.
ravgirl
Użytkownik
Użytkownik
Posty: 171
Rejestracja: 29 gru 2013, o 17:41
Płeć: Kobieta
Lokalizacja: Pruszków
Pomógł: 64 razy

[C++] Klasa dla daty

Post autor: ravgirl »

1. Popraw wiadomość, żeby kod był między tagami

Kod: Zaznacz cały

[code]kod
[/code]

2. Na razie wygląda dobrze, poprawiłabym jedynie nazwy pól w klasie na pisane małą literą, tzn.

Kod: Zaznacz cały

short dzien;
short miesiac;
short rok;
Taka jest konwencja.

3. Trzeba jeszcze dopisać settery dla miesiąca i roku - przy miesiącu sprawdzenie jest proste, dla roku na pewno większy od 0 (chyba że masz inne ograniczenia narzucone).

4. Setter dla dnia, jeśli mamy miesiąc luty - trzeba spróbować zaimplementować sprawdzenie (w osobnej metodzie), czy rok jest przestępny, i w zależności od tego ustawić ograniczenie.
NY85
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 1 gru 2013, o 14:02
Płeć: Kobieta

[C++] Klasa dla daty

Post autor: NY85 »

Będę próbował dokończyć, dziękuje za wskazówki.
ravgirl
Użytkownik
Użytkownik
Posty: 171
Rejestracja: 29 gru 2013, o 17:41
Płeć: Kobieta
Lokalizacja: Pruszków
Pomógł: 64 razy

[C++] Klasa dla daty

Post autor: ravgirl »

Dobrze Ci idzie, powodzenia
ODPOWIEDZ