Advertisement
196040

OOP labs 3 Dogovor

Apr 28th, 2020
618
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.92 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. class Potpisuvac { //Да се дефинира класа Potpisuvac во која се чуваат информации за:
  5.     private:
  6.     char ime[20];//  име (низа од максимум 20 знаци)
  7.     char prezime[20];// презиме (низа од максимум 20 знаци)
  8.         char embg[14]; //  ЕМБГ (низа од максимум 14 знаци)
  9.     public:
  10.     Potpisuvac(char * ime = "", char * prezime = "", char * embg = "") {
  11.         //default конструктор и конструктор со аргументи.
  12.     strcpy(this->ime, ime);
  13.         strcpy(this->prezime, prezime);
  14.         strcpy(this->embg, embg);
  15.     }
  16.     Potpisuvac (const Potpisuvac &p) { //За класата да се дефинира copy конструктор,
  17.     strcpy(this->ime, p. ime);
  18.         strcpy(this->prezime, p. prezime);
  19.         strcpy(this->embg, p. embg);
  20.     }
  21.     char *getembg() {
  22.     return embg;
  23.     }
  24. };
  25. class Dogovor { //Да се дефинира класа Dogovor, во која се чуваат информации за:
  26. private:
  27. int broj; //број на договор (int),
  28. char kategorija[50]; //категорија на договор (низа од 50 знаци),
  29. Potpisuvac p[3]; // поле од 3 потпишувачи на договорот (објекти од класата Potpisuvac)
  30.     public:
  31.     Dogovor() {}
  32.     Dogovor(int broj, char * kategorija, Potpisuvac p[3]) {
  33.     this->broj=broj;
  34.         strcpy(this->kategorija, kategorija);
  35.         for(int i=0; i<3; i++) {
  36.         this->p[i]=p[i];
  37.         }
  38.     }
  39.     bool proverka() { //Во класата да се додаде метод кој ќе проверува дали постојат два
  40.         //исти потпишувачи (имаат ист ЕМБГ).
  41.         for(int i=0; i<3; i++)
  42.         for(int j=0; j<3; j++)
  43.            if (strcmp(p[i].getembg(), p[j].getembg())==0&&i!=j) //moze i samo so p[0] p[1] p[2]
  44.             return true;
  45.         return false;
  46.     }
  47. };
  48. //ne smee da se menuva main funkcijata //bla bla
  49. int main() {
  50.     char embg[13], ime[20], prezime[20], kategorija[20];
  51.     int broj, n;
  52.     cin >> n;
  53.     for(int i = 0; i < n; i++) {
  54.         cin >> embg >> ime >> prezime;
  55.         Potpisuvac p1(ime, prezime, embg);
  56.         cin >> embg >> ime >> prezime;
  57.         Potpisuvac p2(ime, prezime, embg);
  58.         cin >> embg >> ime >> prezime;
  59.         Potpisuvac p3(ime, prezime, embg);
  60.         cin >> broj >> kategorija;
  61.         Potpisuvac p[3];
  62.         p[0] = p1;
  63.         p[1] = p2;
  64.         p[2] = p3;
  65.         Dogovor d(broj, kategorija, p);
  66.         cout << "Dogovor " << broj << ":" << endl;
  67.         if(d.proverka() == true)
  68.             cout << "Postojat potpishuvaci so ist EMBG" << endl;
  69.         else
  70.             cout << "Ne postojat potpishuvaci so ist EMBG" << endl;
  71.     }
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement