Да се създаде йерархия от следните класове:
- Дата, съдържащ полета ден, месец, година и методи за въвеждане и извеждане на информацията.
- Време, съдържащ освен това полета за часа и минутите.
- Универсално време, съдържащ в допълнение информация за часовата зона. Да има и метод за извеждане на времето по Гринуич


#include
#include
using namespace std;
class Data
{
public:
int den, mesec, godina;
Data();
Data(int d, int m, int g);
Data(const Data &d);
void Vhod();
void Pechat(char format) const;
};
Data::Data()
{
den=mesec=godina=1;
}
Data::Data (const Data &d)
{
den=d.den;
mesec=d.mesec;
godina=d.godina;
}
Data::Data(int d, int m, int g)
{
den=d;
mesec=m;
godina=g;
}
void Data::Vhod()
{
cout<>den>>mesec>>godina;
}
void Data::Pechat(char format) const
{
switch(format)
{
case(‘a’): cout<<mesec<<'/'<<den<<'/'<<godina; break;
case('e'): cout<<den<<'.'<<mesec<<'.'<<godina; break;
default: cout<<"Newaliden izbor\n";
};
}
class Time: public Data
{
public:
int chas;
int minuti;
int secundi;
Time();
Time(int ch, int m, int s);
Time(const Time &ch);
void Vhod();
void Pechat(char format) const;
};
Time::Time()
{
chas=minuti=secundi=0;
}
Time::Time (const Time &ch)
{
chas=ch.chas;
minuti=ch.minuti;
secundi=ch.secundi;
}
Time::Time (int ch, int m, int s)
{
chas=ch;
minuti=m;
secundi=s;
}
void Time ::Vhod()
{
cout<>chas>>minuti>>secundi;
}
void Time::Pechat(char format) const
{
if(format==’a’)
if(chas<12) cout<<chas<<":"<<minuti<<" am"<<endl;
else cout<<chas-12<<":"<<minuti<<" pm"<<endl;
else cout<<chas<<":"<<minuti<<endl;
}
int main(int argc, char *argv[]) {
Data q;
q.Vhod();
q.Pechat('a');
cout<<endl;
Time b;
b.Vhod();
b.Pechat('a');
cout<<endl;
system("pause");
return 0;
}
Важи същото, което писах под програмата на Криси и Здрави.
class Date { public: int den, mesec, godina; Date(); Date(int d, int m, int g); Date(const Date &d); void Vhod(); void Izvejdane(char format) const; }; Date::Date() { den=mesec=godina=1; } Date::Date (const Date &d) { den=d.den; mesec=d.mesec; godina=d.godina; } Date::Date(int d, int m, int g) { den=d; mesec=m; godina=g; } void Date::Vhod() { cout<<"Vuvedete den, mesec, godina: "; cin>>den>>mesec>>godina; } void Date::Izvejdane(char format) const { switch(format) { case('a'): cout<<mesec<<'/'<<den<<'/'<<godina; break; case('e'): cout<<den<<'.'<<mesec<<'.'<<godina; break; default: cout<<"Nevaliden izbor\n"; }; } class Time:public Date { public: int chas; int minuti; void Vhod(); void Izvejdane(char format) const; }; void Time::Vhod() { cout<<"Vuvedete chas i minuti:"; cin>>chas>>minuti; } void Time::Izvejdane(char format) const { if(format=='a') if(chas<12) cout<<chas<<":"<<minuti<<" am"<<endl; else cout<<chas-12<<":"<<minuti<<" pm"<<endl; else cout<<chas<<":"<<minuti<<endl; } int main(int argc, char *argv[]) { char simvol; Date Dnes; Dnes.Vhod(); cout<<"Kakuv format? (a za amerikanski i e za evropeiski)"<<endl; cin>>simvol; Dnes.Izvejdane(simvol); cout<<endl; Time sega; sega.Vhod(); sega.Izvejdane('a');Вярно, само дето по нищо не си личи, че Time е клас, наследник на Data. В Time също има полета den, mesec, godina. Някъде да ги въвеждате или извеждате?
#include <iostream> #include <windows.h> using namespace std; class Data { public: int den, mesec, godina; void vhod(); void pechat() const; }; void Data::vhod() { cout<<"Vavedete den, mesec i godina:"; cin>>den>>mesec>>godina; } void Data::pechat() const { cout<<"Datata e : "<<den<<"."<<mesec<<"."<<godina<<endl; } class vreme: public Data { public: int h, m; void vhod(); void pechat() const; }; void vreme::vhod() { Data::vhod(); cout<<"vavedete chas i minuti: "; cin>>h>>m; } void vreme::pechat() const { Data::pechat(); cout<<"4asut e : "<<h<<":"<<m<<endl; } class univreme: public vreme { public: int u; void vhod(); int gn() const; void pechat() const; }; void univreme::vhod() { vreme::vhod(); cout<<"V koq 4asova zona jivee6: "; cin>>u; } int univreme::gn() const { return h-u; } void univreme::pechat() const { vreme::pechat(); cout<<"Universalnoto vreme e: "<<gn()<<":"<<m<<endl; } int main(int argc, char *argv[]) { univreme d; d.vhod(); d.pechat(); cout<<endl; system("pause"); return 0; }#include <iostream> #include <windows.h> using namespace std; class Data { public: int den, mesec, godina; Data(); Data(int d, int m, int g); Data(const Data &d); void Vhod(); void Pechat(char format) const; }; Data::Data() { den=mesec=godina=1; } Data::Data (const Data &d) { den=d.den; mesec=d.mesec; godina=d.godina; } Data::Data(int d, int m, int g) { den=d; mesec=m; godina=g; } void Data::Vhod() { cout<<"Vavedete den,mesec i godina: "; cin>>den>>mesec>>godina; } void Data::Pechat(char format) const { switch(format) { case('a'): cout<<mesec<<'/'<<den<<'/'<<godina; break; case('e'): cout<<den<<'.'<<mesec<<'.'<<godina; break; default: cout<<"Newaliden izbor\n"; }; } class Time: public Data { public: int chas; int minuti; int secundi; Time(); Time(int ch, int m, int s); Time(const Time &ch); void Vhod(); void Pechat(char format) const; }; Time::Time() { chas=minuti=secundi=0; } Time::Time (const Time &ch) { chas=ch.chas; minuti=ch.minuti; secundi=ch.secundi; } Time::Time (int ch, int m, int s) { chas=ch; minuti=m; secundi=s; } void Time ::Vhod() { Data::Vhod(); cout<<"Wuwedete chas, minuti, secundi: "; cin>>chas>>minuti>>secundi; } void Time::Pechat(char format) const { Data::Pechat(format); cout<<" "; if(format=='a') if(chas<12) cout<<chas<<":"<<minuti<<" am"<<endl; else cout<<chas-12<<":"<<minuti<<" pm"<<endl; else cout<<chas<<":"<<minuti<<endl; } int main(int argc, char *argv[]) { Data q; q.Vhod(); q.Pechat('a'); cout<<endl; Time b; b.Vhod(); b.Pechat('a'); cout<<endl; system("pause"); return 0; }.. с няколко корекции
#include <cstdlib> #include <iostream> using namespace std; // class Data { public: int den, mesec, godina; Data(); Data(int d, int m, int g); Data(const Data &d); void Vhod(); void Izwejdane(char format) const; bool NachaloMesec() const; int Sezon() const; bool Suwpadenie(int d, int m, int g) const; bool Suwpadenie(const Data &d) const; int DniMesec() const; bool PosledenDen() const; void SledwashtDen(); void PredishenDen(); bool ValidnaData() const; }; class Vreme:public Data { public: int chas, minuta; Vreme(); Vreme(int d, int m, int g, int chas, int minuta); Vreme(const Vreme &v); void Vhod(); void Izwejdane(); }; class Utc:public Vreme { public: int chas_zona; Utc(); Utc(const Utc &utc); void Vhod(); void Izwejdane(); void Greenwich(); }; Utc::Utc() { Vreme::Vreme(); chas_zona=0; } Utc::Utc(const Utc &utc) { den=utc.den; mesec=utc.mesec; godina=utc.godina; chas=utc.chas; minuta=utc.minuta; chas_zona=utc.chas_zona; } void Utc::Greenwich() { cout<<"Wremeto po Grinuich: "<<chas - chas_zona<<": "<<minuta<<endl; } void Utc::Vhod() { Vreme::Vhod(); cout<<"Wuwedi chasowa zona (+/- 12)"; cin>>chas_zona; } void Utc::Izwejdane() { Vreme::Izwejdane(); cout<<"Chasowata zona e: "<<chas_zona<<endl; } Vreme::Vreme() { Data::Data(); chas=minuta=0; } Vreme::Vreme(int d, int m, int g, int chas, int minuta) { Data::Data(d, m, g); this->chas=chas; this->minuta=minuta; } Vreme::Vreme(const Vreme &v) { den=v.den; mesec=v.mesec; godina=v.godina; chas=v.chas; minuta=v.minuta; } void Vreme::Vhod() { Data::Vhod(); cout<<"Wuwedi chas i minuti (hh mm): "; cin>>chas>>minuta; } void Vreme::Izwejdane() { cout<<"Datata e: "<<den<<'.'<<mesec<<'.'<<godina<<endl; cout<<"Chasut e: "<<chas<<": "<<minuta<<endl; } Data::Data() { den=mesec=godina=1; } Data::Data (const Data &d) { den=d.den; mesec=d.mesec; godina=d.godina; } Data::Data(int d, int m, int g) { den=d; mesec=m; godina=g; } void Data::Vhod() { cout<<"Wuwedete den, mesec, godina: "; cin>>den>>mesec>>godina; } void Data::Izwejdane(char format) const { switch(format) { case('a'): cout<<mesec<<'/'<<den<<'/'<<godina; break; case('e'): cout<<den<<'.'<<mesec<<'.'<<godina; break; default: cout<<"Newaliden izbor\n"; }; } bool Data::NachaloMesec() const { return den==1; } int Data::Sezon() const { switch (mesec) { //???? case(12): case(1): case(2): return 4; //?????? case(3): case(4): case(5): return 1; //???? case(6): case(7): case(8): return 2; //???? case(9): case(10): case(11): return 3; default: return 0; } } bool Data::Suwpadenie(int d, int m, int g) const { return ((den==d) && (mesec==m) && (godina==g)); } bool Data::Suwpadenie(const Data &d) const { return ((den==d.den) && (mesec==d.mesec) && (godina==d.godina)); } int Data::DniMesec() const { if(mesec == 1 || mesec == 3 || mesec == 5 || mesec == 7 || mesec == 8 || mesec == 10 || mesec == 12) return 31; else if(mesec == 4 || mesec == 6 || mesec == 9 || mesec == 11) return 30; else { if(godina % 4 == 0) { if(godina % 100 == 0) { if(godina % 400 == 0) return 29; return 28; } return 29; } return 28; } } bool Data::PosledenDen() const { return den==DniMesec(); } void Data::SledwashtDen() { if(ValidnaData()) { if (den<DniMesec()) den++; else { den=1; if(mesec<12) mesec++; else { mesec=1; godina++; } } } } void Data::PredishenDen() { if(ValidnaData()) { if(den>1) den--; else { if(mesec>1) { mesec--; den=DniMesec(); } else { mesec=12; godina--; den=31; } } } } bool Data::ValidnaData() const { if ((mesec>=1)&&(mesec<=12)&&(godina>0)) { if ((den>=1)&&(den<=DniMesec())) return true; else return false; } else return false; } int main(int argc, char *argv[]) { cout<<"Klas Data: \n"; Data dnes; dnes.Vhod(); dnes.Izwejdane('e')<<endl; cout<<"Klas Vreme: \n"; cout<<"Suzdawane na now obekt vreme i wuwejdane na danni ot klaviaturata: \n"; Vreme* VremePtr= new Vreme(); VremePtr->Vhod(); VremePtr->Izwejdane(); cout<<"Klas Utc: \n"; Utc zona; zona.Vhod(); zona.Greenwich(); delete VremePtr; system("PAUSE"); return 0; }using namespace std; class Date { public: int den, mesec, godina; Date(); Date(int d, int m, int g); Date(const Date &d); void Vhod(); void Izvejdane(char format) const; }; Date::Date() { den=mesec=godina=1; } Date::Date (const Date &d) { den=d.den; mesec=d.mesec; godina=d.godina; } Date::Date(int d, int m, int g) { den=d; mesec=m; godina=g; } void Date::Vhod() { cout<<"Vuvedete den, mesec, godina: "; cin>>den>>mesec>>godina; } void Date::Izvejdane(char format) const { switch(format) { case('a'): cout<<mesec<<'/'<<den<<'/'<<godina<<endl; break; case('e'): cout<<den<<'.'<<mesec<<'.'<<godina<<endl; break; default: cout<<"Nevaliden izbor\n"; }; } class Time:public Date { public: int chas; int minuti; int chasovazona; void Vhod(); void Izvejdane(char format) const; void Universalnovreme(); }; void Time::Vhod() { Date::Vhod(); cout<<"Vuvedete chas i minuti:"; cin>>chas>>minuti; } void Time::Izvejdane(char format) const { Date::Izvejdane(format); if(format=='a') if(chas<12) cout<<chas<<":"<<minuti<<" am"<<endl; else cout<<chas-12<<":"<<minuti<<" pm"<<endl; else cout<<chas<<":"<<minuti<<endl; } void Time::Universalnovreme() { cout<<"Vuvedete chasova zona (+/- 1-12) "; cin>>chasovazona; cout<<"Universalno vreme:"<<chas-chasovazona<<":"<<minuti<<endl; } int main(int argc, char *argv[]) { char simvol; Date Dnes; Dnes.Vhod(); cout<<"Kakuv format? (a za amerikanski i e za evropeiski)"<<endl; cin>>simvol; Dnes.Izvejdane(simvol); cout<<endl; Time sega; sega.Vhod(); sega.Izvejdane('a'); sega.Universalnovreme();Добре, само дето chasovazona трябва да се въвежда във Vhod(), а не в Universalnovreme(). Там трябва да се ползва въведената преди това стойност.
#include <iostream> #include <windows.h> using namespace std; class Data { public: int d,m,g ; void vhod(); void pechat() const; }; void Data::vhod() { cout<<"Vavedete d,m i g:"; cin>>d>>m>>g; } void Data::pechat() const { cout<<"Datata e "<<d<<"."<<m<<"."<<g<<"\n"; } class Vreme: public Data { public: int chas; int minuti; void vhod(); void pechat() const; }; void Vreme::vhod() { Data::vhod(); cout<<"vavedete chas:"; cin>>chas; cout<<"vavedete minuti:"; cin>>minuti; } void Vreme::pechat() const { cout<<"Datata e\n"; Data::pechat(); cout<<"i vremeto e "<<chas<<":"<<minuti<<endl; } class univreme: public Vreme { public: int u; void vhod(); int gn() const; void pechat() const; }; void univreme::vhod() { Vreme::vhod(); cout<<"chasovata zona e: "; cin>>u; } int univreme::gn() const { return chas-(u); } void univreme::pechat() const { Vreme::pechat(); cout<<"Universalnoto vreme e: "<<gn()<<":"<<minuti<<endl; } int main(int argc, char *argv[]) { cout<< "Danni za data:\n"; Data Dnes; Dnes.vhod(); Dnes. pechat(); cout<< "Danni za vreme:\n"; Vreme Sega; Sega.vhod(); Sega.pechat(); cout<< "Danni za univreme:\n"; univreme Now; Now.vhod(); Now.pechat(); system("PAUSE"); return EXIT_SUCCESS; }