Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Restoran {
- private:
- char * ime;
- char * adresa;
- int godina_na_osnovanje;
- float dohod;
- float prodadeni_vafli;
- char odgovorno_lice[100];
- public:
- Restoran() {
- ime = new char[100];
- adresa = new char[100];
- }
- Restoran(const char * _ime, const char * _adresa, int _godina_na_osnovanje, float _dohod, float _prodadeni_vafli, char * _odgovorno_lice) {
- ime = new char[(strlen(_ime))];
- strcpy(ime, _ime);
- adresa = new char[strlen(_adresa)];
- strcpy(adresa, _adresa);
- godina_na_osnovanje = _godina_na_osnovanje;
- dohod = _dohod;
- prodadeni_vafli = _prodadeni_vafli;
- strcpy(odgovorno_lice, _odgovorno_lice);
- }
- Restoran(const Restoran & tmp) {
- ime = new char[(strlen(tmp.ime))];
- strcpy(ime, tmp.ime);
- adresa = new char[strlen(tmp.adresa)];
- strcpy(adresa, tmp.adresa);
- godina_na_osnovanje = tmp.godina_na_osnovanje;
- dohod = tmp.dohod;
- prodadeni_vafli = tmp.prodadeni_vafli;
- strcpy(odgovorno_lice, tmp.odgovorno_lice);
- }
- Restoran & operator = (const Restoran & tmp) {
- ime = new char[(strlen(tmp.ime))];
- strcpy(ime, tmp.ime);
- adresa = new char[strlen(tmp.adresa)];
- strcpy(adresa, tmp.adresa);
- godina_na_osnovanje = tmp.godina_na_osnovanje;
- dohod = tmp.dohod;
- prodadeni_vafli = tmp.prodadeni_vafli;
- strcpy(odgovorno_lice, tmp.odgovorno_lice);
- return *this;
- }
- ~Restoran() {
- delete[] ime;
- delete [] adresa;
- }
- bool operator >= (Restoran tmp) {
- if(dohod >= tmp.dohod) {
- return true;
- }
- return false;
- }
- friend istream & operator >> (istream & stream, Restoran & tmp);
- virtual float presmetaj_dohod() {
- return dohod;
- }
- virtual void print() {
- cout << ime << " " << adresa << " " << godina_na_osnovanje << " " << dohod << " " << prodadeni_vafli << " "<< odgovorno_lice << endl;
- }
- };
- class RestoranBezIsporaka : public Restoran {
- private:
- string najpopularna_vafla;
- string tip_na_zacini;
- float rejting;
- float zarabotka;
- public:
- RestoranBezIsporaka() : Restoran(){}
- RestoranBezIsporaka(char * _ime, char * _adresa, int _godina_na_osnovanje, float _dohod, float _prodadeni_vafli, char * _odgovorno_lice, string _najpopularna_vafla, string _tip_na_zacini, float _rating, float _zarabotka) : Restoran(_ime, _adresa, _godina_na_osnovanje, _dohod, _prodadeni_vafli, _odgovorno_lice){
- najpopularna_vafla = _najpopularna_vafla;
- tip_na_zacini = _tip_na_zacini;
- rejting = _rating;
- zarabotka = _zarabotka;
- }
- RestoranBezIsporaka(const RestoranBezIsporaka & tmp) : Restoran(tmp) {
- najpopularna_vafla = tmp.najpopularna_vafla;
- tip_na_zacini = tmp.tip_na_zacini;
- rejting = tmp.rejting;
- zarabotka = tmp.zarabotka;
- }
- virtual float presmetaj_dohod() override {
- float osnoven_dohod = Restoran::presmetaj_dohod();
- if(zarabotka >= 40000) {
- float result = osnoven_dohod + (0.15 * zarabotka);
- return result;
- }
- return osnoven_dohod;
- }
- virtual void print() override {
- Restoran::print();
- cout << najpopularna_vafla << " " << tip_na_zacini << " " << rejting << " " << zarabotka << endl;
- }
- };
- class RestoranSoIsoraka : public Restoran {
- private:
- string najklikana;
- string komentari;
- string webstrana;
- float rejting;
- public:
- RestoranSoIsoraka() : Restoran() {
- }
- RestoranSoIsoraka(char * _ime, char * _adresa, int _godina_na_osnovanje, float _dohod, float _prodadeni_vafli, char * _odgovorno_lice, string _najklikana, string _komentari, string _webstrana, float _rejting) : Restoran(_ime, _adresa, _godina_na_osnovanje, _dohod, _prodadeni_vafli, _odgovorno_lice){
- najklikana = _najklikana;
- komentari = _komentari;
- webstrana = _webstrana;
- rejting = _rejting;
- }
- RestoranSoIsoraka(RestoranSoIsoraka & tmp) : Restoran(tmp) {
- najklikana = tmp.najklikana;
- komentari = tmp.komentari;
- webstrana = tmp.webstrana;
- rejting = tmp.rejting;
- }
- virtual float presmetaj_dohod() override{
- float osnoven_dohod = Restoran::presmetaj_dohod();
- if(rejting > 3) {
- return osnoven_dohod * rejting;
- }
- return osnoven_dohod;
- }
- virtual void print() override {
- Restoran::print();
- cout << najklikana << " " << komentari << " " << webstrana << " "<< rejting << endl;
- }
- };
- istream & operator >> (istream & stream, Restoran & tmp) {
- char _ime[100], _adresa[100];
- stream >> _ime;
- stream >> _adresa;
- tmp.ime = new char[strlen(_ime)];
- strcpy(tmp.ime, _ime);
- tmp.adresa = new char[strlen(_adresa)];
- strcpy(tmp.adresa, _adresa);
- stream >> tmp.godina_na_osnovanje;
- stream >> tmp.dohod;
- stream >> tmp.prodadeni_vafli;
- stream >> tmp.odgovorno_lice;
- return stream;
- }
- void najgolem_dohod(int n, Restoran ** restorani) {
- float najgolem_dohod = 0.0;
- for(int i = 0; i < n; i++) {
- if(restorani[i]->presmetaj_dohod() > najgolem_dohod) {
- najgolem_dohod = restorani[i]->presmetaj_dohod();
- }
- }
- for(int i =0; i < n; i++) {
- if(restorani[i]->presmetaj_dohod() == najgolem_dohod) {
- restorani[i]->print();
- }
- }
- }
- int main()
- {
- Restoran * restorani[3];
- restorani[0] = new RestoranSoIsoraka("gino", "centar", 1900, 500, 50, "lice", "krem", "dobri", "www.gino.mk", 4.5);
- restorani[1] = new RestoranBezIsporaka("abc", "karpos", 2000, 600, 50, "abc", "nutela", "seakkvi", 10.5, 20000);
- restorani[2] = new Restoran("rew", "aerodrom", 2025, 1000, 80, "rew");
- najgolem_dohod(3, restorani);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement