Facebook
From Soiled Macaque, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 60
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <string>
  4. #include <fstream>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9. enum class Umaszczenie
  10. {
  11.     brazowy, czarny, bialy, niebieski
  12. };
  13.  
  14. void wypisz(Umaszczenie ob)
  15. {
  16.     switch(ob)
  17.     {
  18.     case Umaszczenie::bialy:
  19.         cout << "bialy\n";
  20.         break;
  21.     case Umaszczenie::brazowy:
  22.         cout << "brazowy\n";
  23.         break;
  24.     case Umaszczenie::czarny:
  25.         cout << "czarny\n";
  26.         break;
  27.     case Umaszczenie::niebieski:
  28.         cout << "niebieski\n";
  29.     }
  30. }
  31.  
  32. void zapisz_do_pliku(Umaszczenie ob, ofstream& plik)
  33. {
  34.     switch(ob)
  35.     {
  36.     case Umaszczenie::bialy:
  37.         plik << "bialy\n";
  38.         break;
  39.     case Umaszczenie::brazowy:
  40.         plik << "brazowy\n";
  41.         break;
  42.     case Umaszczenie::czarny:
  43.         plik << "czarny\n";
  44.         break;
  45.     case Umaszczenie::niebieski:
  46.         plik << "niebieski\n";
  47.     }
  48. }
  49.  
  50. struct zwierze
  51. {
  52.     char gatunek[256];
  53.     char rasa[256];
  54.     int plec;
  55.     Umaszczenie umaszczenie;
  56.     int liczbasztuk;
  57.     double cenajednostkowa;
  58.     string datadostawy;
  59.     char uwagi[1000];
  60. };
  61.  
  62. vector<zwierze> baza;
  63.  
  64. void Dodaj();
  65. void Zobacz();
  66. void Zapisz();
  67. void Wczytaj();
  68. void Usun();
  69. void Edytuj();
  70. void ZmienDateDostawy();
  71. void Wyszukaj();
  72.  
  73. int main()
  74. {
  75.  
  76.     char wybor;
  77.  
  78.     do
  79.     {
  80.         cout << "W sklepie zoologicznym jest " << baza.size() << " zwierzat" << endl;
  81.         cout << "1. Dodaj zwierze " << endl;
  82.         cout << "2. Zobacz wszystkie zwierzeta " << endl;
  83.         cout << "3. Zapisz wprowadzone zmiany " << endl;
  84.         cout << "4. Wczytaj dane zwierzat " << endl;
  85.         cout << "5. Usun dane zwierzecia " << endl;
  86.         cout << "6. Edytuj dane " << endl;
  87.         cout << "7. Zmien date dostawy" << endl;
  88.         cout << "8. Wyszukaj zwierze" << endl;
  89.  
  90.         cout << "ESC - Koniec programu " << endl << endl;
  91.  
  92.         wybor = _getch();
  93.  
  94.         switch (wybor)
  95.         {
  96.         case 49:
  97.             Dodaj();
  98.             break;
  99.         case 50:
  100.             Zobacz();
  101.             break;
  102.         case 51:
  103.             Zapisz();
  104.             break;
  105.         case 52:
  106.             Wczytaj();
  107.             break;
  108.         case 53:
  109.             Usun();
  110.             break;
  111.         case 54:
  112.             Edytuj();
  113.             break;
  114.         case 55:
  115.             ZmienDateDostawy();
  116.             break;
  117.         case 56:
  118.             Wyszukaj();
  119.             break;
  120.  
  121.         }
  122.  
  123.         system("cls");
  124.     }
  125.     while (wybor != 27);
  126.  
  127.  
  128.  
  129.     system("pause");
  130. }
  131.  
  132. void Dodaj()
  133. {
  134.  
  135.     zwierze nowe;
  136.     cout << "Podaj gatunek: n";
  137.     cin >> nowe.gatunek;
  138.  
  139.     cout << "Podaj rase: n";
  140.     cin >> nowe.rasa;
  141.  
  142.     cout << "Podaj plec: n";
  143.     cin >> nowe.plec;
  144.  
  145.     cout << "Podaj umaszczenie: (B - brazowy, A - bialy, C - czarny, N - niebieski) n";
  146.     char komenda;
  147.     do
  148.     {
  149.         komenda = _getch();
  150.         komenda = toupper(komenda);
  151.     }
  152.     while (komenda != 'B' && komenda != 'C' && komenda != 'A' && komenda != 'N' );
  153.     switch (komenda)
  154.     {
  155.     case 'B':
  156.         nowe.umaszczenie = Umaszczenie::brazowy;
  157.         break;
  158.     case 'C':
  159.         nowe.umaszczenie = Umaszczenie::czarny;
  160.         break;
  161.     case 'A':
  162.         nowe.umaszczenie = Umaszczenie::bialy;
  163.         break;
  164.     case 'N':
  165.         nowe.umaszczenie = Umaszczenie::niebieski;
  166.         break;
  167.     }
  168.  
  169.     cout << "Podaj liczbe sztuk: n";
  170.     cin >> nowe.liczbasztuk;
  171.  
  172.     cout << "Podaj cene jednostkowa: n";
  173.     cin >> nowe.cenajednostkowa;
  174.  
  175.     cout << "Podaj date dostawy: n";
  176.     cin >> nowe.datadostawy;
  177.  
  178.     cout << "Podaj uwagi: n";
  179.     cin >> nowe.uwagi;
  180.     baza.push_back(nowe);
  181.  
  182.     cin.ignore();
  183.     cout << "Wcisnij ENTER";
  184.     getchar();
  185. }
  186.  
  187. void Zobacz()
  188. {
  189.     if (baza.size() != 0)
  190.     {
  191.         for (short j = 0; j < baza.size(); j++)
  192.         {
  193.  
  194.             cout << "nNr zwierzecia " << j + 1 << ": " << endl;
  195.             cout << "Gatunek: " << baza[j].gatunek << endl;
  196.             cout << "Rasa: " << baza[j].rasa << endl;
  197.             cout << "Plec: " << baza[j].plec << endl;
  198.             wypisz(baza[j].umaszczenie);
  199.             cout << "Liczba sztuk: " << baza[j].liczbasztuk << endl;
  200.             cout << "Cena Jednostkowa: " << baza[j].cenajednostkowa << endl;
  201.             cout << "Przewidywana data dostawy: " << baza[j].datadostawy << endl;
  202.             cout << "Uwagi: " << baza[j].uwagi << endl;
  203.         }
  204.     }
  205.     else
  206.         cout << "Brak zwierzat";
  207.  
  208.     cout << "Nacisnij ENTER";
  209.  
  210.     getchar();
  211. }
  212.  
  213. void Zapisz()
  214. {
  215.     ofstream plik("sklepzoo.txt", ios::out | ios::trunc); //poprzednia zawartosc zostaje usunieta
  216.  
  217.     //plik << baza.size() << "n";
  218.  
  219.     for (short j = 0; j < baza.size(); j++)
  220.     {
  221.  
  222.  
  223.         plik << baza[j].gatunek << endl;
  224.         plik << baza[j].rasa << endl;
  225.         plik << baza[j].plec << endl;
  226.         zapisz_do_pliku(baza[j].umaszczenie, plik);
  227.         plik << baza[j].liczbasztuk << endl;
  228.         plik << baza[j].cenajednostkowa << endl;
  229.         plik << baza[j].datadostawy << endl;
  230.         plik << baza[j].uwagi << endl;
  231.     }
  232.  
  233.     cout << "Wcisnij ENTER";
  234.  
  235.     getchar();
  236. }
  237.  
  238. void Wczytaj()
  239. {
  240.     ifstream plik("sklepzoo.txt", ios::in);
  241.  
  242.     short j = 0;
  243.  
  244.     do
  245.     {
  246.         plik >> baza[j].gatunek;
  247.         plik >> baza[j].rasa;
  248.         plik >> baza[j].plec;
  249.         plik >> baza[j].umaszczenie;
  250.         plik >> baza[j].liczbasztuk;
  251.         plik >> baza[j].cenajednostkowa;
  252.         plik >> baza[j].datadostawy;
  253.         plik >> baza[j].uwagi;
  254.         j++;
  255.     }
  256.     while (!plik.eof());
  257.  
  258.     cout << "Nacisnij ENTER!";
  259.  
  260.     getchar();
  261. }
  262.  
  263. void Usun()
  264. {
  265.     short obiekt;
  266.  
  267.     if (baza.size() != 0)
  268.     {
  269.         cout << "Podaj numer zwierzecia ktore chcesz usunac: ";
  270.         cin >> obiekt;
  271.         cin.ignore();
  272.  
  273.         if (obiekt > baza.size())
  274.             cout << "Error";
  275.         else
  276.         {
  277.             baza.erase(baza.begin() + obiekt);      // usuniÄ™cie elementu
  278.  
  279.             cout << "Zwierze o numerze " << obiekt << " zostalo usuniete";
  280.             Zapisz();
  281.         }
  282.  
  283.     }
  284.     else
  285.     {
  286.         cout << "Error";
  287.         getchar();
  288.     }
  289. }
  290.  
  291. void Edytuj()
  292. {
  293.     int obiekt;
  294.  
  295.     if (baza.size() != 0)
  296.     {
  297.         cout << "Podaj numer zwierzecia ktore chcesz zmienic: ";
  298.         cin >> obiekt;
  299.         cin.ignore();
  300.  
  301.         if (obiekt > baza.size())
  302.             cout << "Error";
  303.         else
  304.         {
  305.             //jest -1 bo zakladam ze numeracja zwierzat jest taka jak w wypisaniu. Natiomiast
  306.             // tablica zaczyna sie od zera.
  307.             cout << "Podaj gatunek: n";
  308.             cin >> baza[obiekt - 1].gatunek;                               //jest -1 bo zakladam ze numeracja zwierzat jest taka jak w wypisaniu. Natiomiast
  309.             // tablica zaczyna sie od zera.
  310.             cout << "Podaj rase: n";;
  311.             cin >> baza[obiekt - 1].rasa;
  312.  
  313.             cout << "Podaj plec: n";
  314.             cin >> baza[obiekt - 1].plec;
  315.  
  316.             cout << "Podaj umaszczenie: n";
  317.             cin >> baza[obiekt - 1].umaszczenie;
  318.  
  319.             cout << "Podaj liczbe sztuk: n";
  320.             cin >> baza[obiekt - 1].liczbasztuk;
  321.  
  322.             cout << "Podaj cene jednostkowa: n";
  323.             cin >> baza[obiekt - 1].cenajednostkowa;
  324.  
  325.             cout << "Podaj przewidywana date dostawy: n";
  326.             cin >> baza[obiekt - 1].datadostawy;
  327.  
  328.             cout << "Podaj uwagi: n";
  329.             cin >> baza[obiekt - 1].uwagi;
  330.  
  331.  
  332.  
  333.             cout << "Sukces";
  334.             Zapisz();
  335.         }
  336.  
  337.     }
  338.     else
  339.     {
  340.         cout << "Error";
  341.         getchar();
  342.     }
  343. }
  344.  
  345. void ZmienDateDostawy()
  346. {
  347.     int obiekt;
  348.  
  349.     if (baza.size() != 0)
  350.     {
  351.         cout << "Podaj numer zwierzecia ktorego date dostawy chcesz zmienic: ";
  352.         cin >> obiekt;
  353.         cin.ignore();
  354.  
  355.         if (obiekt > baza.size())
  356.             cout << "Error";
  357.         else
  358.         {
  359.             cout << "Podaj przewidywana date dostawy: n";
  360.             cin >> baza[obiekt - 1].datadostawy;
  361.  
  362.             cout << "Sukces";
  363.             Zapisz();
  364.         }
  365.     }
  366. }
  367.  
  368. void Wyszukaj()
  369. {
  370.     string g;
  371.     int nr;
  372.     int plec;
  373.     vector<int> wyszukane;
  374.  
  375.     cout << "Napisz czy chcesz wyszukiwac po gatunku (G), rasie (R) czy plci (P): ";
  376.     char znak;
  377.     do
  378.     {
  379.         znak = _getch();
  380.         znak = toupper(znak);
  381.     }
  382.     while (znak != 'G' && znak != 'R' && znak != 'P');
  383.     cout << znak << endl;
  384.     switch (znak)
  385.     {
  386.     case 'G':
  387.         cout << "Wyszukiwanie po gatunkun";
  388.         cout << "Podaj gatunek zwierzecian";
  389.         cin >> g;
  390.         cin.ignore();
  391.  
  392.         for (int j = 0; j <= baza.size(); j++)
  393.         {
  394.             if (g == baza[j].gatunek)
  395.                 wyszukane.push_back(j + 1);
  396.         }
  397.         cout << "Podany gatunek zwierzecia znaloziono na pozycji nr: ";
  398.         for (int j = 0; j < wyszukane.size(); ++j)
  399.             cout << wyszukane[j] << 't';
  400.         cout << endl;
  401.         cin.ignore();
  402.         break;
  403.  
  404.     case 'R':
  405.         cout << "Wyszukiwanie po rasien";
  406.         cout << "Podaj rase zwierzecian";
  407.         cin >> g;
  408.         cin.ignore();
  409.  
  410.         for (int j = 0; j <= baza.size(); j++)
  411.         {
  412.             if (g == baza[j].rasa)
  413.                 wyszukane.push_back(j + 1);
  414.         }
  415.         cout << "Podana rasa zwierzecia znaloziono na pozycji nr: ";
  416.         for (int j = 0; j < wyszukane.size(); ++j)
  417.             cout << wyszukane[j] << 't';
  418.         cout << endl;
  419.         cin.ignore();
  420.         break;
  421.     case 'P':
  422.  
  423.         cout << "Wyszukiwanie po plcin";
  424.         cout << "Wpisz M dla samca lub F dla samicy: ";
  425.         do
  426.         {
  427.             znak = _getch();
  428.             znak = toupper(znak);
  429.         }
  430.         while (znak != 'M' && znak != 'F');
  431.         // 0 - samce, 1 - samice
  432.         if (znak == 'M') plec = 0;
  433.         else plec = 1;
  434.  
  435.  
  436.     }
  437.  
  438.  
  439. }