Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Kredit {
  7. protected:
  8.     char imeBanka[31];
  9.     char imeKredit[41];
  10.     int tipKredit;
  11.     int rokMeseci;
  12.     double kamata;
  13.     double osnovnaSuma;
  14.     bool zaNevraboteni;
  15.  
  16.     void copy(Kredit &k) {
  17.         strncpy(imeBanka, k.imeBanka, 30);
  18.         imeBanka[30] = '\n';
  19.         strncpy(imeKredit, k.imeKredit, 40);
  20.         imeKredit[40] = '\n';
  21.         tipKredit = k.tipKredit;
  22.         rokMeseci = k.rokMeseci;
  23.         kamata = k.kamata;
  24.         osnovnaSuma = k.osnovnaSuma;
  25.         zaNevraboteni = k.zaNevraboteni;
  26.     }
  27.  
  28. public:
  29.     Kredit (char* imeBanka = "", char* imeKredit = "", int tipKredit = 0, int rokMeseci = 0, double kamata = 0, double osnovnaSuma = 0, bool zaNevraboteni = 0) {
  30.         strncpy(this->imeBanka, imeBanka, 30);
  31.         this->imeBanka[30] = '\n';
  32.         strncpy(this->imeKredit, imeKredit, 40);
  33.         this->imeKredit[40] = '\n';
  34.         this->tipKredit = tipKredit;
  35.         this->rokMeseci = rokMeseci;
  36.         this->kamata = kamata;
  37.         this->osnovnaSuma = osnovnaSuma;
  38.         this->zaNevraboteni = zaNevraboteni;
  39.  
  40.     }
  41.     Kredit(Kredit &k) {
  42.         copy(k);
  43.     }
  44.  
  45.     ~Kredit() {}
  46.  
  47.     Kredit& operator=(Kredit& k) {
  48.         if (*k == this) return this;
  49.         copy(k);
  50.         return *this;
  51.     }
  52.  
  53.     char *getImeBanka() { return imeBanka; }
  54.  
  55.     char *getImeKredit() { return imeKredit; }
  56.  
  57.     int getTipKredit() { return tipKredit; }
  58.  
  59.     int getRokMeseci() { return rokMeseci; }
  60.  
  61.     double getKamata() { return kamata; }
  62.  
  63.     double getOsnovnaSuma() { return osnovnaSuma; }
  64.  
  65.     bool isZaNevraboteni() { return zaNevraboteni; }
  66.  
  67.     void setTipKredit(int tipKredit) { Kredit::tipKredit = tipKredit; }
  68.  
  69.     void setRokMeseci(int rokMeseci) { Kredit::rokMeseci = rokMeseci; }
  70.  
  71.     void setKamata(double kamata) { Kredit::kamata = kamata; }
  72.  
  73.     void setOsnovnaSuma(double osnovnaSuma) { Kredit::osnovnaSuma = osnovnaSuma; }
  74.  
  75.     void setZaNevraboteni(bool zaNevraboteni) { Kredit::zaNevraboteni = zaNevraboteni; }
  76.  
  77.     void setImeBanka(char *imeBanka) {
  78.         strncpy(this->imeBanka, imeBanka, 30);
  79.         this->imeBanka[30] = '\n';
  80.     }
  81.     void setImeKredit(char *imeKredit) {
  82.         strncpy(this->imeKredit, imeKredit, 40);
  83.         this->imeKredit[40] = '\n';
  84.     }
  85.  
  86.     void pecati() {
  87.         cout << "Banka: " << imeBanka << endl
  88.              << "Kredit: " << imeKredit << endl
  89.              << "Tip: " << tipKredit << endl
  90.              << "Rok na isplata (vo meseci): " << rokMeseci << endl
  91.              << "Kamata: " << kamata << endl
  92.              << "Osnovna suma: " << osnovnaSuma << endl
  93.              << "Za nevraboteni: " << zaNevraboteni << endl;
  94.     }      
  95.  
  96. };
  97.  
  98. class GroupLoan : public Kredit {
  99. private:
  100.     bool istaBanka;
  101.     double maxKredit;
  102.     Kredit grupa[3];
  103.  
  104. public:
  105.     GroupLoan(char* imeBanka = "", char* imeKredit = "", int tipKredit = 0, int rokMeseci = 0, double kamata = 0, double osnovnaSuma = 0, bool zaNevraboteni = 0, bool istaBanka, double maxKredit, Kredit* grupa) :
  106.     Kredit(imeBanka, imeKredit, tipKredit, rokMeseci, kamata, osnovnaSuma, zaNevraboteni) {
  107.         this->istaBanka = istaBanka;
  108.         this->maxKredit = maxKredit;
  109.        
  110.         for (int i = 0; i < 3; i++) {
  111.             this->grupa[i] = grupa[i];
  112.         }
  113.  
  114.     }
  115.     GroupLoan(GroupLoan &k) : Kredit(k){
  116.         istaBanka = k.istaBanka;
  117.         maxKredit = k.maxKredit;
  118.  
  119.         for (int i = 0; i < 3; i++) {
  120.             grupa[i] = k.grupa[i];
  121.         }
  122.  
  123.     }
  124.    
  125.     ~GroupLoan() {}
  126.  
  127.     void pecati() {
  128.         Kredit::pecati();
  129.         cout << "Vo ista banka: " << istaBanka << endl
  130.              << "Maksimalna vrednost na grupata krediti: " << maxKredit << endl;
  131.     }
  132.  
  133.     bool getIstaBanka() { return istaBanka; }
  134.     double getMaxKredit() { return maxKredit; }
  135.  
  136.     void setMaxKredit() { return maxKredit; }
  137.  
  138. };
  139.  
  140. class CompanyLoan : public Kredit {
  141. private:
  142.     int tipFirma;
  143.     int rokGodini;
  144.     double minSredstva;
  145. public:
  146.     CompanyLoan(char* imeBanka = "", char* imeKredit = "", int tipKredit = 0, double kamata = 0, double osnovnaSuma = 0, bool zaNevraboteni = 0, int tipFirma, int rokGodini, double minSredstva) :
  147.     Kredit(imeBanka, imeKredit, tipKredit, 12 * rokGodini, kamata, osnovnaSuma, zaNevraboteni) {
  148.         this->tipFirma = tipFirma;
  149.         this->rokGodini = rokGodini;
  150.         this->minSredstva = minSredstva;
  151.     }
  152.  
  153.     ~CompanyLoan() {}
  154.  
  155.     int getTipFirma() { return tipFirma; }
  156.     int getRokGodini() { return rokGodini; }
  157.     double getMinSredstva() { return minSredstva; }
  158.  
  159.     void pecati() {
  160.         Kredit::pecati();
  161.         cout << "Tip na firma: " << tipFirma << endl
  162.              << "Rok na isplata (vo godini): " << rokGodini << endl
  163.              << "Najmalku sredstva na smetka za da se podigne ovoj kredit: " << minSredstva << endl;
  164.     }
  165.  
  166. };
  167.  
  168. int main() {
  169.     return 0;
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement