Advertisement
196040

OOP labs 6 Nedviznina

May 4th, 2020
996
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.08 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. class Nedviznina { //Да се развие класа Nediviznina за коjа се чуваат следниве информации:
  5. protected:
  6.     char adresa[50]; //адреса (динамички алоцирана низа од знаци)
  7.     int kvadratura; //квадратура (цел боj)
  8.     int cenak; //цена за квадрат (цел боj)
  9. public: //За оваа класа да се имплементираат соодветните конструктори и следните методи:
  10.     Nedviznina() {}
  11.     Nedviznina(char * adresa, int kvadratura, int cenak) {
  12.         strcpy(this->adresa, adresa);
  13.         this->kvadratura=kvadratura;
  14.         this->cenak=cenak;
  15.     }
  16.     Nedviznina(const Nedviznina &n) {
  17.         strcpy(this->adresa, n.adresa);
  18.         this->kvadratura=n.kvadratura;
  19.         this->cenak=n.cenak;
  20.     }
  21.     int cena() { //cena() коj ќе jа враќа цената на недвижнината (квадратура * цена-за-квадрат)
  22.         return kvadratura*cenak;
  23.     }
  24.     void pecati() { //pecati() коj ќе ги испечати сите информации за истата
  25.         cout<<adresa<<", Kvadratura: "<<kvadratura<<", Cena po Kvadrat: "<<cenak<<endl;
  26.     }
  27.     double danokNaImot() { //danokNaImot() коj го ваќа данокот што се плаќа за недвижнината,
  28.         //а истиот се пресметува како 5% од цената на недвижнината.
  29.         return (cena()*0.05);
  30.     }
  31.     char * getAdresa() {
  32.         return adresa;
  33.     }
  34.     int getKvadratura() {
  35.         return kvadratura;
  36.     }
  37.     int getCenak() {
  38.         return cenak;
  39.     }
  40.     friend istream &operator>>(istream &i, Nedviznina &n ) {
  41.         return i>>n.adresa>>n.kvadratura>>n.cenak;
  42.     }
  43. };
  44. class Vila : public Nedviznina { //Од оваа класа да се изведе класа Vila за коjа дополнително
  45. private:
  46.     int danok;//се чува данок на луксуз (цел боj, пр. 10%). За оваа класа да се преоптоварат методите:
  47. public:
  48.     Vila() {}
  49.     Vila(const Nedviznina &n, int danok) : Nedviznina(n) {
  50.         this->danok=danok;
  51.     }
  52.     Vila(const Vila &v) {
  53.         this->danok=v.danok;
  54.     }
  55.     void pecati() {
  56. cout<<adresa<<", Kvadratura: "<<kvadratura<<", Cena po Kvadrat: "<<cenak<<", ";
  57.        cout<<"Danok na luksuz: "<<danok<<endl;
  58.     }
  59.     int danokNaImot() {
  60.         return (((kvadratura*cenak)*danok)/100) + Nedviznina::danokNaImot();
  61.     }
  62.     friend istream &operator>>(istream &i, Vila &v ) {
  63.     return i>>v.adresa>>v.kvadratura>>v.cenak>>v.danok;
  64.     }
  65.     char * getAdresa() {
  66.         return Nedviznina::getAdresa();
  67.     }
  68. };
  69. int main() {
  70.     Nedviznina n;
  71.     Vila v;
  72.     cin>>n;
  73.     cin>>v;
  74.     n.pecati();
  75.     cout<<"Danok za: "<<n.getAdresa()<<", e: "<<n.danokNaImot()<<endl;
  76.     v.pecati();
  77.     cout<<"Danok za: "<<v.getAdresa()<<", e: "<<v.danokNaImot()<<endl;
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement