Advertisement
Dimitrija

Laboratoriski 3 - 1 OOP

Mar 23rd, 2021
1,237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.62 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5. /*
  6.  
  7. Во оваа задача треба да се внесат и испечатат податоци за автомобили.
  8.  
  9. За еден автомобил (објект од класата Car) се чуваат следниве податоци:
  10. сопственик (објект од класата Person)
  11. датум на купување (објект од класата Date)
  12. цена (float price), предодредена вредност 0
  13.  
  14. За класата Car потребно е да се напише метод за печатење print() и метод за добивање на цената getPrice().
  15.  
  16. Класата Date содржи три цели броеви (int year, month, day) кои претставуваат датум. За неа треба да се напише метод за печатење print(), предодреден (default) конструктор, конструктор со параметри и конструктор за копирање.
  17.  
  18. Класата Person содржи име и презиме (низи од максимум 20 знаци, со предодредени вредности not specified), предодреден конструктор, конструктор со параметри и метод за печатење print().
  19.  
  20. Методот за печатење кај класата Person изгледа вака: [name] [lastName].
  21. Методот за печатење кај класата Date изгледа вака: [year].[month].[day].
  22. Методот за печатење кај класата Car изгледа вака:
  23. owner.print()
  24. date.print()
  25. Price: [price]
  26.  
  27. Покрај тоа, потребно е да се напише метод cheaperThan(Car* cars, int numCars, float price) кој ќе ги испечати сите објекти Car од низата cars со големина numCars чија цена е помала од price.
  28.  
  29. For example:
  30.  
  31. Input:
  32. 2
  33. Petre
  34. Petreski
  35. 2018
  36. 07
  37. 31
  38. 410020
  39.  
  40. Result:
  41. Petre Petreski
  42. 2018.7.31
  43. Price: 410020
  44. */
  45.  
  46. class Date{
  47. private:
  48.     int den,mesec,godina;
  49. public:
  50.     Date(){}
  51.     void print();
  52.     Date(int den,int mesec,int godina);
  53. };
  54. void Date::print(){
  55.     cout<<den<<"."<<mesec<<"."<<godina<<endl;
  56. }
  57. Date::Date(int den,int mesec,int godina) {
  58. this->den=den;
  59. this->mesec = mesec;
  60. this->godina = godina;
  61. }
  62.  
  63.  
  64. class Person{
  65. private:
  66.     enum Dolzina  {DolzIme=30,DolzPrezime=30};
  67.     char ime[DolzIme];
  68.     char prezime[DolzPrezime];
  69. public:
  70.     Person();
  71.     Person(char *ime,char *prezime);
  72.     void print();
  73.  
  74. };
  75.     Person::Person(){}
  76.     Person::Person(char *ime,char *prezime){
  77.         strncpy(this->ime,ime,DolzIme);
  78.         this->ime[DolzIme] = '\0';
  79.         strncpy(this->prezime,prezime,DolzIme);
  80.         this->prezime[DolzPrezime] = '\0';
  81.     }
  82.     void Person::print(){
  83.          cout<<ime<<" "<<prezime<<endl;
  84.     }
  85.  
  86. class Car{
  87. private:
  88.  Person owner;
  89.  Date date;
  90.  float price;
  91. public:
  92.     Car(Person Pobj,Date Dobj,float price);
  93.     Car(){}
  94.     void print();
  95.     float getPrice();
  96. };
  97. Car::Car(Person Pobj,Date Dobj,float price) : owner(Pobj),date(Dobj){
  98.     this->price = price;
  99. }
  100. void Car::print(){
  101.     owner.print();
  102.     date.print();
  103.     cout<<"Price: "<<price<<endl;
  104. }
  105. float Car::getPrice(){
  106.     return price;
  107. }
  108. void cheaperThan(Car* cars, int numCars, float price){
  109.     for (int i=0;i<numCars;i++){
  110.         if ((cars+i)->getPrice() < price){
  111.             (cars+i)->print();
  112.             }
  113.     }
  114. }
  115.  
  116.  
  117. int main() {
  118.     char name[20];
  119.     char lastName[20];
  120.     int year;
  121.     int month;
  122.     int day;
  123.     float price;
  124.  
  125.     int testCase;
  126.     cin >> testCase;
  127.  
  128.     if (testCase == 1) {
  129.         cin >> name;
  130.         cin >> lastName;
  131.         Person lik(name, lastName);
  132.  
  133.         cin >> year;
  134.         cin >> month;
  135.         cin >> day;
  136.         Date date(year, month, day);
  137.  
  138.         cin >> price;
  139.         Car car(lik, date,  price);
  140.  
  141.         car.print();
  142.     }
  143.     else if (testCase == 2) {
  144.         cin >> name;
  145.         cin >> lastName;
  146.         Person lik(name, lastName);
  147.  
  148.         cin >> year;
  149.         cin >> month;
  150.         cin >> day;
  151.         Date date(Date(year, month, day));
  152.  
  153.         cin >> price;
  154.         Car car(lik, date,  price);
  155.         car.print();
  156.     }
  157.     else {
  158.         int numCars;
  159.         cin >> numCars;
  160.  
  161.         Car cars[10];
  162.         for (int i = 0; i < numCars; i++) {
  163.             cin >> name;
  164.             cin >> lastName;
  165.             Person lik(name, lastName);
  166.  
  167.             cin >> year;
  168.             cin >> month;
  169.             cin >> day;
  170.             Date date(year, month, day);
  171.  
  172.             cin >> price;
  173.             cars[i] = Car(lik, date,  price);
  174.         }
  175.         float priceLimit;
  176.         cin >> priceLimit;
  177.         cheaperThan(cars, numCars, priceLimit);
  178.     }
  179.  
  180.  
  181.     return 0;
  182. }
  183.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement