Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. enum Typ {
  7.     procesor = 1, karta_graficzna, peryferia, plyta_glowna
  8. };
  9.  
  10. const char* nazwy[] = {
  11.         "procesor",
  12.         "karta graficzna",
  13.         "peryferia",
  14.         "plyta glowna"
  15. };
  16.  
  17. struct Czesc {
  18.     char nazwa[256];
  19.     char producent[256];
  20.     char model[50];
  21.     Typ typ;
  22.     int lsz_w_magazynie;
  23.     float cena;
  24.     char data[50];
  25.     char uwagi[1000];
  26. };
  27.  
  28. vector<Czesc> czesci;
  29.  
  30. Czesc stworz_produkt() {
  31.     Czesc czesc;
  32.     cout << "Podaj nazwe: ";
  33.     scanf("\n%[^\n]", czesc.nazwa);
  34.  
  35.     cout << "Podaj producenta: ";
  36.     scanf("\n%[^\n]", czesc.producent);
  37.  
  38.     cout << "Podaj model: ";
  39.     scanf("\n%[^\n]", czesc.model);
  40.  
  41.     cout << "Podaj typ: \n";
  42.     cout << "1 - procesor, 2 - karta graficzna, 3 - peryferi, 4 - plyta glowna: ";
  43.     scanf("%d", &czesc.typ);
  44.  
  45.     cout << "Podaj liczbe sztuk w magazynie: ";
  46.     cin >> czesc.lsz_w_magazynie;
  47.  
  48.     cout << "Podaj cene: ";
  49.     cin >> czesc.cena;
  50.  
  51.     cout << "Podaj date: ";
  52.     cin >> czesc.data;
  53.  
  54.     cout << "Podaj uwagi: ";
  55.     scanf("\n%[^\n]", czesc.uwagi);
  56.  
  57.  
  58.     return czesc;
  59. }
  60. void dodaj_produkt() {
  61.     czesci.push_back(stworz_produkt());
  62. }
  63.  
  64. void wypisz_produkt(const Czesc& czesc) {
  65.  
  66.     cout << "Nazwa: " << czesc.nazwa << endl
  67.          << "Producent: " << czesc.producent << endl
  68.          << "Model: " << czesc.model << endl
  69.          << "Typ: " << nazwy[czesc.typ] << endl
  70.          << "Liczba sztuk w magazynie: " << czesc.lsz_w_magazynie << endl
  71.          << "Cena: " << czesc.cena << endl
  72.          << "Data: " << czesc.data << endl
  73.          << "Uwagi: " << czesc.uwagi << endl << endl;
  74.  
  75. }
  76.  
  77. void wypisz_produkty() {
  78.     for(int i = 0; i < czesci.size(); i++) {
  79.         cout << i+1 << ")\n";
  80.         wypisz_produkt(czesci[i]);
  81.     }
  82. }
  83.  
  84. void usun() {
  85.     int numer;
  86.     cout << "Podaj numer elementu do usuniecia: ";
  87.     cin >> numer;
  88.  
  89.     numer--;
  90.  
  91.     if(numer < 0 || numer >= czesci.size()) {
  92.         cout << "Numer powinine byc miedzy 1 a " << czesci.size() << endl;
  93.         return;
  94.     }
  95.  
  96.     czesci.erase(czesci.begin()+numer);
  97.  
  98. }
  99.  
  100. void zmien_produkt() {
  101.     int numer;
  102.     cout << "Podaj numer elementu do zmiany: ";
  103.     cin >> numer;
  104.  
  105.     numer--;
  106.  
  107.     if(numer < 0 || numer >= czesci.size()) {
  108.         cout << "Numer powinine byc miedzy 1 a " << czesci.size() << endl;
  109.         return;
  110.     }
  111.  
  112.     czesci[numer] = stworz_produkt();
  113. }
  114.  
  115. void zmien_date() {
  116.     int numer;
  117.     cout << "Podaj numer elementu do zmiany daty: ";
  118.     cin >> numer;
  119.  
  120.     numer--;
  121.  
  122.     if(numer < 0 || numer >= czesci.size()) {
  123.         cout << "Numer powinine byc miedzy 1 a " << czesci.size() << endl;
  124.         return;
  125.     }
  126.  
  127.     cout << "Podaj nowa date: ";
  128.     cin >> czesci[numer].data;
  129. }
  130.  
  131. void wyszukaj() {
  132.     int wybor;
  133.     char szukane[100];
  134.     cout << "Szukaj wg: \n";
  135.     cout << "1 - nazwy, 2 - modelu, 3 - producenta: ";
  136.  
  137.     cin >> wybor;
  138.     if(wybor != 1 && wybor != 2 && wybor != 3) {
  139.         cout << "Niepoprawny wybor.\n";
  140.         return;
  141.     }
  142.  
  143.     cout << "Podaj szukane slowo: ";
  144.     cin >> szukane;
  145.  
  146.     for(int i = 0; i < czesci.size(); i++) {
  147.         if(wybor == 1 && strstr(czesci[i].nazwa, szukane) != NULL) {
  148.             wypisz_produkt(czesci[i]);
  149.         } else if(wybor == 2 && strstr(czesci[i].model, szukane) != NULL) {
  150.             wypisz_produkt(czesci[i]);
  151.         } else if(wybor == 3 && strstr(czesci[i].producent, szukane) != NULL) {
  152.             wypisz_produkt(czesci[i]);
  153.         }
  154.     }
  155.  
  156. }
  157.  
  158. void zapisz() {
  159.     FILE* plik;
  160.     char nazwa[100];
  161.  
  162.     cout << "Podaj nazwe pliku: ";
  163.     cin >> nazwa;
  164.  
  165.     plik = fopen(nazwa, "w");
  166.  
  167.     if(plik == NULL) {
  168.         cout << "Nie udalo sie otworzyc pliku.\n";
  169.         return;
  170.     }
  171.  
  172.     for(int i = 0; i < czesci.size(); i++) {
  173.         fprintf(plik, "%s;%s;%s;%d;%d;%f;%s;%s\n",
  174.                 czesci[i].nazwa, czesci[i].producent, czesci[i].model, czesci[i].typ,
  175.                 czesci[i].lsz_w_magazynie, czesci[i].cena, czesci[i].data, czesci[i].uwagi
  176.         );
  177.     }
  178.  
  179.     fclose(plik);
  180. }
  181.  
  182. void wczytaj() {
  183.     FILE* plik;
  184.     char nazwa[100];
  185.     char linijka[1500];
  186.     Czesc nowy;
  187.  
  188.  
  189.     cout << "Podaj nazwe pliku: ";
  190.     cin >> nazwa;
  191.  
  192.     plik = fopen(nazwa, "r");
  193.  
  194.     if(plik == NULL) {
  195.         cout << "Nie udalo sie otworzyc pliku.\n";
  196.         return;
  197.     }
  198.  
  199.     while(!feof(plik)) {
  200.         fgets(linijka, 1500, plik);
  201.         sscanf(linijka, "%[^;] ; %[^;] ; %[^;] ; %d ; %d ; %f ; %[^;] ; %[^\n] \n",
  202.                nowy.nazwa, nowy.producent, nowy.model, &nowy.typ,
  203.                &nowy.lsz_w_magazynie, &nowy.cena, nowy.data, nowy.uwagi
  204.         );
  205.  
  206.         czesci.push_back(nowy);
  207.     }
  208.  
  209.     fclose(plik);
  210.  
  211. }
  212.  
  213. void menu() {
  214.     int wybor;
  215.  
  216.     do {
  217.         cout << "1) Dodaj\n"
  218.              << "2) Wypisz\n"
  219.              << "3) Usun\n"
  220.              << "4) Zmien produkt\n"
  221.              << "5) Zmien date dostawy\n"
  222.              << "6) Wyszukaj\n"
  223.              << "7) Zapisz\n"
  224.              << "8) Wczytaj\n"
  225.              << "9) Wyjscie\n"
  226.              << endl;
  227.         cin >> wybor;
  228.  
  229.         switch(wybor) {
  230.             case 1:
  231.                 dodaj_produkt();
  232.                 break;
  233.             case 2:
  234.                 wypisz_produkty();
  235.                 break;
  236.             case 3:
  237.                 usun();
  238.                 break;
  239.             case 4:
  240.                 zmien_produkt();
  241.                 break;
  242.             case 5:
  243.                 zmien_date();
  244.                 break;
  245.             case 6:
  246.                 wyszukaj();
  247.                 break;
  248.             case 7:
  249.                 zapisz();
  250.                 break;
  251.             case 8:
  252.                 wczytaj();
  253.                 break;
  254.             case 9:
  255.                 break;
  256.             default:
  257.                 cout << "Brak takiej opcji.\n";
  258.         }
  259.  
  260.     } while(wybor != 9);
  261. }
  262.  
  263. int main() {
  264.     menu();
  265.     return 0;
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement