rooq37

Poprawione

Jan 8th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.32 KB | None | 0 0
  1. //#include "stdafx.h"
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <string>
  5. #include <fstream>
  6. #include <time.h>
  7. #include <cstdlib>
  8.  
  9. using namespace std;
  10.  
  11. struct osoba
  12. {
  13.     string imie, nazwisko, ulica, numer, kod, miejscowosc, kraj;
  14. };
  15.  
  16. short ilosc_osob; // zmienna ilosci osob
  17. short ile_razy_otwarty; // zmienna ilosci otwarc programu
  18. osoba tablica_osob[100]; //tablica struktur
  19.  
  20. void Dodaj();
  21. void Zobacz();
  22. void Zapisz();
  23. void Wczytaj();
  24. void Usun();
  25. void Edytuj();
  26. void Sortuj();
  27.  
  28. int main()
  29. {
  30.     cout << " BAZA DANYCH" << endl;
  31.     cout << "\n\n\n";
  32.  
  33.     char wybor;
  34.  
  35.     Wczytaj();
  36.  
  37.     ile_razy_otwarty++;
  38.     cout << "Program otwarto " << ile_razy_otwarty << " raz" << endl;
  39.  
  40.     do
  41.     {
  42.         cout << "\n\n\n";
  43.         cout << "Osob w bazie: " << ilosc_osob << endl;
  44.         cout << "\n\n";
  45.         cout << "Wybierz co chesz zrobic:" << endl;
  46.         cout << "1. Dodaj osobe " << endl;
  47.         cout << "2. Zobacz wszystkie osoby " << endl;
  48.         cout << "3. Usun osobe " << endl;
  49.         cout << "4. Edytuj osobe " << endl;
  50.         cout << "5. Sortuj dane " << endl;
  51.         cout << "ESC koniec dzialania programu" << endl;
  52.  
  53.         wybor = _getch();
  54.  
  55.         switch (wybor)
  56.         {
  57.         case 49: Dodaj();
  58.             break;
  59.         case 50: Zobacz();
  60.             break;
  61.         case 51: Usun();
  62.             break;
  63.         case 52: Edytuj();
  64.             break;
  65.         case 53: Sortuj();
  66.             break;
  67.         }
  68.     } while (wybor != 27);
  69.  
  70.     Zapisz();
  71.  
  72.     return 0;
  73.     // system("pause");
  74. } // koniec main
  75.  
  76. void Wczytaj()
  77. {
  78.     ifstream plik("osoba.txt", ios::in);
  79.  
  80.     plik >> ile_razy_otwarty;
  81.     plik >> ilosc_osob;
  82.  
  83.     short j = 0;
  84.     string temp;
  85.  
  86.     do
  87.     {
  88.         getline(plik, temp);
  89.         while (temp == " " || temp == "" && !plik.eof()) {
  90.             getline(plik, temp);
  91.         }
  92.         tablica_osob[j].imie = temp;
  93.         getline(plik, tablica_osob[j].nazwisko);
  94.         getline(plik, tablica_osob[j].ulica);
  95.         getline(plik, tablica_osob[j].numer);
  96.         getline(plik, tablica_osob[j].kod);
  97.         getline(plik, tablica_osob[j].miejscowosc);
  98.         getline(plik, tablica_osob[j].kraj);
  99.        
  100.         j++;
  101.     } while (!plik.eof());
  102. }
  103.  
  104. void Zapisz()
  105. {
  106.     ofstream plik("osoba.txt", ios::out | ios::trunc);
  107.  
  108.     plik << ile_razy_otwarty << "\n";
  109.     plik << ilosc_osob << "\n";
  110.  
  111.     for (short j = 0; j < ilosc_osob; j++)
  112.     {
  113.         plik << " " << endl;
  114.         plik << tablica_osob[j].imie << endl;
  115.         plik << tablica_osob[j].nazwisko << endl;
  116.         plik << tablica_osob[j].ulica << endl;
  117.         plik << tablica_osob[j].numer << endl;
  118.         plik << tablica_osob[j].kod << endl;
  119.         plik << tablica_osob[j].miejscowosc << endl;
  120.         plik << tablica_osob[j].kraj << endl;
  121.     }
  122.  
  123. }
  124. void Dodaj()
  125. {
  126.     cout << "Imie: \n";
  127.     //cin >> tablica_osob[ilosc_osob].imie;
  128.     getline(cin, tablica_osob[ilosc_osob].imie);
  129.  
  130.     cout << "Nazwisko: \n";
  131.     //cin >> tablica_osob[ilosc_osob].nazwisko;
  132.     getline(cin, tablica_osob[ilosc_osob].nazwisko);
  133.  
  134.     cout << "Ulica: \n";
  135.     //cin >> tablica_osob[ilosc_osob].ulica;
  136.     getline(cin, tablica_osob[ilosc_osob].ulica);
  137.  
  138.     cout << "Numer domu: \n";
  139.     //cin >> tablica_osob[ilosc_osob].numer;
  140.     getline(cin, tablica_osob[ilosc_osob].numer);
  141.  
  142.     cout << "Kod pocztowy: \n";
  143.     //cin >> tablica_osob[ilosc_osob].kod;
  144.     getline(cin, tablica_osob[ilosc_osob].kod);
  145.  
  146.     cout << "Miejscowosc: \n";
  147.     //cin >> tablica_osob[ilosc_osob].miejscowosc;
  148.     getline(cin, tablica_osob[ilosc_osob].miejscowosc);
  149.  
  150.     cout << "Kraj: \n";
  151.     //cin >> tablica_osob[ilosc_osob].kraj;
  152.     getline(cin, tablica_osob[ilosc_osob].kraj);
  153.  
  154.     cin.ignore();
  155.  
  156.     ilosc_osob++;
  157.  
  158.     Zapisz();
  159.  
  160.     cout << "Dodano i zapisano" << endl;
  161.  
  162. }
  163. void Zobacz()
  164. {
  165.     if (ilosc_osob != 0) // i>0
  166.     {
  167.         for (short j = 0; j < ilosc_osob; j++) //kolejne zmienne
  168.         {
  169.             cout << " " << endl;
  170.             cout << " Osoba nr " << j + 1 << ": " << endl;
  171.             cout << " Imie: " << tablica_osob[j].imie << endl;
  172.             cout << " Nazwisko: " << tablica_osob[j].nazwisko << endl;
  173.             cout << " Ulica: " << tablica_osob[j].ulica << endl;
  174.             cout << " Numer domu: " << tablica_osob[j].numer << endl;
  175.             cout << " Kod pocztowy: " << tablica_osob[j].kod << endl;
  176.             cout << " Miejscowosc: " << tablica_osob[j].miejscowosc << endl;
  177.             cout << " Kraj: " << tablica_osob[j].kraj << endl;
  178.             cout << " " << endl;
  179.         }
  180.     }
  181.     else
  182.         cout << "Nie ma zadnych osob w bazie!";
  183. }
  184.  
  185. void Usun()
  186. {
  187.     short kogo;
  188.  
  189.     if (ilosc_osob != 0)
  190.     {
  191.         cout << "Podaj numer osoby ktora chcesz usunac: ";
  192.         cin >> kogo;
  193.         cin.ignore();
  194.  
  195.         if (kogo > ilosc_osob)
  196.  
  197.             cout << "Brak osoby o takim numerze";
  198.  
  199.         else
  200.         {
  201.             for (short k = kogo; k < ilosc_osob; k++)
  202.             {
  203.                 tablica_osob[k - 1].imie = tablica_osob[k].imie;
  204.                 tablica_osob[k - 1].nazwisko = tablica_osob[k].nazwisko;
  205.                 tablica_osob[k - 1].ulica = tablica_osob[k].ulica;
  206.                 tablica_osob[k - 1].numer = tablica_osob[k].numer;
  207.                 tablica_osob[k - 1].kod = tablica_osob[k].kod;
  208.                 tablica_osob[k - 1].miejscowosc = tablica_osob[k].miejscowosc;
  209.                 tablica_osob[k - 1].kraj = tablica_osob[k].kraj;
  210.             }
  211.             ilosc_osob--;
  212.  
  213.             cout << "Osoba o numerze " << kogo << " zostala usunieta!";
  214.             cout << "  " << endl;
  215.             Zapisz();
  216.         }
  217.  
  218.     }
  219.     else
  220.     {
  221.         cout << "Brak osoby w bazie!! Wcisnij ENTER!";
  222.     }
  223. }
  224.  
  225. void Edytuj()
  226. {
  227.     int kogo;
  228.  
  229.     if (ilosc_osob != 0)
  230.     {
  231.         cout << "Podaj numer osoby ktora chcesz edytowac: ";
  232.         cin >> kogo;
  233.         cin.ignore();
  234.  
  235.         if (kogo > ilosc_osob)
  236.             cout << "Brak osoby o takim numerze";
  237.         else
  238.         {
  239.             cout << " " << endl;
  240.             cout << "Podaj imie osoby: \n";
  241.             cin >> tablica_osob[kogo - 1].imie;
  242.             cout << "Podaj nazwisko osoby: \n";
  243.             cin >> tablica_osob[kogo - 1].nazwisko;
  244.             cout << "Podaj ulice: \n";
  245.             cin >> tablica_osob[kogo - 1].ulica;
  246.             cout << "Podaj numer domu: \n";
  247.             cin >> tablica_osob[kogo - 1].numer;
  248.             cout << "Podaj kod pocztowy: \n";
  249.             cin >> tablica_osob[kogo - 1].kod;
  250.             cout << "Podaj miejscowosc: \n";
  251.             cin >> tablica_osob[kogo - 1].miejscowosc;
  252.             cout << "Podaj kraj: \n";
  253.             cin >> tablica_osob[kogo - 1].kraj;
  254.  
  255.             cout << "Osoba o numerze " << kogo << " zostala zedytowana!";
  256.             cout << " " << endl;
  257.             Zapisz();
  258.         }
  259.  
  260.     }
  261.     else
  262.     {
  263.         cout << "Nie ma tej osoby w bazie!! Wcisnij ENTER!";
  264.     }
  265. }
  266.  
  267. void Sortuj()
  268. {
  269.     Wczytaj();
  270.     cout << " \n \n \n";
  271.     cout << "Wybierz kryterium sortowania" << endl;
  272.     cout << "61. Imie" << endl;
  273.     cout << "62. Nazwisko" << endl;
  274.     cout << "63. Ulica" << endl;
  275.     cout << "64. Numer domu" << endl;
  276.     cout << "65. Kod pocztowy" << endl;
  277.     cout << "66. Miejscowosc" << endl;
  278.     cout << "67. Kraj" << endl;
  279.  
  280.     int pytanie1;
  281.     cin >> pytanie1;
  282.         int a, b;
  283.         string string_a, string_b;
  284.         osoba t;
  285.         for (a = ilosc_osob - 2; a >= 0; a--)
  286.         {
  287.             for (b = 0; b <= a; b++)
  288.             {
  289.                 if (pytanie1 == 61) string_a = tablica_osob[b].imie, string_b = tablica_osob[b + 1].imie;
  290.                 else if (pytanie1 == 62) string_a = tablica_osob[b].nazwisko, string_b = tablica_osob[b + 1].nazwisko;
  291.                 else if (pytanie1 == 63) string_a = tablica_osob[b].ulica, string_b = tablica_osob[b + 1].ulica;
  292.                 else if (pytanie1 == 64) string_a = tablica_osob[b].numer, string_b = tablica_osob[b + 1].numer;
  293.                 else if (pytanie1 == 65) string_a = tablica_osob[b].kod, string_b = tablica_osob[b + 1].kod;
  294.                 else if (pytanie1 == 66) string_a = tablica_osob[b].miejscowosc, string_b = tablica_osob[b + 1].miejscowosc;
  295.                 else if (pytanie1 == 67) string_a = tablica_osob[b].kraj, string_b = tablica_osob[b + 1].kraj;
  296.                 if (string_a>string_b)
  297.                 {
  298.                     t = tablica_osob[b];
  299.                     tablica_osob[b] = tablica_osob[b + 1];
  300.                     tablica_osob[b + 1] = t;
  301.                 }
  302.             }
  303.         // sortowanie babelkowe
  304.  
  305.         Zapisz();
  306.     }
  307. }
Advertisement
Add Comment
Please, Sign In to add comment