Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.95 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include<fstream>
  4. #include<sstream>
  5. #include<vector>
  6. #include <conio.h>
  7.  
  8. using namespace std;
  9. int opcja, opcja2;
  10.  
  11. class osoba
  12. {
  13. private:
  14. public:
  15.     string imie, nazwisko , status;
  16.     int pesel;
  17.     //int wiek;
  18.     //int obecnosc;
  19.     osoba()
  20.     {};
  21. };
  22. class student : public osoba
  23. {
  24. public:
  25.     student(int i)
  26.     {
  27.         status = "student";//wywołać konstruktor
  28.         pesel = 0;
  29.         cout << "podaj imie" << endl;
  30.         cin >> imie >> nazwisko;
  31.     };
  32.     student() {};
  33. };
  34. class nauczyciel : public osoba
  35. {
  36.  
  37. };
  38. vector <student> studenci;
  39. vector <osoba> osoby;
  40. vector <nauczyciel> nauczyciele;
  41.  
  42. void menu()
  43. {
  44.     system("cls");
  45.     cout << "--------DZIENNIK--------" << endl;
  46.     cout << "------------------------" << endl;
  47.     cout << "1. Dodaj osobe" << endl;
  48.     cout << "2. Wyswietl liste osob" << endl;
  49.     cout << "3. Sortuj studentow" << endl;
  50.     cout << "4. Sortuj nauczycieli" << endl;
  51.     cout << "5. Sortuj osoby" << endl;
  52.     cout << "6. Sortuj po peselu" << endl;
  53.     cout << "ESC - Wyjscie" << endl;
  54.  
  55.     opcja = _getch();
  56. }
  57. void submenu1()
  58. {
  59.     system("cls");
  60.     cout << "sortuj studentow po:" << endl;
  61.     cout << "1. Sortuj po imieniu" << endl;
  62.     cout << "2. Sortuj po nazwisku" << endl;
  63.  
  64.     cout << "ESC - cofnij" << endl;
  65.  
  66.     opcja2 = _getch();
  67. }
  68.  
  69. osoba *sortuj_pesel(vector <osoba> tab, int indeks_dolny, int indeks_gorny) {  //sortowanie po indeksie studenta
  70.     int srodek = (indeks_dolny + indeks_gorny) / 2;
  71.     osoba piwot;
  72.     piwot = tab[indeks_gorny];
  73.     swap(piwot, tab[srodek]);
  74.     int j = indeks_dolny;
  75.     osoba zm;
  76.     for (int i = indeks_dolny; i < indeks_gorny; i++)
  77.     {
  78.         zm = tab[i];
  79.         if (zm.pesel < piwot.pesel)  // indeks studenta
  80.         {
  81.             swap(tab[i], tab[j]);
  82.             j++;
  83.         }
  84.     }
  85.     tab[indeks_gorny] = tab[j];
  86.     tab[j] = piwot;
  87.     if (indeks_dolny < j - 1)
  88.     {
  89.         sortuj_pesel(tab, indeks_dolny, j - 1);
  90.     }
  91.     if (j + 1 < indeks_gorny)
  92.     {
  93.         sortuj_pesel(tab, j + 1, indeks_gorny);
  94.     }
  95.     osoba *tabstudentow = new osoba[indeks_gorny]; //studenci?
  96.     for (int i = 0; i < indeks_gorny - 1; i++)
  97.     {
  98.         tabstudentow[i] = tab[i];
  99.     }
  100.     return tabstudentow;
  101. }
  102. student *sortuj_pesel(vector <student> tab, int indeks_dolny, int indeks_gorny) {  //sortowanie po indeksie studenta
  103.     int srodek = (indeks_dolny + indeks_gorny) / 2;
  104.     student piwot = tab[indeks_gorny];
  105.     swap(piwot, tab[srodek]);
  106.     int j = indeks_dolny;
  107.     student zm = tab[indeks_dolny];
  108.     for (int i = indeks_dolny; i < indeks_gorny; i++)
  109.     {
  110.         zm = tab[i];
  111.         if (zm.pesel < piwot.pesel)  // indeks studenta
  112.         {
  113.             swap(tab[i], tab[j]);
  114.             j++;
  115.         }
  116.     }
  117.     tab[indeks_gorny] = tab[j];
  118.     tab[j] = piwot;
  119.     if (indeks_dolny < j - 1)
  120.     {
  121.         sortuj_pesel(tab, indeks_dolny, j - 1);
  122.     }
  123.     if (j + 1 < indeks_gorny)
  124.     {
  125.         sortuj_pesel(tab, j + 1, indeks_gorny);
  126.     }
  127.     student *tabstudentow = new student[indeks_gorny]; //studenci?
  128.     for (int i = 0; i < indeks_gorny - 1; i++)
  129.     {
  130.         tabstudentow[i] = tab[i];
  131.     }
  132.     return tabstudentow;
  133. }
  134. nauczyciel *sortuj_pesel(vector <nauczyciel> tab, int indeks_dolny, int indeks_gorny) {  //sortowanie po indeksie studenta
  135.     int srodek = (indeks_dolny + indeks_gorny) / 2;
  136.     nauczyciel piwot = tab[indeks_gorny];
  137.     swap(piwot, tab[srodek]);
  138.     int j = indeks_dolny;
  139.     nauczyciel zm= tab[indeks_dolny];
  140.     for (int i = indeks_dolny; i < indeks_gorny; i++)
  141.     {
  142.         zm = tab[i];
  143.         if (zm.pesel < piwot.pesel)  // indeks studenta
  144.         {
  145.             swap(tab[i], tab[j]);
  146.             j++;
  147.         }
  148.     }
  149.     tab[indeks_gorny] = tab[j];
  150.     tab[j] = piwot;
  151.     if (indeks_dolny < j - 1)
  152.     {
  153.         sortuj_pesel(tab, indeks_dolny, j - 1);
  154.     }
  155.     if (j + 1 < indeks_gorny)
  156.     {
  157.         sortuj_pesel(tab, j + 1, indeks_gorny);
  158.     }
  159.     nauczyciel *tabstudentow = new nauczyciel[indeks_gorny]; //nauczyciele
  160.     for (int i = 0; i < indeks_gorny - 1; i++)
  161.     {
  162.         tabstudentow[i] = tab[i];
  163.     }
  164.     return tabstudentow;
  165. }
  166.  
  167. student *sortuj_imie(vector <student> tab, int indeks_dolny, int indeks_gorny) {  //sortowanie po indeksie studenta
  168.     int srodek = (indeks_dolny + indeks_gorny) / 2;
  169.     student piwot = tab[indeks_gorny];
  170.     swap(piwot, tab[srodek]);
  171.     int j = indeks_dolny;
  172.     student zm = tab[indeks_dolny];
  173.     for (int i = indeks_dolny; i < indeks_gorny; i++)
  174.     {
  175.         zm = tab[i];
  176.         if (zm.imie < piwot.imie)  // indeks studenta
  177.         {
  178.             swap(tab[i], tab[j]);
  179.             j++;
  180.         }
  181.     }
  182.     tab[indeks_gorny] = tab[j];
  183.     tab[j] = piwot;
  184.     if (indeks_dolny < j - 1)
  185.     {
  186.         sortuj_imie(tab, indeks_dolny, j - 1);
  187.     }
  188.     if (j + 1 < indeks_gorny)
  189.     {
  190.         sortuj_imie(tab, j + 1, indeks_gorny);
  191.     }
  192.     student *tabstudentow = new student[indeks_gorny]; //studenci?
  193.     for (int i = 0; i < tab.size(); i++)
  194.     {
  195.         tabstudentow[i] = tab[i];
  196.    
  197.     }
  198.     /*
  199.     for (int i = 0; i < tab.size(); i++)  //posortowanie tablicy z wskaznika
  200.     {
  201.  
  202.         cout << tab[i].imie << tab[i].nazwisko << endl;
  203.     }*/
  204.    
  205.     return tabstudentow;
  206.    
  207. }
  208.  
  209. student *wsk_studtab_sort;
  210. osoba *wsk_osobatab_sort;
  211. nauczyciel *wsk_naucztab_sort;
  212.  
  213. student zmnienna ;
  214. int main() {
  215.     int opcja1, wielkosc;
  216.     while (1)
  217.     {
  218.         menu();
  219.         switch (opcja)
  220.         {
  221.         case 27:
  222.             exit(0);
  223.             break;
  224.        
  225.            
  226.         case 49: //dodaj osobe
  227.            
  228.                 zmnienna = student(0);
  229.                 studenci.push_back(zmnienna);
  230.  
  231.                 osoby.push_back(studenci[studenci.size() - 1]);
  232.             break;
  233.         case 50: //wyswietl liste
  234.             wielkosc = studenci.size();
  235.             for (int i = 0; i < wielkosc; i++)  //posortowanie tablicy z wskaznika
  236.             {
  237.  
  238.                 cout << studenci[i].imie << studenci[i].nazwisko  << endl;
  239.             }
  240.             system("pause");
  241.             break;
  242.  
  243.         case 51: //sortuj studentow
  244.             submenu1();
  245.             switch (opcja2) {
  246.             case 49: {//po imieniu
  247.                 wielkosc = studenci.size();
  248.                 //sortuj_imie(studenci, 0, wielkosc - 1);
  249.  
  250.                 student *tab1 = new student[studenci.size()];
  251.                 for (int i = 0; i < studenci.size(); i++) {
  252.                     tab1[i] = studenci[i];
  253.                 }
  254.  
  255.                 /*
  256.                 for (int i = 0; i < studenci.size(); i++)  //posortowanie tablicy z wskaznika
  257.                 {
  258.  
  259.                     cout << studenci[i].imie << studenci[i].nazwisko << endl;
  260.                 }*/
  261.  
  262.                 wsk_studtab_sort = sortuj_imie(studenci, 0, wielkosc - 1);  //przypisanie wskaznikowi posortowanej tablicy
  263.                 for (int i = 0; i < wielkosc ; i++)  //posortowanie tablicy z wskaznika
  264.                 {
  265.  
  266.                     cout << wsk_studtab_sort->imie[i] << wsk_studtab_sort->nazwisko[i] << endl;
  267.                 }
  268.                 system("pause");
  269.                 }break;
  270.             case 50: //po nazwisku
  271.                 wielkosc = studenci.size();
  272.                 //wsk_studtab_sort = sortuj_imie(studenci, 0, wielkosc - 1);  //przypisanie wskaznikowi posortowanej tablicy
  273.                 for (int i = 0; i < wielkosc; i++)  //posortowanie tablicy z wskaznika
  274.                 {
  275.  
  276.                     cout << wsk_studtab_sort->imie[i] << wsk_studtab_sort->nazwisko[i] << wsk_studtab_sort->status[i] << endl;
  277.                 }
  278.                 break;
  279.  
  280.             case 27:
  281.                 exit(0);
  282.                 break;
  283.             }
  284.            
  285.             break;
  286.         }
  287.            
  288.     }
  289.     while (0)
  290.     {
  291.         student zmnienna = student();
  292.         studenci.push_back(zmnienna);
  293.  
  294.         //osoby.push_back = studenci[studenci.size];
  295.  
  296.         cout << "czy chcesz dodac koljnego studenta [t/n]" << endl;
  297.         //opcja = _getch();
  298.         //if (opcja = 110) {
  299.         //  break; //wyjscie z while
  300.         //}
  301.     }
  302.  
  303.  
  304.    
  305.     osoba tab11[1];
  306.     student tab1[1];
  307.     tab11[0] = tab1[0];
  308.     system("pause");
  309.     return 0;
  310.  
  311. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement