Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.56 KB | None | 0 0
  1. #include <list>
  2. #include <iostream>
  3. #include <windows.h>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. list<int>lista_systemu; //utworzenie listy, która przechowuje liczby całkowite
  9. int funkcja;
  10.  
  11. void Wyswietl_Dane()
  12. {
  13.     system("CLS");
  14.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
  15.     cout << "SYSTEM ZARZADZANIA OBIEGIEM INFORMACJI: " << endl;
  16.     cout <<"-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl;
  17.     for(list<int>::iterator w=lista_systemu.begin(); w!=lista_systemu.end(); ++w)
  18.     {
  19.         cout << *w << " ";
  20.  
  21.         cout << endl;
  22.         cout << "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl << endl;
  23.         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
  24.  
  25.     }
  26. }
  27.  
  28. void push_front()
  29. {
  30.     string imie, nazwisko, plec;
  31.     int dzien, miesiac, rok_urodzenia, nr_PESEL, dlugosc_PESEL, wynik;
  32.     cout << "WSTAWIANIE DANYCH NA POCZATEK LISTY" << endl;
  33.     cout << "Podaj plec(Kobieta/Mezczyzna): ";
  34.     cin >> plec;
  35.     if(plec!="Kobieta" && plec!="Mezczyzna")
  36.     {
  37.         printf("Niepoprawna plec!");
  38.         Sleep(3000);
  39.         return;
  40.     }
  41.     cout << "Podaj imie: ";
  42.     cin >> imie;
  43.     cout << "Podaj nazwisko: ";
  44.     cin >> nazwisko;
  45.     cout << "Podaj dzien urodzenia: ";
  46.     cin >> dzien;
  47.     if(dzien>31 || dzien<1)
  48.     {
  49.         printf("Nieprawidlowy dzien! Sprobuj od nowa.");
  50.         Sleep(3000);
  51.         return;
  52.     }
  53.     cout << "Podaj miesiac urodzenia: ";
  54.     cin >> miesiac;
  55.     if(miesiac>12 || miesiac<1)
  56.     {
  57.         printf("Nieprawidlowy miesiac! Sprobuj ponownie.");
  58.         Sleep(3000);
  59.         return;
  60.     }
  61.     cout << "Podaj rok urodzenia: ";
  62.     cin >> rok_urodzenia;
  63.     if(rok_urodzenia>2019 || rok_urodzenia<1900)
  64.     {
  65.         printf("Nieprawidlowy rok! Sprobuj wypelnic dane jeszcze raz.");
  66.         Sleep(3000);
  67.         return;
  68.     }
  69.     cout << "Podaj numer PESEL: ";
  70.     cin >> nr_PESEL;
  71.     unsigned char temp = std::string(nr_PESEL);
  72.     if(temp < 11 || temp > 11)
  73.     {
  74.         cout << "Nieprawidlowa dlugosc PESELU. Sprobuj ponownie."
  75.         Sleep(3000);
  76.         return;
  77.     }
  78.     else {
  79.  
  80.     lista_systemu.push_front(plec[10]);
  81.     lista_systemu.push_front(imie[30]);
  82.     lista_systemu.push_front(nazwisko[30]);
  83.     lista_systemu.push_front(dzien);
  84.     lista_systemu.push_front(miesiac);
  85.     lista_systemu.push_front(rok_urodzenia);
  86.     lista_systemu.push_front(nr_PESEL);
  87.     }
  88. }
  89.  
  90. void push_back()
  91. {
  92.     string imie, nazwisko, plec;
  93.     int dzien, miesiac, rok_urodzenia, nr_PESEL;
  94.     cout << "WSTAWIANIE DANYCH NA KONIEC LISTY" << endl;
  95.     cout << "Podaj plec(Kobieta/Mezczyzna): " << endl;
  96.     cin >> plec;
  97.     if(plec!="Kobieta" && plec!="Mezczyzna")
  98.     {
  99.         printf("Niepoprawna plec!");
  100.         return;
  101.     }
  102.     cout << "Podaj imie: ";
  103.     cin >> imie;
  104.     cout << "Podaj nazwisko: ";
  105.     cin >> nazwisko;
  106.     cout << "Podaj dzien urodzenia: ";
  107.     cin >> dzien;
  108.     cout << "Podaj miesiac urodzenia: ";
  109.     cin >> miesiac;
  110.     cout << "Podaj rok urodzenia: ";
  111.     cin >> rok_urodzenia;
  112.     cout << "Podaj numer PESEL: ";
  113.     cin >> nr_PESEL;
  114.     //tu wszystko będzie skopiowane z push_front
  115.  
  116.  
  117.     lista_systemu.push_front(plec[10]);
  118.     lista_systemu.push_front(imie[30]);
  119.     lista_systemu.push_front(nazwisko[30]);
  120.     lista_systemu.push_front(dzien);
  121.     lista_systemu.push_front(miesiac);
  122.     lista_systemu.push_front(rok_urodzenia);
  123.     lista_systemu.push_front(nr_PESEL);
  124. }
  125.  
  126. void pop_front()
  127. {
  128.    printf("Za chwile nastapi usuniecie osoby, ktora jest na poczatku listy...");
  129.    Sleep(3000);
  130.    lista_systemu.pop_front();
  131. }
  132.  
  133. void pop_back()
  134. {
  135.     printf("Za chwile nastapi usuniecie osoby, ktora jest na koncu listy...");
  136.     Sleep(3000);
  137.     lista_systemu.pop_back();
  138. }
  139.  
  140. void size()
  141. {
  142.     cout << "Na liscie jest: " << lista_systemu.size() << "osob.";
  143.     Sleep(3000);
  144. }
  145.  
  146. void max_size()
  147. {
  148.     cout << "Maksymalna ilosc osob, ktora mozna przechowac to: " << lista_systemu.max_size();
  149. }
  150.  
  151. void empty()
  152. {
  153.     cout << "Czy lista systemu jest pusta? Sprawdzmy... -------> ";
  154.     if(lista_systemu.empty()==1)
  155.     {
  156.         cout << "Lista w systemie jest pusta.";
  157.     }
  158.     else cout << "Lista w systemie nie jest pusta.";
  159.     Sleep(3000);
  160. }
  161.  
  162. void remove()
  163. {
  164.     int nr_PESEL ;
  165.     cout << "Usuwanie pozycji o tym samym PESELU: ";
  166.     cin >> nr_PESEL;
  167.     Sleep(3000);
  168. }
  169.  
  170. void sort()
  171. {
  172.     cout <<"Za chwile nastapi posortowanie listy wedlug identyfikatora: ";
  173.     lista_systemu.sort();
  174.     Sleep(3000);
  175. }
  176.  
  177. void reverse()
  178. {
  179.     cout <<"Za chwile nastapi posortowanie listy w odwrotnej kolejnosci: ";
  180.     lista_systemu.reverse();
  181.     Sleep(3000);
  182. }
  183.  
  184. void exit()
  185. {
  186.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
  187.     cout << "Za chwile nastapi zamkniecie programu! Zapraszamy ponownie.";
  188.     Sleep(3500);
  189.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0);
  190. }
  191.  
  192. int main()
  193. {
  194.  
  195. do
  196. {
  197.     Wyswietl_Dane();
  198.  
  199.     cout << "MENU GLOWNE LISTY SYSTEMU: " << endl;
  200.     cout << "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl;
  201.     cout << "1. push_front - dodawanie na poczatku listy" << endl;
  202.     cout << "2. push_back - dodawanie na koncu listy" << endl;
  203.     cout << "3. pop_front - usuwanie na poczatku listy" << endl;
  204.     cout << "4. pop_back - usuwanie na koncu listy" << endl;
  205.     cout << "5. size - sprawdzenie ilosci elementow na liscie" << endl;
  206.     cout << "6. max_size - sprawdzenie maksymalnej ilosci elementow na liscie" << endl;
  207.     cout << "7. empty - sprawdzenie, czy lista jest pusta" << endl;
  208.     cout << "8. remove - usuniecie osoby o takim samym numerze PESEL" << endl;
  209.     cout << "9. sort - sortowanie listy systemu rosnaco" << endl;
  210.     cout << "10. reverse - sortowanie listy w odwrotnej kolejnosci" << endl;
  211.     cout << "11. exit - wyjscie z programu" << endl;
  212.     cout << "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-" << endl;
  213.     cout << "Wybor funkcji: ";
  214.     cin >> funkcja;
  215.  
  216.         switch(funkcja)
  217.         {
  218.             case 1: push_front(); break;
  219.             case 2: push_back(); break;
  220.             case 3: pop_front(); break;
  221.             case 4: pop_back(); break;
  222.             case 5: size(); break;
  223.             case 6: max_size(); break;
  224.             case 7: empty(); break;
  225.             case 8: remove(); break;
  226.             case 9: sort(); break;
  227.             case 10: reverse(); break;
  228.             case 11: exit(); break;
  229.  
  230.         default:
  231.             cout << "Ups! Cos poszlo nie tak!";
  232.             Sleep(3000);
  233.             break;
  234.         }
  235.  
  236. }
  237. while(funkcja!=11);
  238.  
  239.     return 0;
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement