Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- enum Typ {
- procesor = 1, karta_graficzna, peryferia, plyta_glowna
- };
- const char* nazwy[] = {
- "procesor",
- "karta graficzna",
- "peryferia",
- "plyta glowna"
- };
- struct Czesc {
- char nazwa[256];
- char producent[256];
- char model[50];
- Typ typ;
- int lsz_w_magazynie;
- float cena;
- char data[50];
- char uwagi[1000];
- };
- vector<Czesc> czesci;
- Czesc stworz_produkt() {
- Czesc czesc;
- cout << "Podaj nazwe: ";
- scanf("\n%[^\n]", czesc.nazwa);
- cout << "Podaj producenta: ";
- scanf("\n%[^\n]", czesc.producent);
- cout << "Podaj model: ";
- scanf("\n%[^\n]", czesc.model);
- cout << "Podaj typ: \n";
- cout << "1 - procesor, 2 - karta graficzna, 3 - peryferi, 4 - plyta glowna: ";
- scanf("%d", &czesc.typ);
- cout << "Podaj liczbe sztuk w magazynie: ";
- cin >> czesc.lsz_w_magazynie;
- cout << "Podaj cene: ";
- cin >> czesc.cena;
- cout << "Podaj date: ";
- cin >> czesc.data;
- cout << "Podaj uwagi: ";
- scanf("\n%[^\n]", czesc.uwagi);
- return czesc;
- }
- void dodaj_produkt() {
- czesci.push_back(stworz_produkt());
- }
- void wypisz_produkt(const Czesc& czesc) {
- cout << "Nazwa: " << czesc.nazwa << endl
- << "Producent: " << czesc.producent << endl
- << "Model: " << czesc.model << endl
- << "Typ: " << nazwy[czesc.typ] << endl
- << "Liczba sztuk w magazynie: " << czesc.lsz_w_magazynie << endl
- << "Cena: " << czesc.cena << endl
- << "Data: " << czesc.data << endl
- << "Uwagi: " << czesc.uwagi << endl << endl;
- }
- void wypisz_produkty() {
- for(int i = 0; i < czesci.size(); i++) {
- cout << i+1 << ")\n";
- wypisz_produkt(czesci[i]);
- }
- }
- void usun() {
- int numer;
- cout << "Podaj numer elementu do usuniecia: ";
- cin >> numer;
- numer--;
- if(numer < 0 || numer >= czesci.size()) {
- cout << "Numer powinine byc miedzy 1 a " << czesci.size() << endl;
- return;
- }
- czesci.erase(czesci.begin()+numer);
- }
- void zmien_produkt() {
- int numer;
- cout << "Podaj numer elementu do zmiany: ";
- cin >> numer;
- numer--;
- if(numer < 0 || numer >= czesci.size()) {
- cout << "Numer powinine byc miedzy 1 a " << czesci.size() << endl;
- return;
- }
- czesci[numer] = stworz_produkt();
- }
- void zmien_date() {
- int numer;
- cout << "Podaj numer elementu do zmiany daty: ";
- cin >> numer;
- numer--;
- if(numer < 0 || numer >= czesci.size()) {
- cout << "Numer powinine byc miedzy 1 a " << czesci.size() << endl;
- return;
- }
- cout << "Podaj nowa date: ";
- cin >> czesci[numer].data;
- }
- void wyszukaj() {
- int wybor;
- char szukane[100];
- cout << "Szukaj wg: \n";
- cout << "1 - nazwy, 2 - modelu, 3 - producenta: ";
- cin >> wybor;
- if(wybor != 1 && wybor != 2 && wybor != 3) {
- cout << "Niepoprawny wybor.\n";
- return;
- }
- cout << "Podaj szukane slowo: ";
- cin >> szukane;
- for(int i = 0; i < czesci.size(); i++) {
- if(wybor == 1 && strstr(czesci[i].nazwa, szukane) != NULL) {
- wypisz_produkt(czesci[i]);
- } else if(wybor == 2 && strstr(czesci[i].model, szukane) != NULL) {
- wypisz_produkt(czesci[i]);
- } else if(wybor == 3 && strstr(czesci[i].producent, szukane) != NULL) {
- wypisz_produkt(czesci[i]);
- }
- }
- }
- void zapisz() {
- FILE* plik;
- char nazwa[100];
- cout << "Podaj nazwe pliku: ";
- cin >> nazwa;
- plik = fopen(nazwa, "w");
- if(plik == NULL) {
- cout << "Nie udalo sie otworzyc pliku.\n";
- return;
- }
- for(int i = 0; i < czesci.size(); i++) {
- fprintf(plik, "%s;%s;%s;%d;%d;%f;%s;%s\n",
- czesci[i].nazwa, czesci[i].producent, czesci[i].model, czesci[i].typ,
- czesci[i].lsz_w_magazynie, czesci[i].cena, czesci[i].data, czesci[i].uwagi
- );
- }
- fclose(plik);
- }
- void wczytaj() {
- FILE* plik;
- char nazwa[100];
- char linijka[1500];
- Czesc nowy;
- cout << "Podaj nazwe pliku: ";
- cin >> nazwa;
- plik = fopen(nazwa, "r");
- if(plik == NULL) {
- cout << "Nie udalo sie otworzyc pliku.\n";
- return;
- }
- while(!feof(plik)) {
- fgets(linijka, 1500, plik);
- sscanf(linijka, "%[^;] ; %[^;] ; %[^;] ; %d ; %d ; %f ; %[^;] ; %[^\n] \n",
- nowy.nazwa, nowy.producent, nowy.model, &nowy.typ,
- &nowy.lsz_w_magazynie, &nowy.cena, nowy.data, nowy.uwagi
- );
- czesci.push_back(nowy);
- }
- fclose(plik);
- }
- void menu() {
- int wybor;
- do {
- cout << "1) Dodaj\n"
- << "2) Wypisz\n"
- << "3) Usun\n"
- << "4) Zmien produkt\n"
- << "5) Zmien date dostawy\n"
- << "6) Wyszukaj\n"
- << "7) Zapisz\n"
- << "8) Wczytaj\n"
- << "9) Wyjscie\n"
- << endl;
- cin >> wybor;
- switch(wybor) {
- case 1:
- dodaj_produkt();
- break;
- case 2:
- wypisz_produkty();
- break;
- case 3:
- usun();
- break;
- case 4:
- zmien_produkt();
- break;
- case 5:
- zmien_date();
- break;
- case 6:
- wyszukaj();
- break;
- case 7:
- zapisz();
- break;
- case 8:
- wczytaj();
- break;
- case 9:
- break;
- default:
- cout << "Brak takiej opcji.\n";
- }
- } while(wybor != 9);
- }
- int main() {
- menu();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement