rooq37

JakiśProgramPoprawiony

Jan 8th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.81 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.  
  85.     do
  86.     {
  87.         plik >> tablica_osob[j].imie;
  88.         plik >> tablica_osob[j].nazwisko;
  89.         plik >> tablica_osob[j].ulica;
  90.         plik >> tablica_osob[j].numer;
  91.         plik >> tablica_osob[j].kod;
  92.         plik >> tablica_osob[j].miejscowosc;
  93.         plik >> tablica_osob[j].kraj;
  94.  
  95.         j++;
  96.     } while (!plik.eof());
  97. }
  98.  
  99. void Zapisz()
  100. {
  101.     ofstream plik("osoba.txt", ios::out | ios::trunc);
  102.  
  103.     plik << ile_razy_otwarty << "\n";
  104.     plik << ilosc_osob << "\n";
  105.  
  106.     for (short j = 0; j < ilosc_osob; j++)
  107.     {
  108.         plik << " " << endl;
  109.         plik << tablica_osob[j].imie << endl;
  110.         plik << tablica_osob[j].nazwisko << endl;
  111.         plik << tablica_osob[j].ulica << endl;
  112.         plik << tablica_osob[j].numer << endl;
  113.         plik << tablica_osob[j].kod << endl;
  114.         plik << tablica_osob[j].miejscowosc << endl;
  115.         plik << tablica_osob[j].kraj << endl;
  116.     }
  117.  
  118. }
  119. void Dodaj()
  120. {
  121.     cout << "Imie: \n";
  122.     cin >> tablica_osob[ilosc_osob].imie;
  123.  
  124.     cout << "Nazwisko: \n";
  125.     cin >> tablica_osob[ilosc_osob].nazwisko;
  126.  
  127.     cout << "Ulica: \n";
  128.     cin >> tablica_osob[ilosc_osob].ulica;
  129.  
  130.     cout << "Numer domu: \n";
  131.     cin >> tablica_osob[ilosc_osob].numer;
  132.  
  133.     cout << "Kod pocztowy: \n";
  134.     cin >> tablica_osob[ilosc_osob].kod;
  135.  
  136.     cout << "Miejscowosc: \n";
  137.     cin >> tablica_osob[ilosc_osob].miejscowosc;
  138.  
  139.     cout << "Kraj: \n";
  140.     cin >> tablica_osob[ilosc_osob].kraj;
  141.  
  142.     cin.ignore();
  143.  
  144.     ilosc_osob++;
  145.  
  146.     Zapisz();
  147.  
  148.     cout << "Dodano i zapisano" << endl;
  149.  
  150. }
  151. void Zobacz()
  152. {
  153.     if (ilosc_osob != 0) // i>0
  154.     {
  155.         for (short j = 0; j < ilosc_osob; j++) //kolejne zmienne
  156.         {
  157.             cout << " " << endl;
  158.             cout << " Osoba nr " << j + 1 << ": " << endl;
  159.             cout << " Imie: " << tablica_osob[j].imie << endl;
  160.             cout << " Nazwisko: " << tablica_osob[j].nazwisko << endl;
  161.             cout << " Ulica: " << tablica_osob[j].ulica << endl;
  162.             cout << " Numer domu: " << tablica_osob[j].numer << endl;
  163.             cout << " Kod pocztowy: " << tablica_osob[j].kod << endl;
  164.             cout << " Miejscowosc: " << tablica_osob[j].miejscowosc << endl;
  165.             cout << " Kraj: " << tablica_osob[j].kraj << endl;
  166.             cout << " " << endl;
  167.         }
  168.     }
  169.     else
  170.         cout << "Nie ma zadnych osob w bazie!";
  171. }
  172.  
  173. void Usun()
  174. {
  175.     short kogo;
  176.  
  177.     if (ilosc_osob != 0)
  178.     {
  179.         cout << "Podaj numer osoby ktora chcesz usunac: ";
  180.         cin >> kogo;
  181.         cin.ignore();
  182.  
  183.         if (kogo > ilosc_osob)
  184.  
  185.             cout << "Brak osoby o takim numerze";
  186.  
  187.         else
  188.         {
  189.             for (short k = kogo; k < ilosc_osob; k++)
  190.             {
  191.                 tablica_osob[k - 1].imie = tablica_osob[k].imie;
  192.                 tablica_osob[k - 1].nazwisko = tablica_osob[k].nazwisko;
  193.                 tablica_osob[k - 1].ulica = tablica_osob[k].ulica;
  194.                 tablica_osob[k - 1].numer = tablica_osob[k].numer;
  195.                 tablica_osob[k - 1].kod = tablica_osob[k].kod;
  196.                 tablica_osob[k - 1].miejscowosc = tablica_osob[k].miejscowosc;
  197.                 tablica_osob[k - 1].kraj = tablica_osob[k].kraj;
  198.             }
  199.             ilosc_osob--;
  200.  
  201.             cout << "Osoba o numerze " << kogo << " zostala usunieta!";
  202.             cout << "  " << endl;
  203.             Zapisz();
  204.         }
  205.  
  206.     }
  207.     else
  208.     {
  209.         cout << "Brak osoby w bazie!! Wcisnij ENTER!";
  210.     }
  211. }
  212.  
  213. void Edytuj()
  214. {
  215.     int kogo;
  216.  
  217.     if (ilosc_osob != 0)
  218.     {
  219.         cout << "Podaj numer osoby ktora chcesz edytowac: ";
  220.         cin >> kogo;
  221.         cin.ignore();
  222.  
  223.         if (kogo > ilosc_osob)
  224.             cout << "Brak osoby o takim numerze";
  225.         else
  226.         {
  227.             cout << " " << endl;
  228.             cout << "Podaj imie osoby: \n";
  229.             cin >> tablica_osob[kogo - 1].imie;
  230.             cout << "Podaj nazwisko osoby: \n";
  231.             cin >> tablica_osob[kogo - 1].nazwisko;
  232.             cout << "Podaj ulice: \n";
  233.             cin >> tablica_osob[kogo - 1].ulica;
  234.             cout << "Podaj numer domu: \n";
  235.             cin >> tablica_osob[kogo - 1].numer;
  236.             cout << "Podaj kod pocztowy: \n";
  237.             cin >> tablica_osob[kogo - 1].kod;
  238.             cout << "Podaj miejscowosc: \n";
  239.             cin >> tablica_osob[kogo - 1].miejscowosc;
  240.             cout << "Podaj kraj: \n";
  241.             cin >> tablica_osob[kogo - 1].kraj;
  242.  
  243.             cout << "Osoba o numerze " << kogo << " zostala zedytowana!";
  244.             cout << " " << endl;
  245.             Zapisz();
  246.         }
  247.  
  248.     }
  249.     else
  250.     {
  251.         cout << "Nie ma tej osoby w bazie!! Wcisnij ENTER!";
  252.     }
  253. }
  254.  
  255. void Sortuj()
  256. {
  257.     Wczytaj();
  258.     cout << " \n \n \n";
  259.     cout << "Wybierz kryterium sortowania" << endl;
  260.     cout << "61. Imie" << endl;
  261.     cout << "62. Nazwisko" << endl;
  262.     cout << "63. Ulica" << endl;
  263.     cout << "64. Numer domu" << endl;
  264.     cout << "65. Kod pocztowy" << endl;
  265.     cout << "66. Miejscowosc" << endl;
  266.     cout << "67. Kraj" << endl;
  267.  
  268.     int pytanie1;
  269.     cin >> pytanie1;
  270.         int a, b;
  271.         string string_a, string_b;
  272.         osoba t;
  273.         for (a = ilosc_osob - 2; a >= 0; a--)
  274.         {
  275.             for (b = 0; b <= a; b++)
  276.             {
  277.                 if (pytanie1 == 61) string_a = tablica_osob[b].imie, string_b = tablica_osob[b + 1].imie;
  278.                 else if (pytanie1 == 62) string_a = tablica_osob[b].nazwisko, string_b = tablica_osob[b + 1].nazwisko;
  279.                 else if (pytanie1 == 63) string_a = tablica_osob[b].ulica, string_b = tablica_osob[b + 1].ulica;
  280.                 else if (pytanie1 == 64) string_a = tablica_osob[b].numer, string_b = tablica_osob[b + 1].numer;
  281.                 else if (pytanie1 == 65) string_a = tablica_osob[b].kod, string_b = tablica_osob[b + 1].kod;
  282.                 else if (pytanie1 == 66) string_a = tablica_osob[b].miejscowosc, string_b = tablica_osob[b + 1].miejscowosc;
  283.                 else if (pytanie1 == 67) string_a = tablica_osob[b].kraj, string_b = tablica_osob[b + 1].kraj;
  284.                 if (string_a>string_b)
  285.                 {
  286.                     t = tablica_osob[b];
  287.                     tablica_osob[b] = tablica_osob[b + 1];
  288.                     tablica_osob[b + 1] = t;
  289.                 }
  290.             }
  291.         // sortowanie babelkowe
  292.  
  293.         Zapisz();
  294.     }
  295. }
Advertisement
Add Comment
Please, Sign In to add comment