[ fanfare @ 31.01.2010. 17:12 ] @
Ne razumijem zasto se neobradjuju podatci tipa 32 3 2008,vec se samo ispisuju?

Zadatak :




Ovo je od koji sam ja napisao:
Code:
#include <iostream>

using namespace std;

class Datum
{
      friend ostream& operator<<(ostream &out,const Datum &dat)
      {
                out<<dat.dan<<"."<<dat.mjesec<<"."<<dat.godina<<".";
                return out;
      }    
      friend istream& operator>>(istream &in, Datum &dat)
      {
                int d,m,g;
                in>>d;  in>>m;  in>>g; 
                dat.dan=d;dat.mjesec=m;dat.godina=g;
                return in;
      }        
      public:
             Datum(int d=1,int m=1,int g=2008)
             {  dan=d; mjesec=m; godina=g;  }
             int getDan() { return dan; }
                                               
      private:
              int dan,mjesec,godina;
};

main()
{
      Datum danas;
      cout<<"unesite danasnji datum (dd mm gggg): ";
      cin>>danas;
      try
      {
         if (danas.getDan()<31 && danas.getDan()<=0) throw (danas);
         else
         {
            cout<<endl<<endl<<"Danasnji datum je:  "<<danas<<"godine"<<endl;
         } 
      }
      catch(Datum)
      {
         Datum noviDatum;
         cout<<endl<<endl<<"Danasnji datum je:  "<<noviDatum<<"godine"<<endl;    
      } 
      
      
      
      system("pause");
}
      
                       
      
      

[ X Files @ 31.01.2010. 17:24 ] @
Nisam ulazio u detalje koda, ali ovo:
Code:

if (danas.getDan()<31 && danas.getDan()<=0) throw (danas);

... si verovatno hteo da bude:
Code:

if (danas.getDan()<1 || danas.getDan()>31 ) throw (danas);

[ fanfare @ 31.01.2010. 17:33 ] @
Citat:
X Files: Nisam ulazio u detalje koda, ali ovo:
Code:

if (danas.getDan()<31 && danas.getDan()<=0) throw (danas);

... si verovatno hteo da bude:
Code:

if (danas.getDan()<1 || danas.getDan()>31 ) throw (danas);


TO JE TO!Hvala na uoceni moj previd. Hvala!

[ X Files @ 31.01.2010. 17:35 ] @
^
Samo ne zaboravi da je ti potrebna malo detaljnija provera da li je uneti datum u redu.

Na primer, u vezi prestupne godine i broja dana u februaru:
http://www.elitesecurity.org/t32875