Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- using namespace std;
- class Date
- {
- private:
- unsigned int d, m, g;
- public:
- // инициализирующий конструктор
- Date(unsigned int D, unsigned int M, unsigned int G)
- {
- if(D < 31 && M < 13 && G <= 2015)
- d = D, m = M, g = G;
- else
- d = m = g = 0, cerr << "incorrect data" << endl;
- }
- // конструктор по умолчанию
- Date(){}
- void PrintEn()
- {
- d > 9 ? cout << "\n" << d << '/' << m << '/'<< g << "." << endl : cout << "\n" <<"0"<< d<<'/' << m << '/'<< g << "."<< endl;
- }
- unsigned int GetDay() { return d; }
- unsigned int GetMon() { return m; }
- unsigned int GetYear() { return g; }
- void SetDay(unsigned int _d) { if(_d < 31) d =_d; else d = m = g = 0, cerr << "incorrect data" << endl; }
- void SetMon (unsigned int _m) { if(_m < 13) m =_m; else d = m = g = 0, cerr << "incorrect data" << endl; }
- void SetYear (unsigned int _g) { if(_g <= 2015) g =_g; else d = m = g = 0, cerr << "incorrect data" << endl; }
- //разница в днях с заданным временем
- int Difference (Date t)
- {
- return (t.GetDay() - d) + (t.GetMon() - m)*30 + (t.GetYear() - g)*365;
- }
- };
- class Car : public Date
- {
- private:
- string mark, number;
- public:
- // инициализирующий конструктор
- Car(string Mark, string Number, unsigned int D, unsigned int M, unsigned int G):Date(D, M, G)
- {
- mark = Mark;
- number = Number;
- }
- // конструктор по умолчанию
- Car(){}
- void PrintEn_Car()
- {
- cout << "\n" << mark <<' '<< number;
- PrintEn();
- }
- string GetMark() { return mark; }
- string GetNumber() { return number; }
- void SetMark(string _mark) { mark = _mark; }
- void SetNumber (string _number) { number = _number; }
- //какой автомобиль из двух пройдет тех.осмотр раньше
- Car & Start (Car s)
- {
- if (Difference(s) < 0)
- return s;
- else
- return *this ;}
- };
- int main ()
- {
- // Создаем первый объект
- unsigned int d, m, g;
- string mark, number;
- cout << "\n Enter\n d= ";
- cin >> d;
- cout << " m= ";
- cin >> m;
- cout << " g= ";
- cin >> g;
- cout << " mark = ";
- cin >> mark;
- cout << " number = ";
- cin >> number;
- Car s1(mark, number, d, m, g);// используется инициализирующий конструктор
- cout << "\nCar 1 ";
- s1.PrintEn_Car();
- // Создаем, инициализируем второй объект
- Car s2("Toyota", "q123rt", 10, 12, 2010); // используется инициализирующий конструктор
- cout << "\nCar 2 ";
- s2.PrintEn_Car();
- // Создаем третий объект
- Car s3; // используется конструктор по умолчанию
- s3.SetDay(8);
- s3.SetMon(11);
- s3.SetYear(2012);
- s3.SetMark("Lexus");
- s3.SetNumber ("a777df");
- cout << "\nCar 3 ";
- s3.PrintEn_Car();
- // Определяем, какой автомобиль пройдет тех.осмотр раньше
- Car s4 = s1.Start(s2);
- Car s4 = s4.Start(s3);
- cout << "\n Before starting:\n";
- s4.PrintEn_Car();
- cout<<endl;
- system ("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement