Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <string>
- #include <fstream>
- #include <vector>
- using namespace std;
- enum class Umaszczenie
- {
- brazowy, czarny, bialy, niebieski
- };
- void wypisz(Umaszczenie ob)
- {
- switch(ob)
- {
- case Umaszczenie::bialy:
- cout << "bialy\n";
- break;
- case Umaszczenie::brazowy:
- cout << "brazowy\n";
- break;
- case Umaszczenie::czarny:
- cout << "czarny\n";
- break;
- case Umaszczenie::niebieski:
- cout << "niebieski\n";
- }
- }
- void zapisz_do_pliku(Umaszczenie ob, ofstream& plik)
- {
- switch(ob)
- {
- case Umaszczenie::bialy:
- plik << "bialy\n";
- break;
- case Umaszczenie::brazowy:
- plik << "brazowy\n";
- break;
- case Umaszczenie::czarny:
- plik << "czarny\n";
- break;
- case Umaszczenie::niebieski:
- plik << "niebieski\n";
- }
- }
- struct zwierze
- {
- char gatunek[256];
- char rasa[256];
- int plec;
- Umaszczenie umaszczenie;
- int liczbasztuk;
- double cenajednostkowa;
- string datadostawy;
- char uwagi[1000];
- };
- vector<zwierze> baza;
- void Dodaj();
- void Zobacz();
- void Zapisz();
- void Wczytaj();
- void Usun();
- void Edytuj();
- void ZmienDateDostawy();
- void Wyszukaj();
- int main()
- {
- char wybor;
- do
- {
- cout << "W sklepie zoologicznym jest " << baza.size() << " zwierzat" << endl;
- cout << "1. Dodaj zwierze " << endl;
- cout << "2. Zobacz wszystkie zwierzeta " << endl;
- cout << "3. Zapisz wprowadzone zmiany " << endl;
- cout << "4. Wczytaj dane zwierzat " << endl;
- cout << "5. Usun dane zwierzecia " << endl;
- cout << "6. Edytuj dane " << endl;
- cout << "7. Zmien date dostawy" << endl;
- cout << "8. Wyszukaj zwierze" << endl;
- cout << "ESC - Koniec programu " << endl << endl;
- wybor = _getch();
- switch (wybor)
- {
- case 49:
- Dodaj();
- break;
- case 50:
- Zobacz();
- break;
- case 51:
- Zapisz();
- break;
- case 52:
- Wczytaj();
- break;
- case 53:
- Usun();
- break;
- case 54:
- Edytuj();
- break;
- case 55:
- ZmienDateDostawy();
- break;
- case 56:
- Wyszukaj();
- break;
- }
- system("cls");
- }
- while (wybor != 27);
- system("pause");
- }
- void Dodaj()
- {
- zwierze nowe;
- cout << "Podaj gatunek: n";
- cin >> nowe.gatunek;
- cout << "Podaj rase: n";
- cin >> nowe.rasa;
- cout << "Podaj plec: n";
- cin >> nowe.plec;
- cout << "Podaj umaszczenie: (B - brazowy, A - bialy, C - czarny, N - niebieski) n";
- char komenda;
- do
- {
- komenda = _getch();
- komenda = toupper(komenda);
- }
- while (komenda != 'B' && komenda != 'C' && komenda != 'A' && komenda != 'N' );
- switch (komenda)
- {
- case 'B':
- nowe.umaszczenie = Umaszczenie::brazowy;
- break;
- case 'C':
- nowe.umaszczenie = Umaszczenie::czarny;
- break;
- case 'A':
- nowe.umaszczenie = Umaszczenie::bialy;
- break;
- case 'N':
- nowe.umaszczenie = Umaszczenie::niebieski;
- break;
- }
- cout << "Podaj liczbe sztuk: n";
- cin >> nowe.liczbasztuk;
- cout << "Podaj cene jednostkowa: n";
- cin >> nowe.cenajednostkowa;
- cout << "Podaj date dostawy: n";
- cin >> nowe.datadostawy;
- cout << "Podaj uwagi: n";
- cin >> nowe.uwagi;
- baza.push_back(nowe);
- cin.ignore();
- cout << "Wcisnij ENTER";
- getchar();
- }
- void Zobacz()
- {
- if (baza.size() != 0)
- {
- for (short j = 0; j < baza.size(); j++)
- {
- cout << "nNr zwierzecia " << j + 1 << ": " << endl;
- cout << "Gatunek: " << baza[j].gatunek << endl;
- cout << "Rasa: " << baza[j].rasa << endl;
- cout << "Plec: " << baza[j].plec << endl;
- wypisz(baza[j].umaszczenie);
- cout << "Liczba sztuk: " << baza[j].liczbasztuk << endl;
- cout << "Cena Jednostkowa: " << baza[j].cenajednostkowa << endl;
- cout << "Przewidywana data dostawy: " << baza[j].datadostawy << endl;
- cout << "Uwagi: " << baza[j].uwagi << endl;
- }
- }
- else
- cout << "Brak zwierzat";
- cout << "Nacisnij ENTER";
- getchar();
- }
- void Zapisz()
- {
- ofstream plik("sklepzoo.txt", ios::out | ios::trunc); //poprzednia zawartosc zostaje usunieta
- //plik << baza.size() << "n";
- for (short j = 0; j < baza.size(); j++)
- {
- plik << baza[j].gatunek << endl;
- plik << baza[j].rasa << endl;
- plik << baza[j].plec << endl;
- zapisz_do_pliku(baza[j].umaszczenie, plik);
- plik << baza[j].liczbasztuk << endl;
- plik << baza[j].cenajednostkowa << endl;
- plik << baza[j].datadostawy << endl;
- plik << baza[j].uwagi << endl;
- }
- cout << "Wcisnij ENTER";
- getchar();
- }
- void Wczytaj()
- {
- ifstream plik("sklepzoo.txt", ios::in);
- short j = 0;
- do
- {
- plik >> baza[j].gatunek;
- plik >> baza[j].rasa;
- plik >> baza[j].plec;
- plik >> baza[j].umaszczenie;
- plik >> baza[j].liczbasztuk;
- plik >> baza[j].cenajednostkowa;
- plik >> baza[j].datadostawy;
- plik >> baza[j].uwagi;
- j++;
- }
- while (!plik.eof());
- cout << "Nacisnij ENTER!";
- getchar();
- }
- void Usun()
- {
- short obiekt;
- if (baza.size() != 0)
- {
- cout << "Podaj numer zwierzecia ktore chcesz usunac: ";
- cin >> obiekt;
- cin.ignore();
- if (obiekt > baza.size())
- cout << "Error";
- else
- {
- baza.erase(baza.begin() + obiekt); // usuniêcie elementu
- cout << "Zwierze o numerze " << obiekt << " zostalo usuniete";
- Zapisz();
- }
- }
- else
- {
- cout << "Error";
- getchar();
- }
- }
- void Edytuj()
- {
- int obiekt;
- if (baza.size() != 0)
- {
- cout << "Podaj numer zwierzecia ktore chcesz zmienic: ";
- cin >> obiekt;
- cin.ignore();
- if (obiekt > baza.size())
- cout << "Error";
- else
- {
- //jest -1 bo zakladam ze numeracja zwierzat jest taka jak w wypisaniu. Natiomiast
- // tablica zaczyna sie od zera.
- cout << "Podaj gatunek: n";
- cin >> baza[obiekt - 1].gatunek; //jest -1 bo zakladam ze numeracja zwierzat jest taka jak w wypisaniu. Natiomiast
- // tablica zaczyna sie od zera.
- cout << "Podaj rase: n";;
- cin >> baza[obiekt - 1].rasa;
- cout << "Podaj plec: n";
- cin >> baza[obiekt - 1].plec;
- cout << "Podaj umaszczenie: n";
- cin >> baza[obiekt - 1].umaszczenie;
- cout << "Podaj liczbe sztuk: n";
- cin >> baza[obiekt - 1].liczbasztuk;
- cout << "Podaj cene jednostkowa: n";
- cin >> baza[obiekt - 1].cenajednostkowa;
- cout << "Podaj przewidywana date dostawy: n";
- cin >> baza[obiekt - 1].datadostawy;
- cout << "Podaj uwagi: n";
- cin >> baza[obiekt - 1].uwagi;
- cout << "Sukces";
- Zapisz();
- }
- }
- else
- {
- cout << "Error";
- getchar();
- }
- }
- void ZmienDateDostawy()
- {
- int obiekt;
- if (baza.size() != 0)
- {
- cout << "Podaj numer zwierzecia ktorego date dostawy chcesz zmienic: ";
- cin >> obiekt;
- cin.ignore();
- if (obiekt > baza.size())
- cout << "Error";
- else
- {
- cout << "Podaj przewidywana date dostawy: n";
- cin >> baza[obiekt - 1].datadostawy;
- cout << "Sukces";
- Zapisz();
- }
- }
- }
- void Wyszukaj()
- {
- string g;
- int nr;
- int plec;
- vector<int> wyszukane;
- cout << "Napisz czy chcesz wyszukiwac po gatunku (G), rasie (R) czy plci (P): ";
- char znak;
- do
- {
- znak = _getch();
- znak = toupper(znak);
- }
- while (znak != 'G' && znak != 'R' && znak != 'P');
- cout << znak << endl;
- switch (znak)
- {
- case 'G':
- cout << "Wyszukiwanie po gatunkun";
- cout << "Podaj gatunek zwierzecian";
- cin >> g;
- cin.ignore();
- for (int j = 0; j <= baza.size(); j++)
- {
- if (g == baza[j].gatunek)
- wyszukane.push_back(j + 1);
- }
- cout << "Podany gatunek zwierzecia znaloziono na pozycji nr: ";
- for (int j = 0; j < wyszukane.size(); ++j)
- cout << wyszukane[j] << 't';
- cout << endl;
- cin.ignore();
- break;
- case 'R':
- cout << "Wyszukiwanie po rasien";
- cout << "Podaj rase zwierzecian";
- cin >> g;
- cin.ignore();
- for (int j = 0; j <= baza.size(); j++)
- {
- if (g == baza[j].rasa)
- wyszukane.push_back(j + 1);
- }
- cout << "Podana rasa zwierzecia znaloziono na pozycji nr: ";
- for (int j = 0; j < wyszukane.size(); ++j)
- cout << wyszukane[j] << 't';
- cout << endl;
- cin.ignore();
- break;
- case 'P':
- cout << "Wyszukiwanie po plcin";
- cout << "Wpisz M dla samca lub F dla samicy: ";
- do
- {
- znak = _getch();
- znak = toupper(znak);
- }
- while (znak != 'M' && znak != 'F');
- // 0 - samce, 1 - samice
- if (znak == 'M') plec = 0;
- else plec = 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment