Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Klasa datum!
Author Message
Puž Offline
Redoviti posjetitelj
**

Posts: 132
Joined: Mar 2007
Reputation: 25
Post: #11
RE: Klasa datum!
Neam previse vremena ovih dana. Evo za dan, dva, tri cu ga rjesit.
07-06-2007 03:11 PM
Find all posts by this user Quote this message in a reply
Puž Offline
Redoviti posjetitelj
**

Posts: 132
Joined: Mar 2007
Reputation: 25
Post: #12
RE: Klasa datum!
Evo valjda će sad biti sve u redu
Code:
#include <iostream>
using namespace std;
#include <stdio.h>
class datum
{  
   int d,m,g;
  
   public:

   datum();

   void postavi(int, int, int);  
   void ispravnost();
   void ispis();
   void prijestupna();
   void kolko_dana_mjesec();
  
};

///////////////////////////////////////////////////////////////////
datum::datum(){d=1;m=1;g=1;}

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\n");
     else printf("Godina nije prijestupna\n");
    
}
void datum::postavi(int temp_d, int temp_m, int temp_g)
{
      d=temp_d;
      m=temp_m;
      g=temp_g;      
}
void datum::kolko_dana_mjesec()
{    
    int kolko_ih_je;  
  
    switch (m)
    {
           case 1:
           case 3:
           case 5:
           case 7:
           case 8:
           case 10:
           case 12:
                kolko_ih_je=31;break;
           case 4:
           case 6:
           case 9:
           case 11:
                kolko_ih_je=30;break;
           case 2:
                kolko_ih_je=28;break;
           default: kolko_ih_je=30;
      }
    
      printf("%d. mjesec ima %d dana!\n",m,kolko_ih_je);
}
///////////////////////////////////////////////////////////////////

int main()
{
    int dan,mjesec,god;
    char kaj[5];    
    float real;
    
    printf("Zadjete dan:\n");scanf("%d",&dan);
    printf("Zadjete mjesec:\n");scanf("%d",&mjesec);
    printf("Zadjete godinu:\n");scanf("%d",&god);

    datum moj_datum;

    moj_datum.postavi(dan,mjesec,god);
    moj_datum.ispravnost();
    moj_datum.ispis();
    moj_datum.prijestupna();
    moj_datum.kolko_dana_mjesec();
    
    getchar();
    getchar();
    return 0;
}

SaW3R, ak hoces provjeru mjeseca, dana i godine, da li je ukucana cijelobrojna ili realna vrijednost, sam ubaci umjesto ovog gore maina ovaj:

Code:
int main()
{
    int dan,mjesec,god;
    char kaj[5];    
    float real;
    
    while(1)
    {
         printf("Zadjete dan:\n");
         gets(kaj);sscanf(kaj,"%f",&real);
         if((dan=int(real))==real) break;
         else printf("Dan mora biti cjelobrojan!\n");
    }
    while(1)
    {
         printf("Zadjete mjesec:\n");
         gets(kaj);sscanf(kaj,"%f",&real);
         if((mjesec=int(real))==real) break;
         else printf("Mjesec mora biti cjelobrojan!\n");
    }

    while(1)
    {
         printf("Zadjete godinu:\n");
         gets(kaj);sscanf(kaj,"%f",&real);
         if((god=int(real))==real) break;
         else printf("Godina mora biti cjelobrojna!\n");
    }


    datum moj_datum;

    moj_datum.postavi(dan,mjesec,god);
    moj_datum.ispravnost();
    moj_datum.ispis();
    moj_datum.prijestupna();
    moj_datum.kolko_dana_mjesec();
    
    getchar();
    getchar();
    return 0;
}
11-06-2007 05:09 PM
Find all posts by this user Quote this message in a reply
SAFF Offline
Novi korisnik
*

Posts: 38
Joined: Jan 2007
Reputation: 0
Post: #13
RE: Klasa datum!
Quote:Puž

Interesuje me da li je moguce da se sve ovo uradi bez printf i scanf sa cout<< i cin>>!
Naravno znam da je & prenos po adresi tamo odradjen i nisam upoznat kako se to radi sa cin>> i cout!?


Nadam se a znas sta hocu da pitam!
13-06-2007 08:59 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Puž Offline
Redoviti posjetitelj
**

Posts: 132
Joined: Mar 2007
Reputation: 25
Post: #14
RE: Klasa datum!
Bez beda to napravis sa cin i cout. Složi si ovak main:

Code:
int main()
{
    int dan,mjesec,god;  
      
    cout<<"Zadjete dan:\n";cin>>dan;
    cout<<"Zadjete mjesec:\n";cin>>mjesec;
    cout<<"Zadjete godinu:\n";cin>>god;


    datum moj_datum;

    moj_datum.postavi(dan,mjesec,god);
    moj_datum.ispravnost();
    moj_datum.ispis();
    moj_datum.prijestupna();
    moj_datum.kolko_dana_mjesec();
    
    getchar();
    getchar();
    return 0;
}
13-06-2007 11:36 PM
Find all posts by this user Quote this message in a reply
dsovic Offline
Novi korisnik
*

Posts: 3
Joined: Feb 2008
Reputation: 0
Post: #15
RE: Klasa datum!
Stazh Wrote:@Saff: Možeš case elegantnije napisati tako da slučajeve odjeljuješ zarezom:
Code:
...
case 1, 3, 5, 7, 8, 10, 12:
return 31;
...

Ne mijenja ništa na stvari, ali možda ovako kod izgleda ljepše He he

A da preskočimo neke? Kao:
unsigned datum::broj_dana ()
{
switch (mesec)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
return 28+prestupna(g);
default: return 30; // tu bi uletjeli svi ostali, pa nema provjere
}
}

hurmash1ca: Ne dizi stare teme
07-02-2008 10:24 AM
Find all posts by this user Quote this message in a reply
Mr.JA Offline
Novi korisnik
*

Posts: 58
Joined: Jul 2008
Reputation: 0
Post: #16
RE: Klasa datum!
ovo ti je kod za prijestupnu godinu:

kod:
...
prijestupna = godina%4==0 && godina%100!=0 || godina%400==0;
n_prijestupnih_dana = (godina+3)/4 - 1 - godina/100 + godina/400;
n_dana = (long) (godina-1) * 365;
n_dana += n_prijestupnih_dana;


... ovo je isječak iz programa koji računa koliko je proteklo dana do početka nove ere
24-07-2008 09:37 PM
Find all posts by this user Quote this message in a reply
schmrz Offline
____
*

Posts: 569
Joined: Feb 2007
Post: #17
RE: Klasa datum!
Ovo je moj .... hhh

I have no drinking problems. I drink. Get drunk. Fall down. NO PROBLEM
Registered As Linux User #484215
Moj skromni blog
Savjet za buduće programere: ovdje
24-07-2008 10:50 PM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)