Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <cstring>
- using namespace std;
- class Nedviznost
- {
- protected:
- char adresa[100];
- char grad[30];
- float kvadratura;
- public:
- Nedviznost(){}
- Nedviznost(char *a, char *g, float k)
- {
- strcpy(adresa,a);
- strcpy(grad,g);
- kvadratura=k;
- }
- virtual float cena()=0;
- friend ostream &operator<<(ostream &out, Nedviznost &rhs)
- {
- out<<"Adresa: "<<rhs.adresa<<endl;
- out<<"Grad:" <<rhs.grad<<endl;
- out<<rhs.kvadratura<<" kvadrati"<<endl;
- out<<"Cena: "<<rhs.cena()<<endl;
- return out;
- }
- bool operator<(Nedviznost &rhs)
- {
- return this->cena()<rhs.cena();
- }
- };
- class Kukja:public Nedviznost
- {
- int brKatovi;
- float kvadraturaNaKat;
- bool imaPotkrovje;
- public:
- Kukja(){}
- Kukja(char *a, char *g, float k, int b, float knk, bool ip):Nedviznost(a,g,k)
- {
- brKatovi=b;
- kvadraturaNaKat=knk;
- imaPotkrovje=ip;
- }
- float cena()
- {
- return (brKatovi*kvadraturaNaKat)*700 + (kvadratura-kvadraturaNaKat)*200;
- }
- };
- class Zgrada:public Nedviznost
- {
- float kvadraturaStan;
- int brStanovi;
- public:
- Zgrada(){}
- Zgrada(char *a, char *g, float k, int b, int ks):Nedviznost(a,g,k)
- {
- kvadraturaStan=ks;
- brStanovi=b;
- }
- float cena()
- {
- return (kvadraturaStan*800)*brStanovi+brStanovi*500;
- }
- };
- class Stovariste:public Nedviznost
- {
- float pokrienaKvadratura;
- bool imaKancelarija;
- public:
- Stovariste(){}
- Stovariste(char *a, char *g, float k, float pk, bool ik):Nedviznost(a,g,k)
- {
- pokrienaKvadratura=pk;
- imaKancelarija=ik;
- }
- float cena()
- {
- return (pokrienaKvadratura*250+(kvadratura-pokrienaKvadratura)*100)*(imaKancelarija)?1.1:1;
- }
- };
- Nedviznost &najskap_imot(Nedviznost **niza, int n)
- {
- int najskap=0;
- for(int i=1;i<n;i++)
- if(*niza[najskap]<*niza[i])
- najskap=i;
- return *niza[najskap];
- }
- int main() {
- int n; // Broj na nedviznosti
- int tip_nedviznost; // Tip na nedviznost (1-kukja, 2-zgrada, 3-stovariste)
- cin >> n;
- Nedviznost **ned = new Nedviznost*[n];
- char adresa[100];
- char grad[30] ;
- float kvadratura;
- for(int i = 0; i < n; ++i) {
- cin >> tip_nedviznost>> adresa >> grad >> kvadratura;
- if(tip_nedviznost==1) {
- int br_kat;
- float kvadrat_kat;
- bool potkrovje;
- cin >> br_kat >> kvadrat_kat >> potkrovje;
- ned[i] = new Kukja(adresa, grad, kvadratura, br_kat, kvadrat_kat, potkrovje);
- }
- else if(tip_nedviznost == 2) {
- int br_stanovi;
- float kvadrat_na_stan;
- cin >> br_stanovi >> kvadrat_na_stan;
- ned[i] = new Zgrada(adresa, grad, kvadratura, br_stanovi, kvadrat_na_stan);
- }
- else if(tip_nedviznost == 3){
- float kvadrati_pokrien_del;
- bool kancelarija;
- cin >>kvadrati_pokrien_del >> kancelarija;
- ned[i]= new Stovariste(adresa, grad, kvadratura, kvadrati_pokrien_del,kancelarija);
- }
- }
- cout<<"== IMOTI =="<<endl;
- for (int i=0; i<n; i++){
- cout<<*(ned[i])<<endl;
- }
- cout << "=== NAJSKAP IMOT ===" << endl;
- cout << najskap_imot(ned, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement