Advertisement
Dimitrija

Laboratoriski 3 - 2 OOP

Mar 23rd, 2021
887
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. /*
  6. Да се дефинира класа Potpisuvac во која се чуваат информации за:
  7. име (низа од максимум 20 знаци)
  8. презиме (низа од максимум 20 знаци)
  9. ЕМБГ (низа од максимум 14 знаци)
  10. За класата да се дефинира copy конструктор, default конструктор и конструктор со аргументи.
  11.  
  12. Да се дефинира класа Dogovor, во која се чуваат информации за:
  13. број на договор (int),
  14. категорија на договор (низа од 50 знаци),
  15. поле од 3 потпишувачи на договорот (објекти од класата Potpisuvac)
  16. Во класата да се додаде метод кој ќе проверува дали постојат два исти потпишувачи (имаат ист ЕМБГ).
  17.  
  18. For example:
  19. Input:
  20. 2
  21. 0101988450001 Alek Aleksov
  22. 0101988450001 Alek Aleksov
  23. 0202987440022 Marko Markov
  24. 1 Osiguruvanje
  25. 0101988450001 Alek Aleksov
  26. 0101988450011 Tome Tomov
  27. 0202987440022 Marko Markov
  28. 2 Kreditiranje
  29. Result:
  30. Dogovor 1:
  31. Postojat potpishuvaci so ist EMBG
  32. Dogovor 2:
  33. Ne postojat potpishuvaci so ist EMBG
  34. */
  35.  
  36.  
  37. class Potpisuvac
  38. {
  39.     //vasiot kod ovde
  40. private:
  41.     enum Dolz {ImeDolz = 20,PrezimeDolz = 20,EMBGDolz = 14};
  42.     char ime[ImeDolz+1];
  43.     char prezime[PrezimeDolz+1];
  44.     char EMBG[EMBGDolz+1];
  45. public:
  46.     Potpisuvac();
  47.     Potpisuvac(const Potpisuvac& r);
  48.     Potpisuvac(char *ime,char*prezime,char *EMBG);
  49.     char *getEMBG();
  50. };
  51. Potpisuvac::Potpisuvac(){}
  52. Potpisuvac::Potpisuvac(const Potpisuvac& r){
  53.     strncpy(this->ime,r.ime,ImeDolz);
  54.     this->ime[ImeDolz] = '\0';
  55.     strncpy(this->prezime,r.prezime,PrezimeDolz);
  56.     this->prezime[PrezimeDolz] = '\0';
  57.     strncpy(this->EMBG,r.EMBG,EMBGDolz);
  58.     this->EMBG[EMBGDolz] = '\0';
  59. }
  60. Potpisuvac::Potpisuvac(char *ime,char *prezime,char *EMBG){
  61.     strncpy(this->ime,ime,ImeDolz);
  62.     this->ime[ImeDolz] = '\0';
  63.     strncpy(this->prezime,prezime,PrezimeDolz);
  64.     this->prezime[PrezimeDolz] = '\0';
  65.     strncpy(this->EMBG,EMBG,EMBGDolz);
  66.     this->EMBG[EMBGDolz] = '\0';
  67.    
  68. }
  69. char *Potpisuvac::getEMBG(){
  70.     return EMBG;
  71. }
  72.  
  73.  
  74. class Dogovor
  75. {
  76.     //vasiot kod ovde
  77. private:
  78.     enum Dolzina {DolzNaKat= 50 , BrNaPotpis = 3};
  79.     int brNaDogovor;
  80.     char katNaDogovor[DolzNaKat+1];
  81.     Potpisuvac objPot[BrNaPotpis];
  82. public:
  83.     Dogovor(int broj, char *kategorija,Potpisuvac *p);
  84.     bool proverka();
  85. };
  86. Dogovor::Dogovor(int broj, char *kategorija,Potpisuvac *p){
  87.     this->brNaDogovor = broj;
  88.     strncpy(katNaDogovor,kategorija,DolzNaKat);
  89.     katNaDogovor[DolzNaKat] = '\0';
  90.     this->objPot[0] = p[0];
  91.     this->objPot[1] = p[1];
  92.     this->objPot[2] = p[2];
  93.  
  94. }
  95. bool Dogovor::proverka(){
  96.         if ((strcmp(objPot[0].getEMBG(),objPot[1].getEMBG())  &&
  97.              strcmp(objPot[1].getEMBG() ,objPot[2].getEMBG()) &&
  98.              strcmp(objPot[0].getEMBG() , objPot[2].getEMBG()) )== 0){
  99.                     return true;
  100.             }
  101.         else{
  102.                     return false;
  103.             }
  104. }
  105.  
  106.  
  107. //ne smee da se menuva main funkcijata
  108. int main()
  109. {
  110.     char embg[13], ime[20], prezime[20], kategorija[20];
  111.     int broj, n;
  112.     cin >> n;
  113.     for(int i = 0; i < n; i++){
  114.         cin >> embg >> ime >> prezime;
  115.         Potpisuvac p1(ime, prezime, embg);
  116.         cin >> embg >> ime >> prezime;
  117.         Potpisuvac p2(ime, prezime, embg);
  118.         cin >> embg >> ime >> prezime;
  119.         Potpisuvac p3(ime, prezime, embg);
  120.         cin >> broj >> kategorija;
  121.         Potpisuvac p[3];
  122.         p[0] = p1; p[1] = p2; p[2] = p3;
  123.         Dogovor d(broj, kategorija, p);
  124.         cout << "Dogovor " << broj << ":" << endl;
  125.         if(d.proverka() == true)
  126.             cout << "Postojat potpishuvaci so ist EMBG" << endl;
  127.         else
  128.             cout << "Ne postojat potpishuvaci so ist EMBG" << endl;
  129.     }
  130.     return 0;
  131. }
  132.  
  133.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement