|
Klasa datum!
|
| Author |
Message |
SAFF
Novi korisnik

Posts: 26
Group: Registered
Joined: Jan 2007
Status:
Offline
Reputation: 0
|
Klasa datum!
Formirati klasu datum koja omogucava rad sa datumima:
* metoda za unos podataka d-dan,m-mesec,g-godina : celi brojevi
* metoda za konstruisanje objekata bez pocetnih vrednosti postavlja datum na 1.1.1
* metoda za odredjivanje dana meseca i godine
* metoda za odredjivanje da li je godina prestupna
* metoda za odredjivanje da li je datum ispravan
* metoda za ispis vrednosti u vrednoti 21.1.2007
|
|
| 31-05-2007 01:33 PM |
|
 |
Puž
Redoviti posjetitelj
 
Posts: 131
Group: Registered
Joined: Mar 2007
Status:
Offline
Reputation: 24
|
RE: Klasa datum!
#include <iostream>
using namespace std;
#include <stdio.h>
class datum
{
int d,m,g;
public:
datum();
datum(int,int,int);
void ispravnost();
void ispis();
};
///////////////////////////////////////////////////////////////////
datum::datum(){d=1;m=1;g=1;}
//u ovom slucaju drugi konstruktor sluzi za ucitavanje vrijednosti
datum::datum(int temp_d, int temp_m, int temp_g)
{
d=temp_d;
m=temp_m;
g=temp_g;
}
void datum::ispravnost()
{
int je_il_nije=1;
if( (d>31)||(d<1) ) je_il_nije=0;
else if( (m>12)||(m<1) ) je_il_nije=0;
else if(g<0) je_il_nije=0;
if(je_il_nije) cout <<"Datum je ispravan!\n";
else cout <<"Datum nije ispravan!\n";
}
void datum::ispis()
{
printf("datum je %d.%d.%d\n",d,m,g);
}
///////////////////////////////////////////////////////////////////
int main()
{
datum moj_datum(13,11,1854);
moj_datum.ispravnost();
moj_datum.ispis();
getchar();
getchar();
return 0;
}
Neznam kako se računa i koja je godina prijestupna, a koja nije, tak da tu funkciju nisam napravil. Sori...............
|
|
| 01-06-2007 05:24 PM |
|
 |
SAFF
Novi korisnik

Posts: 26
Group: Registered
Joined: Jan 2007
Status:
Offline
Reputation: 0
|
RE: Klasa datum!
Racunanje prestupne godine se izracunava tako sto se se godina podeli sa 100 i sa 4 stim da je ostatak jednak 0, a i potrebna je metoda za upis datuma...
Sori nisam najbolje razumeo kako radi metoda za unos podataka!
|
|
| 01-06-2007 05:36 PM |
|
 |
Puž
Redoviti posjetitelj
 
Posts: 131
Group: Registered
Joined: Mar 2007
Status:
Offline
Reputation: 24
|
RE: Klasa datum!
Nisam te skužil točno, dal se cijelobrojno dijeli sa oba dva broja ili ne?Znači ako je godina 1345, račun je ovaj:
1345/100=13
13/4=3 --> ostatak 1
godina nije prijestupna
Dal je to to?
Što se tiče ove metode za unos, radi ti na principu da kada se konstruira objekt (u našem slučaju moj_datum) sa argumentima, pozova se funkcija konstruktora koja te argumente postavlja u varijable klase. U našem slučaju:
datum moj_datum(13,11,1854);
postavlja 13 na dan, 11 na mjesec........
Ako nečeš da ti konstruktor to radi, lako si možeš napravit funkciju u klasi koja će postavljat te vrijednosti.
void postavi(int temp_d, int temp_m, int temp_g)
{
d=temp_d;
g=temp_g;
m=temp_m;
}
I pozoves ju sa
moj_datum.postavi(13,5,1343);
This post was last modified: 01-06-2007 06:59 PM by Puž.
|
|
| 01-06-2007 06:57 PM |
|
 |
SAFF
Novi korisnik

Posts: 26
Group: Registered
Joined: Jan 2007
Status:
Offline
Reputation: 0
|
RE: Klasa datum!
Dobro si me razumeo znaci ako je godina 2004/100 || 2004/4 znaci ili je deljiva sa 100 ili sa 4 stim da bude =0
2003/100=20.03
2003/4=500.75
mislim da se to deli sa onim % i onda on racuna ostatak samo!
Nadam se da sam bio jasan!
|
|
| 01-06-2007 09:42 PM |
|
 |
Puž
Redoviti posjetitelj
 
Posts: 131
Group: Registered
Joined: Mar 2007
Status:
Offline
Reputation: 24
|
RE: Klasa datum!
Ak sam dobro skužil prijestupne godine su one ćij ostatak dijeljenja sa 4 i ostatak dijeljenja sa 100 iznosi 0.
Ak je to to, evo ti ponovo cijeli kod
#include <iostream>
using namespace std;
#include <stdio.h>
class datum
{
int d,m,g;
public:
datum();
datum(int,int,int);
void ispravnost();
void ispis();
void prijestupna();
};
///////////////////////////////////////////////////////////////////
datum::datum(){d=1;m=1;g=1;}
//u ovom slucaju drugi konstruktor sluzi za ucitavanje vrijednosti
datum::datum(int temp_d, int temp_m, int temp_g)
{
d=temp_d;
m=temp_m;
g=temp_g;
}
void datum::ispravnost()
{
int je_il_nije=1;
if( (d>31)||(d<1) ) je_il_nije=0;
else if( (m>12)||(m<1) ) je_il_nije=0;
else if(g<0) je_il_nije=0;
if(je_il_nije) cout <<"Datum je ispravan!\n";
else cout <<"Datum nije ispravan!\n";
}
void datum::ispis()
{
printf("datum je %d.%d.%d\n",d,m,g);
}
void datum::prijestupna()
{
int uvjet;
if( (g%4==0) && (g%100==0) )printf("Godina je prijestupna");
else printf("Godina nije prijestupna");
}
///////////////////////////////////////////////////////////////////
int main()
{
datum moj_datum(13,11,200);
moj_datum.ispravnost();
moj_datum.ispis();
moj_datum.prijestupna();
getchar();
getchar();
return 0;
}
|
|
| 03-06-2007 11:18 PM |
|
 |
SaW3R
Novi korisnik

Posts: 3
Group: Registered
Joined: May 2007
Status:
Offline
Reputation: 0
|
RE: Klasa datum!
nema medote za unos datuma(dana, meseca i godine) i da kad ne uneses celobrojan tip se javi greska npr "pogresan unos, mozete uneti samo cele brojeve" - sto u stvari predstavlja "metoda za ispitivanje tacnosti unetog datuma".mislim da je to mnogo bitno.ja kad sam kompajlirao ovaj zadatak on je nesto sam izracunao, dao neki rezultat...fora je da sam uneses datum i da ti on kaze da li je godina porestupna ili ne...takodje bi bilo dobro odraditi metodu koja na osnovu unetog datuma odredjuje koji je to dan u godini...
Sutra, sutra, uvek sutra i tako protekne život...
|
|
| 04-06-2007 08:17 PM |
|
 |
SAFF
Novi korisnik

Posts: 26
Group: Registered
Joined: Jan 2007
Status:
Offline
Reputation: 0
|
RE: Klasa datum!
Da potrebno je uneti podatke i da u odnosu na zadati mesec i prestupnost godine bude izdata i informacija koliko zadati mesec ima dana.
Nesto ovako odprilike, za odredjivanje koliko dana ima u mesecu!
unsigned datum::broj_dana ()
{
switch (mesec)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return 28+prestupna(g);
default: return 30;
}
}
|
|
| 05-06-2007 02:22 PM |
|
 |
Stazh
Redoviti posjetitelj
 
Posts: 84
Group: Registered
Joined: Mar 2006
Status:
Offline
Reputation: 4
|
RE: Klasa datum!
@Saff: Možeš case elegantnije napisati tako da slučajeve odjeljuješ zarezom:
...
case 1, 3, 5, 7, 8, 10, 12:
return 31;
...
Ne mijenja ništa na stvari, ali možda ovako kod izgleda ljepše
Pusti priče, uzmi Osječko!
"Programming is an art form that fights back"
|
|
| 05-06-2007 08:39 PM |
|
 |
SaW3R
Novi korisnik

Posts: 3
Group: Registered
Joined: May 2007
Status:
Offline
Reputation: 0
|
RE: Klasa datum!
sta je sa onim sto sam ja postavio????bilo ko?
puz, pomazi :)
Sutra, sutra, uvek sutra i tako protekne život...
|
|
| 07-06-2007 12:05 AM |
|
 |
|
|