Advertisement
MeehoweCK

Untitled

Nov 25th, 2020
558
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 <vector>
  3.  
  4. using namespace std;
  5.  
  6. class Kandydat
  7. {
  8.     friend class Lista;
  9.     string imie;
  10.     string nazwisko;
  11.     unsigned id;
  12.     unsigned liczba_glosow;
  13. public:
  14.     Kandydat(string, string, unsigned);
  15.     void dodaj_glosy(unsigned);
  16.     void wypisz_dane();
  17. };
  18.  
  19. Kandydat::Kandydat(string name, string scndname, unsigned ident) : imie(name), nazwisko(scndname), id(ident), liczba_glosow(0) {}
  20.  
  21. void Kandydat::dodaj_glosy(unsigned ile)
  22. {
  23.     liczba_glosow += ile;
  24. }
  25.  
  26. void Kandydat::wypisz_dane()
  27. {
  28.     cout << id << ' ' << imie << ' ' << nazwisko << "\t\tliczba glosow: " << liczba_glosow << endl;
  29. }
  30.  
  31. class Lista
  32. {
  33.     friend class Okreg;
  34.     string nazwa_komitetu;
  35.     vector<Kandydat*> lista;
  36.     unsigned liczba_glosow;
  37.     unsigned liczba_kandydatow;
  38. public:
  39.     Lista(string);
  40.     ~Lista();
  41.     void dodaj_kandydata(string, string);
  42.     bool dodaj_glosy(unsigned, unsigned);
  43.     void sortuj_kandydatow();
  44.     void wypisz_liste();
  45. };
  46.  
  47. Lista::Lista(string nazwa) : nazwa_komitetu(nazwa), liczba_glosow(0), liczba_kandydatow(0) {}
  48. {
  49.     lista.resize(0);
  50. }
  51.  
  52. Lista::~Lista()
  53. {
  54.     for(unsigned i = 0; i < liczba_kandydatow; ++i)
  55.         delete lista[i];
  56.     cout << "Usunieto liste" << endl;
  57. }
  58.  
  59. void Lista::dodaj_kandydata(string imie, string nazwisko)
  60. {
  61.     lista.push_back(nullptr);
  62.     lista[liczba_kandydatow] = new Kandydat(imie, nazwisko, liczba_kandydatow);
  63.     ++liczba_kandydatow;
  64. }
  65.  
  66. bool Lista::dodaj_glosy(unsigned ile, unsigned nr)
  67. {
  68.     for(unsigned i = 0; i < liczba_kandydatow; ++i)
  69.     {
  70.         if(lista[i]->id == nr)
  71.         {
  72.             lista[i]->dodaj_glosy(ile);
  73.             liczba_glosow += ile;
  74.             return true;
  75.         }
  76.     }
  77.     return false;
  78. }
  79.  
  80. void Lista::sortuj_kandydatow()
  81. {
  82.     for(unsigned i = 0; i < liczba_kandydatow; ++i)
  83.         for(unsigned j = 0; j < liczba_kandydatow - i - j; ++j)
  84.             if(lista[j]->liczba_glosow < lista[j + 1]->liczba_glosow)
  85.                 swap(lista[j], lista[j + 1]);
  86. }
  87.  
  88. void Lista::wypisz_liste()
  89. {
  90.     for(unsigned i = 0; i < liczba_kandydatow; ++i)
  91.         lista[i]->wypisz_dane()
  92. }
  93.  
  94. class Okreg
  95. {
  96.     unsigned nr_okregu;
  97.     vector<Lista*> listy;
  98.     unsigned ile_list;
  99. public:
  100.     Okreg(unsigned);
  101.     ~Okreg();
  102.     bool dodaj_glosy(unsigned, unsigned, unsigned);
  103.     void zarejestruj_liste(Lista*);
  104.     void wypisz_listy();
  105.     void sortuj();
  106. };
  107.  
  108. Okreg::Okreg(unsigned numer) : nr_okregu(numer), ile_list(0)
  109. {
  110.     listy.resize(0);
  111. }
  112.  
  113. Okreg::~Okreg()
  114. {
  115.     for(unsigned i = 0; i < ile_list; ++i)
  116.         delete listy[i];
  117.     cout << "Destruktor zakonczyl prace" << endl;
  118. }
  119.  
  120. bool Okreg::dodaj_glosy(unsigned lista, unsigned numer, unsigned liczba_glosow)
  121. {
  122.    
  123. }
  124.  
  125. void Okreg::wypisz_listy()
  126. {
  127.     for(unsigned i = 0; i < ile_list; ++i)
  128.         listy[i]->wypisz_liste();
  129. }
  130.  
  131. void Okreg::sortuj()
  132. {
  133.    
  134. }
  135.  
  136. int main()
  137. {
  138.    
  139.     return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement