Advertisement
borisdexter

Objektno 4 chas

Jan 23rd, 2020
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.72 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. class DebitCard{
  4. protected:
  5.     char *name;
  6.     float balance;
  7.     long int cardID;
  8. public:
  9.     DebitCard(){
  10.     //delete []name;
  11.     name=new char[0];
  12.     }
  13.     DebitCard(char *name,float balance,int cardID){
  14.     this->name=new char[strlen(name)+1];
  15.     strcpy(this->name,name);
  16.     this->balance=balance;
  17.     this->cardID=cardID;
  18.     }
  19.  
  20.     void print(){
  21.     cout<<name<<" balance: "<<balance<<endl;
  22.     }
  23.  
  24.     void deposit(float amount){
  25.     this->balance+=amount;
  26.     }
  27.  
  28.     DebitCard &operator+=(float amount){
  29.     this->balance+=amount;
  30.     return *this;
  31.     }
  32.  
  33.     void withdraw(float amount){
  34.     if(amount>balance){
  35.         cout<<"Not enough credits"<<endl;
  36.     }else{
  37.         balance-=amount;
  38.     }
  39.     }
  40. };
  41.  
  42. class CreditCard:public DebitCard{
  43. private:
  44.     int limit;
  45. public:
  46.     CreditCard(){}
  47.     CreditCard(){}
  48.     ~CreditCard(){}
  49. };
  50. int main(){
  51. DebitCard random("Petar",250,1765432199);
  52. random.print();
  53. cout<<"Adding 2500"<<endl;
  54. random+=2500;
  55. random.print();
  56. random.withdraw(3000);
  57. random.withdraw(2000);
  58. random.print();
  59.  
  60. CreditCard random2("Petar2",250,1765432199);
  61. random2.print();
  62. cout<<"Adding 2500"<<endl;
  63. random2+=2500;
  64. random2.print();
  65. random2.withdraw(3000);
  66. random2.withdraw(2000);
  67. random2.print();
  68. return 0;
  69. }
  70. // nasleduvanje
  71. /*
  72. class Zivotno{
  73. protected:
  74.     char boja[15];
  75.     float tezina;
  76. public:
  77.     Zivotno(){
  78.     cout<<"Default constructor Zivotno"<<endl;
  79.     }
  80.     Zivotno(char boja[],float tezina){
  81.     cout<<"Parameter constructor Zivotno"<<endl;
  82.     strcpy(this->boja,boja);
  83.     this->tezina=tezina;
  84.     }
  85.     void print(){
  86.     cout<<boja<<" "<<tezina;
  87.     }
  88.     float getTezina(){
  89.     return tezina;
  90.     }
  91.     ~Zivotno(){
  92.     cout<<"Default destructor Zivotno"<<endl;
  93.     }
  94. };
  95. class Kuce:public Zivotno{
  96. private:
  97.     char rasa[15];
  98.     bool daliKasa;
  99. public:
  100.     Kuce(){
  101.     cout<<"Default constructor Kuce"<<endl;
  102.     }
  103.     Kuce(char boja[],float tezina,char rasa[],bool daliKasa):Zivotno(boja,tezina){
  104.     cout<<"Parameter constructor Kuce"<<endl;
  105.     // ovie gi pishuvame ako nemavme constructor od Zivotno
  106.     //strcpy(this->boja,boja);
  107.     //this->tezina=tezina;
  108.     strcpy(this->rasa,rasa);
  109.     this->daliKasa=daliKasa;
  110.     }
  111.  
  112.     // override na Zivotno.print();
  113.     void print(){
  114.     Zivotno::print();
  115.     cout<<" "<<rasa<<" "<<daliKasa<<endl;
  116.     }
  117.  
  118.     ~Kuce(){
  119.     cout<<"Default destructor Kuce"<<endl;
  120.     }
  121. };
  122.  
  123. class Petel:public Zivotno{
  124. private:
  125.     bool daliKukurika;
  126. public:
  127.     Petel(){
  128.     cout<<"Default constructor Petel"<<endl;
  129.     }
  130.     Petel(char boja[],float tezina,bool daliKukurika):Zivotno(boja,tezina){
  131.     cout<<"Parameter constructor Petel"<<endl;
  132.     // ovie gi pishuvame ako nemavme constructor od Zivotno
  133.     //strcpy(this->boja,boja);
  134.     //this->tezina=tezina;
  135.     this->daliKukurika=daliKukurika;
  136.     }
  137.  
  138.     // override na Zivotno.print();
  139.     void print(){
  140.     Zivotno::print();
  141.     cout<<" "<<daliKukurika<<endl;
  142.     }
  143.  
  144.     ~Petel(){
  145.     cout<<"Default destructor Petel"<<endl;
  146.     }
  147. };
  148. int main(){
  149. Kuce sharko("Crna",10,"Dzukela",false);
  150. Petel petar("Bel",2,true);
  151. cout<<petar.getTezina()<<endl;
  152. cout<<sharko.getTezina()<<endl;
  153. return 0;
  154. }
  155. */
  156.  
  157.  
  158. // vo constructor i destructor resetirame dinamicki alocirani promenlivi
  159. /*
  160. class Runner{
  161. private:
  162.     char *ime;
  163.     float sekundi;
  164. public:
  165.     Runner(){
  166.     ime=new char[0];
  167.     }
  168.     Runner(char *ime,float sekundi){
  169.     //delete []this->ime;
  170.     //this->ime=new char[0];
  171.     this->ime=new char[strlen(ime)+1];
  172.     strcpy(this->ime,ime);
  173.     this->sekundi=sekundi;
  174.     }
  175.  
  176.     Runner &operator=(Runner &drugTrkac){
  177.     this->sekundi=drugTrkac.sekundi;
  178.     delete []this->ime;
  179.     this->ime=new char[strlen(drugTrkac.ime)+1];
  180.     strcpy(this->ime,drugTrkac.ime);
  181.     return *this;
  182.     }
  183.  
  184.  
  185.     friend ostream &operator<<(ostream &output, Runner &trkac){
  186.     output<<trkac.ime<<" "<<trkac.sekundi<<endl;
  187.     return output;
  188.     }
  189.  
  190.     friend istream &operator>>(istream &input, Runner &trkac){
  191.     input>>trkac.ime>>trkac.sekundi;
  192.     return input;
  193.     }
  194.  
  195.     Runner &operator+=(float dodadiSekundi){
  196.     this->sekundi+=dodadiSekundi;
  197.     return *this;
  198.     }
  199.  
  200.     bool operator==(Runner &drugTrkac){
  201.     if(strcmp(this->ime,drugTrkac.ime)==0){
  202.         if(this->sekundi==drugTrkac.sekundi){
  203.             return true;
  204.         }
  205.     }
  206.     return false;
  207.     }
  208.  
  209.     ~Runner(){
  210.     delete []ime;
  211.     }
  212. };
  213.  
  214. class Trka{
  215. private:
  216.     Runner *niza;
  217.     int brojTrkaci;
  218.     char lokacija[20];
  219. public:
  220.     Trka(){
  221.     niza=new Runner[0];
  222.     }
  223.     Trka(char lokacija[]){
  224.     niza=new Runner[0];
  225.     strcpy(this->lokacija,lokacija);
  226.     }
  227.  
  228.     void printTrkaci(){
  229.     cout<<"Vo "<<lokacija<<" se trkaat slednive trkaci:"<<endl;
  230.     for(int i=0;i<brojTrkaci;i++){
  231.         cout<<niza[i];
  232.     }
  233.     }
  234.  
  235.     Trka &operator+=(Runner &novTrkac){
  236.     // gi zacuvuvame site trkaci vo posebna niza
  237.     Runner *tempNiza=new Runner[brojTrkaci];
  238.     for(int i=0;i<brojTrkaci;i++){
  239.         tempNiza[i]=niza[i];
  240.     }
  241.     // ja prosiruvame nizata za +1 mesto (isto taka se brise nizata radi NEW)
  242.     niza=new Runner[brojTrkaci+1];
  243.     // si gi vrakjame zacuvani trkaci nazad vo nizata so +1 mesto
  244.     for(int i=0;i<brojTrkaci;i++){
  245.         niza[i]=tempNiza[i];
  246.     }
  247.     // na posledno mesto stavi go noviot trkac
  248.     niza[brojTrkaci]=novTrkac;
  249.     // zgolemuvame brojot na trkaci vo nizata
  250.     brojTrkaci++;
  251.     // briseme tempNiza zosto ne ni treba veke
  252.     delete []tempNiza;
  253.     return *this;
  254.     }
  255.  
  256.     Trka &operator-=(Runner &brisiTrkac){
  257.     int flag=0;
  258.     for(int i=0;i<brojTrkaci;i++){
  259.         if(niza[i]==brisiTrkac){
  260.             flag=1;
  261.             break;
  262.         }
  263.     }
  264.     if(flag==1){
  265.     // briseme trkacot od nizata
  266.     Runner *tempNiza=new Runner[brojTrkaci];
  267.     int brojac=0;
  268.     for(int i=0;i<brojTrkaci;i++){
  269.     // site shto ne se ednakvi na brisiTrkaci gi stavame vo tempNiza
  270.         if(niza[i]==brisiTrkac){
  271.  
  272.         }else{
  273.             tempNiza[brojac]=niza[i];
  274.             brojac++;
  275.         }
  276.     }
  277.     // namaluvame brojot na trkaci za 1
  278.     brojTrkaci--;
  279.     // namaluvame goleminata na nizata za 1
  280.     niza=new Runner[brojTrkaci];
  281.     // gi vrakjame trkacite minus brisiTrkac nazad vo nizata
  282.     for(int i=0;i<brojTrkaci;i++){
  283.         niza[i]=tempNiza[i];
  284.     }
  285.     delete []tempNiza;
  286.     }
  287.     return *this;
  288.     }
  289.  
  290.     ~Trka(){
  291.     delete []niza;
  292.     }
  293.  
  294. };
  295. int main(){
  296. Runner prv("Jovan",25.5);
  297. Runner vtor("Stefan",21);
  298. Runner tret("Boris",23.2);
  299. Trka t("Ohrid");
  300. t+=prv;
  301. t+=vtor;
  302. t+=tret;
  303. t.printTrkaci();
  304. t-=vtor;
  305. t.printTrkaci();
  306. // za doma - go printame najbrziot trkac
  307. // t.najbrzTrkac();
  308. return 0;
  309. }
  310. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement