Advertisement
196040

OOP labs 3 Avtomobil

Apr 28th, 2020
935
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.19 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  class Date { // Класата Date содржи три цели броеви (int year, month, day)
  5. private: // кои претставуваат датум.
  6. int year;
  7. int month;
  8. int day;
  9. public:
  10.     Date(){} // предодреден (default) конструктор,
  11.     Date (int year, int month, int day) { //конструктор со параметри
  12.     this->year=year;
  13.     this->month=month;
  14.     this->day=day;
  15.     }
  16.     Date (const Date &d) { // и конструктор за копирање.
  17.       this->year=d.year;
  18.     this->month=d.month;
  19.     this->day=d. day;
  20.     }
  21.     void print () { // За неа треба да се напише метод за печатење print(),
  22.     cout<<year<<"."<<month<<"."<<day<<".";
  23.     } //Методот за печатење кај класата Date изгледа вака: [year].[month].[day].
  24. };
  25. class Person { //Класата Person содржи име и презиме (низи од максимум 20 знаци,
  26. private:
  27. char ime [20];
  28. char prezime[20];
  29. public:
  30.     Person (char *ime, char *prezime) { // конструктор со параметри
  31.         strcpy(this->ime, ime);
  32.         strcpy(this->prezime, prezime);
  33.     }
  34.     Person() { // предодреден конструктор,
  35.     strcpy(this->ime, "not specified"); //со предодредени вредности not specified),
  36.     strcpy(this->prezime, "not specified");
  37.     }
  38.     void print() {// и метод за печатење print().
  39.     cout<<ime<<" "<<prezime;
  40.     } //Методот за печатење кај класата Person изгледа вака: [name] [lastName].
  41. };
  42. class Car { // За еден автомобил (објект од класата Car) се чуваат следниве податоци:
  43. private:
  44.     Person p; // сопственик (објект од класата Person)
  45.     Date d;// датум на купување (објект од класата Date)
  46.     float price; // цена (float price), предодредена вредност 0
  47.     public:
  48.     Car(){} //За класата Car потребно е да се напише метод за печатење print()
  49.     Car(Person p, Date d, float price) {
  50.     this->p=p;
  51.     this->d=d;
  52.     this->price=price;
  53.     } //Методот за печатење кај класата Car изгледа вака:
  54.     void print() { //owner.print(), date.print(), Price: [price]
  55.     p.print();
  56.     cout<<endl;
  57.     d.print();
  58.     cout<<endl<<"Price: "<<price<<endl;
  59.     }
  60.     float getPrice() { // и метод за добивање на цената getPrice().
  61.     return price;
  62.     }
  63. };
  64. void cheaperThan(Car* cars, int numCars, float price) { //Покрај тоа, потребно е да се напише метод
  65.     for(int i=0; i<numCars; i++) { // cheaperThan(Car* cars, int numCars, float price)
  66.     if (cars[i].getPrice() < price) //кој ќе ги испечати сите објекти Car од низата cars со
  67.         cars[i].print();// големина numCars чија цена е помала од price.
  68.     }
  69. }
  70. int main() {
  71.     char name[20];
  72.     char lastName[20];
  73.     int year;
  74.     int month;
  75.     int day;
  76.     float price;
  77.  
  78.     int testCase;
  79.     cin >> testCase;
  80.  
  81.     if (testCase == 1) {
  82.         cin >> name;
  83.         cin >> lastName;
  84.         Person lik(name, lastName);
  85.         cin >> year;
  86.         cin >> month;
  87.         cin >> day;
  88.         Date date(year, month, day);
  89.         cin >> price;
  90.         Car car(lik, date,  price);
  91.         car.print();
  92.     }
  93.     else if (testCase == 2) {
  94.         cin >> name;
  95.         cin >> lastName;
  96.         Person lik(name, lastName);
  97.         cin >> year;
  98.         cin >> month;
  99.         cin >> day;
  100.         Date date(Date(year, month, day));
  101.         cin >> price;
  102.         Car car(lik, date,  price);
  103.         car.print();
  104.     }
  105.     else {
  106.         int numCars;
  107.         cin >> numCars;
  108.         Car cars[10];
  109.         for (int i = 0; i < numCars; i++) {
  110.             cin >> name;
  111.             cin >> lastName;
  112.             Person lik(name, lastName);
  113.             cin >> year;
  114.             cin >> month;
  115.             cin >> day;
  116.             Date date(year, month, day);
  117.             cin >> price;
  118.             cars[i] = Car(lik, date,  price);
  119.         }
  120.         float priceLimit;
  121.         cin >> priceLimit;
  122.         cheaperThan(cars, numCars, priceLimit);
  123.     }
  124.     return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement