Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <iostream>
- #include <conio.h>
- #include <string.h>
- #include <windows.h>
- #include <dirent.h>
- #include "picosha2.h"
- #define L 50
- #define MAX 5
- using namespace std;
- void gotoxy(int x, int y)
- {
- COORD c;
- c.X = x-1;
- c.Y = y-1;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
- }
- void piszMenu(int x, int y)
- {
- gotoxy(x,y);
- cout<<"---------MENU-----------"<<endl;
- cout<<"1. Czyszczenie"<<endl;
- cout<<"2. Czytanie"<<endl;
- cout<<"3. Drukowanie"<<endl;
- cout<<"4. Wartosc"<<endl;
- cout<<"5. Zapisz do pliku"<<endl;
- cout<<"6. Wczytaj z pliku"<<endl;
- cout<<"7. DeleteCurrent"<<endl;
- cout<<"8. ShowCurrent"<<endl;
- cout<<"a. Next"<<endl;
- cout<<"b. Previous"<<endl;
- cout<<"c. SetCurrent"<<endl;
- cout<<"0. Wyjscie z programu"<<endl;
- }
- class towar
- {
- protected:
- char marka[L], model[L];
- float cena, moc;
- int sztuk, rocznik;
- public:
- towar();
- void czysc();
- void pobierz(char *marka, char *model, float cena, float moc, int rocznik, int sztuk);
- void drukuj();
- float wartosc();
- //nowe rzeczy
- void piszXY(int x, int y);
- // uzupełniona o setery i getery
- void setMarka(char *naz);
- void setModel(char *model);
- void setCena(float cen);
- void setMoc(float moc);
- void setRocznik(int rocznik);
- void setSztuk(int szt);
- char* getMarka();
- char* getModel();
- float getCena();
- float getMoc();
- int getSztuk();
- int getRocznik();
- };
- class bazatowar:public towar
- {
- protected:
- towar *tab; // Wskazanie do obiektu (ÓW) towar
- towar *trash;
- towar *found;
- towar *temp;
- int rozmiar;
- int licznosc;
- int licznoscFound;
- int licznoscTrash;
- int current;
- int currentFound;
- int currentTrash;
- int fileAmount;
- string currentFileName;
- string dbfileName;
- char *passwd;
- FILE *zp;
- private:
- int i;
- public:
- bazatowar(int rozmiar);
- void dodajkolejny(char *marka, char *model, float cena, float moc, int rocznik, int sztuk);
- void czysccalosc();
- void drukujcalosc();
- void wartosci();
- float sumawartosc();
- bool saveFile(string fileName);
- int saveFileAs(char* newFileName);
- void openFile();
- void next();
- void previous();
- void showCurrent(int x, int y);
- void setCurrent(int index);
- void deleteCurrent();
- void deleteCurrentFound();
- int menuEdytuj();
- void setRocznikCurrent(int rok);
- bool searchCena(float min, float max);
- bool searchMarka(char *marka);
- bool searchMarkaCena(char *marka, float min, float max);
- void showCurrentFound(int x, int y);
- void nextFound();
- void previousFound();
- string* getFileList();
- bool hasSuffix(const string& s, const string& suffix);
- string addSuffix(char* dbname);
- string addSuffix(string dbname);
- string openFileFromList(int fileIndex, string* fileList);
- bool fileExists(char fname[L]);
- int getFileAmount();
- string getFileName();
- void setLicznosc(int licz);
- int getLicznosc();
- void setRozmiar(int roz);
- int getRozmiar();
- string getdbFileName();
- void setdbFileName(string fileName);
- bool removeFile(string filename);
- bool searchAdvanced(bool *kryterium, short int *operatory, char *markaQuery, char *modelQuery, float mocMinQuery, float mockMaxQuery, int roczniMinkQuery, int rocznikMaxQuery, float cenaMinQuery, float cenaMaxQuery, int sztukMinQuery, int sztukMaxQuery);
- int sortdb(int sortBy, bool AscdDsc, int rozmiar);
- void setPasswd(string password);
- char *getPasswd();
- string encryptPasswd(string password);
- string readPasswdFromFile(int fileIndex, string* fileList);
- };
- towar::towar()
- {
- strcpy(marka, " "); //konstruktor zwykle powinien czyscic
- strcpy(model, " ");
- moc=0;
- cena = 0;
- sztuk = 0;
- rocznik=0;
- }
- void towar::czysc()
- {
- strcpy(marka, " ");
- strcpy(model, " ");
- moc=0;
- cena = 0;
- sztuk = 0;
- rocznik=0;
- }
- void towar::pobierz(char *marka, char *model, float cena, float moc, int rocznik, int sztuk)
- {
- strcpy(this->marka, marka);
- strcpy(this->model, model);
- this->cena = cena;
- this->moc = moc;
- this->sztuk = sztuk;
- this->rocznik = rocznik;
- }
- void towar::drukuj()
- {
- cout<<"Marka: "<<marka<<endl;
- cout<<"Model: "<<model<<endl;
- cout<<"Moc: "<<moc<<endl;
- cout<<"Cena: "<<cena<<endl;
- cout<<"Rocznik: "<<rocznik<<endl;
- cout<<"Ilosc: "<<sztuk<<endl;
- cout<<"------------------------"<<endl;
- //cout<<marka<<" "<<model<<" "<<moc<<" "<<cena<<" "<<sztuk<<""<<endl;
- }
- float towar::wartosc()
- {
- return cena*sztuk;
- }
- void towar::setMarka(char *naz)
- {
- strcpy(marka, naz);
- }
- void towar::setModel(char *mod)
- {
- strcpy(model, mod);
- }
- void towar::setMoc(float moc)
- {
- this->moc=moc;
- }
- void towar::setCena(float cen)
- {
- cena = cen;
- }
- void towar::setSztuk(int szt)
- {
- sztuk = szt;
- }
- void towar::setRocznik(int rocznik)
- {
- this->rocznik=rocznik;
- }
- char* towar::getMarka()
- {
- return marka;
- }
- char* towar::getModel()
- {
- return model;
- }
- float towar::getCena()
- {
- return cena;
- }
- float towar::getMoc()
- {
- return moc;
- }
- int towar::getSztuk()
- {
- return sztuk;
- }
- int towar::getRocznik()
- {
- return rocznik;
- }
- void towar::piszXY(int x, int y)
- {
- //lepiej 2 metody na etykiety i wartosci (oddzielnie)
- gotoxy(x,y);
- cout<<"Marka: ";
- gotoxy(x,y+1);
- cout<<"Model: ";
- gotoxy(x,y+2);
- cout<<"Moc: ";
- gotoxy(x,y+3);
- cout<<"Rocznik: ";
- gotoxy(x,y+4);
- cout<<"Cena: ";
- gotoxy(x,y+5);
- cout<<"Ilosc: ";
- gotoxy(x+8,y);
- cout<<marka;
- gotoxy(x+8,y+1);
- cout<<model;
- gotoxy(x+8,y+2);
- cout<<moc;
- gotoxy(x+8,y+3);
- cout<<rocznik;
- gotoxy(x+8,y+4);
- cout<<cena;
- gotoxy(x+8,y+5);
- cout<<sztuk;
- }
- /****************Metody Bazatowar******************/
- bazatowar::bazatowar(int rozmiar)
- {
- //pytanie o rozmiar przeniesiony do main
- this->rozmiar = rozmiar;
- tab = new towar[rozmiar];
- found = new towar[rozmiar];
- trash = new towar[rozmiar];
- for (i=0; i<rozmiar; i++) //historycznie, mozna wyrzucic
- tab[i].czysc();
- licznosc = 0;
- licznoscTrash=0;
- licznoscFound=0;
- current=-1;
- currentTrash=-1;
- currentFound=-1;
- passwd = new char[300];
- }
- void bazatowar::czysccalosc()
- {
- for (i=0; i<rozmiar; i++)
- tab[i].czysc();
- licznosc = 0;
- current=-1;
- }
- void bazatowar::dodajkolejny(char *marka, char *model, float cena, float moc, int rocznik, int sztuk)
- { //metoda powinna zwracać nr błędu
- if(licznosc<rozmiar)
- {
- // strcpy(tab[licznosc].marka,naz);
- // cena = cen;
- // tab[licznosc].sztuk = szt;
- tab[licznosc].pobierz(marka, model, cena, moc, rocznik, sztuk);
- current=licznosc;
- licznosc++;
- }
- }
- void bazatowar::drukujcalosc()
- {
- for(i=0;i<rozmiar;i++)
- tab[i].drukuj();
- }
- void bazatowar::wartosci()
- {
- for(i=0;i<rozmiar;i++)
- cout<<tab[i].wartosc()<<endl;
- }
- float bazatowar::sumawartosc()
- {
- float suma_wart=0;
- for(i=0;i<rozmiar;i++)
- suma_wart+=tab[i].wartosc();
- return suma_wart;
- }
- void bazatowar::next(){
- if(current<licznosc-1) //current musi być mniejszy o 1 od liczności bo indexy w tablicy zaczynają się od 0
- current++;
- }
- void bazatowar::nextFound()
- {
- if(currentFound<licznoscFound-1) //current musi być mniejszy o 1 od liczności bo indexy w tablicy zaczynają się od 0
- currentFound++;
- }
- void bazatowar::previous(){
- if(current>0) // Current musi być większy od 0, bo nie ma w tablicy indexy mniejszego od 0
- current--;
- }
- void bazatowar::previousFound(){
- if(currentFound>0) // Current musi być większy od 0, bo nie ma w tablicy indexy mniejszego od 0
- currentFound--;
- }
- void bazatowar::showCurrent(int x, int y)
- {
- if(current>=0) {
- tab[current].piszXY(x, y);
- cout<<endl;
- }
- //sprawdzamy czy element obecny istnieje w tablicy, jesli current mniejszy niz 1 znaczy nie ma czego wypisywac
- }
- void bazatowar::showCurrentFound(int x, int y)
- {
- if(current>=0) //Sprawdzamy czy current ma swoje odniesienie w tablicy - jest większy lub równy 0; Reszta nas nie interesuje;
- //Current musi być mniejszy od licznosci ale sprawdzamy to w poprzednich metodach
- found[currentFound].piszXY(x, y);
- }
- void bazatowar::setCurrent(int index)
- {
- if(index>=0 && index<licznosc)
- current=index;
- }
- void bazatowar::deleteCurrent()
- {
- if(current>=0 && licznosc>1)
- {
- for(i=current; i<licznosc-1; i++)
- tab[i] = tab[i+1];
- licznosc--;
- current--;
- }
- else
- {
- if(licznosc==1)
- {
- current=-1;
- licznosc--;
- }
- }
- }
- void bazatowar::deleteCurrentFound()
- {
- if(currentFound>=0 && licznoscFound>1)
- {
- for(i=currentFound; i<licznoscFound-1; i++)
- tab[i] = tab[i+1];
- licznoscFound--;
- currentFound--;
- }
- else
- {
- if(licznoscFound==1)
- {
- currentFound=-1;
- licznoscFound--;
- }
- }
- }
- /*
- void bazatowar::setRocznikCurrent(int rok)
- {
- if(current>=0 && licznosc>1)
- {
- tab[current].rocznik = rok;
- }
- }
- */
- int bazatowar::menuEdytuj()
- {
- int m;
- cout<<"Wybierz co chcesz edytowac:"<<endl;
- cout<<"1. Marka"<<endl;
- cout<<"2. Model"<<endl;
- cout<<"3. Moc"<<endl;
- cout<<"4. Rocznik"<<endl;
- cout<<"5. Ilosc"<<endl;
- cout<<"6. Cena"<<endl;
- cin>>m;
- return m;
- }
- //*****************Pobieranie i saveFile ********************
- bool bazatowar::hasSuffix(const string& s, const string& suffix)
- {
- return (s.size() >= suffix.size()) && equal(suffix.rbegin(), suffix.rend(), s.rbegin());
- }
- string bazatowar::addSuffix(char* dbname)
- {
- if(strcat(dbname, ".db"))
- return dbname;
- else
- return "0";
- }
- string bazatowar::addSuffix(string dbname)
- {
- string dbNameWithSuffix = dbname + ".db";
- if(dbNameWithSuffix != "")
- return dbNameWithSuffix;
- else
- return "0";
- }
- string* bazatowar::getFileList()
- {
- string* fileList;
- fileList = new string[L];
- int i=0;
- string path = "D:\\OneDrive\\Dev\\Projekt\\Bazy\\";
- DIR *dir = opendir(path.c_str());
- if(dir)
- {
- dirent *entry;
- while((entry = readdir(dir))!= NULL)
- {
- if(bazatowar::hasSuffix(entry->d_name, ".db"))
- {
- fileList[i]=entry->d_name;
- i++;
- }
- }
- }
- if(i==0)
- fileAmount = -1;
- else
- fileAmount = i;
- closedir(dir);
- return fileList;
- }
- int bazatowar::getFileAmount()
- {
- return fileAmount;
- }
- bool bazatowar::saveFile(string fileName)
- {
- char dbpath[100];
- strcpy(dbpath, "D:\\OneDrive\\Dev\\Projekt\\Bazy\\");
- char* baza = new char[100];
- strcpy(baza, dbpath);
- strcat(baza, fileName.c_str());
- if(!hasSuffix(baza, ".db"))
- addSuffix(baza);
- char buffer[200];
- strcpy(buffer, passwd);
- zp = fopen(baza, "wb");
- if(zp != NULL)
- {
- fwrite(&rozmiar, sizeof(rozmiar), 1, zp); //saveFileywanie rozmiaru do pliku baza.db
- fwrite(&licznosc, sizeof(licznosc), 1, zp);//saveFileywanie licznosci do pliku baza.db
- fwrite(tab, sizeof(*tab)*rozmiar, 1, zp); //saveFileywanie tabeli klasy towar do pliku //zamykanie
- fwrite(buffer, sizeof(char), sizeof(buffer) ,zp);
- return 1;
- }
- else
- return 0;
- fclose(zp);
- }
- int bazatowar::saveFileAs(char* newFileName)
- {
- char dbpath[100];
- strcpy(dbpath, "D:\\OneDrive\\Dev\\Projekt\\Bazy\\");
- char* baza = new char[100];
- char buffer[200];
- strcpy(buffer, passwd);
- cout<<"buffer: "<<buffer<<endl;
- strcpy(baza, "");
- strcpy(baza, dbpath);
- strcat(baza, newFileName);
- if(!hasSuffix(baza, ".db"))
- addSuffix(baza);
- zp = fopen(baza, "wb");
- if(zp != NULL)
- {
- currentFileName = newFileName;
- fwrite(&rozmiar, sizeof(rozmiar), 1, zp); //saveFileywanie rozmiaru do pliku baza.db
- fwrite(&licznosc, sizeof(licznosc), 1, zp);//saveFileywanie licznosci do pliku baza.db
- fwrite(tab, sizeof(*tab)*rozmiar, 1, zp); //saveFileywanie tabeli klasy towar do pliku
- fwrite(buffer, sizeof(char), sizeof(buffer) ,zp);
- return 1;
- fclose(zp);
- }
- else
- return 0; //zamykanie pliku
- fclose(zp);
- }
- void bazatowar::openFile()
- {
- char *buffer;
- // cout<<"openFile pliku";
- zp = fopen("D:\\OneDrive\\Dev\\Projekt\\Bazy\\baza.db", "rb+"); //openFile pliku baza.db
- fread(&rozmiar, sizeof(rozmiar), 1, zp); //odczytywanie rozmiaru
- fread(&licznosc, sizeof(licznosc), 1, zp); //odczytywanie licznosci
- for(i=0; i<rozmiar; i++) //odczytywanie nazwy ceny i sztuk pętlą przez metody get
- {
- fread(&tab[i], sizeof(tab[i]),1, zp); // Czyta tablicę, konkretny element
- //cout<<tab[i].getmarka()<<" "<<tab[i].getCena()<<" "<<tab[i].getSztuk()<<endl; //Wypisuje nazwę, cenę, sztuk
- }
- fread(buffer, sizeof(char), sizeof(buffer) ,zp);
- current=0;
- fclose(zp); //zamykanie pliku
- // DRUGA METODA
- //fread(tab, sizeof(*tab)*rozmiar, 1, zp);
- }
- string bazatowar::openFileFromList(int fileIndex, string* fileList)
- {
- long lSize;
- char *buffer;
- size_t result;
- char dbpath[100];
- strcpy(dbpath, "D:\\OneDrive\\Dev\\Projekt\\Bazy\\");
- char* baza = new char[100];
- strcpy(baza, "");
- strcpy(baza, dbpath);
- //cout<<fileList[fileIndex-1].c_str();
- strcat(baza, fileList[fileIndex-1].c_str());
- //cout<<"baza: "<<baza<<endl;
- if(zp = fopen(baza, "rb"))
- {
- fseek(zp, 0, SEEK_END);
- lSize = ftell (zp);
- rewind (zp);
- buffer = (char*) malloc(sizeof(char)*lSize);
- if(buffer == NULL) return "";
- currentFileName = (fileList[fileIndex-1].c_str());
- //openFile pliku baza.db
- fread(&rozmiar, sizeof(rozmiar), 1, zp); //odczytywanie rozmiaru
- fread(&licznosc, sizeof(licznosc), 1, zp); //odczytywanie licznosci
- cout<<"passwd w openfile: "<<passwd<<endl;
- for(i=0; i<rozmiar; i++) //odczytywanie nazwy ceny i sztuk pętlą przez metody get
- {
- fread(&tab[i], sizeof(tab[i]),1, zp);
- }
- fread(buffer, 1, lSize,zp);
- //if(result != lSize) return "";
- passwd = buffer;
- current=0;
- fclose(zp);
- return baza;
- }
- else
- return "";
- // DRUGA METODA
- fclose(zp);
- //fread(tab, sizeof(*tab)*rozmiar, 1, zp);
- }
- bool bazatowar::fileExists(char fname[L])
- {
- if (FILE *file = fopen(fname, "r")) {
- fclose(file);
- return true;
- } else {
- return false;
- }
- }
- bool bazatowar::searchCena(float min, float max)
- {
- licznoscFound=0;
- currentFound=-1;
- for(i=0; i<licznosc; i++)
- if(tab[i].getCena()>=min && tab[i].getCena()<=max)
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- if(licznoscFound)
- {
- currentFound=0;
- return 1;
- }
- else
- return 0;
- }
- bool bazatowar::searchMarka(char *marka)
- {
- //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
- //cout<<"marka wyszukana: "<<marka;
- licznoscFound=0;
- currentFound=-1;
- for(i=0; i<licznosc; i++)
- {
- //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
- if(!strcmp(tab[i].getMarka(), marka))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- if(licznoscFound)
- {
- currentFound=0;
- return 1;
- }
- else
- return 0;
- }
- bool bazatowar::searchMarkaCena(char *marka, float min, float max)
- {
- //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
- //cout<<"marka wyszukana: "<<marka;
- licznoscFound=0;
- currentFound=-1;
- for(i=0; i<licznosc; i++)
- {
- //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
- if(!strcmp(tab[i].getMarka(), marka) && tab[i].getCena()>=min && tab[i].getCena()<=max)
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- if(licznoscFound)
- {
- currentFound=0;
- return 1;
- }
- else
- return 0;
- }
- string bazatowar::getFileName()
- {
- if(currentFileName == "")
- return "";
- else
- return currentFileName;
- }
- void bazatowar::setdbFileName(string fileName)
- {
- dbfileName = fileName;
- }
- string bazatowar::getdbFileName()
- {
- return dbfileName;
- }
- void bazatowar::setLicznosc(int licz)
- {
- this->licznosc = licz;
- }
- int bazatowar::getLicznosc()
- {
- return licznosc;
- }
- void bazatowar::setRozmiar(int roz)
- {
- this->rozmiar = roz;
- }
- int bazatowar::getRozmiar()
- {
- return rozmiar;
- }
- bool bazatowar::removeFile(string filename)
- {
- string dbpath = "D:\\OneDrive\\Dev\\Projekt\\Bazy\\", fileNameWithPath;
- fileNameWithPath = dbpath; fileNameWithPath = fileNameWithPath + filename;
- if(remove(fileNameWithPath.c_str()))
- return 1;
- else
- return 0;
- }
- bool bazatowar::searchAdvanced(bool *kryterium, short int *operatory, char *markaQuery, char *modelQuery, float mocMinQuery, float mocMaxQuery, int roczniMinkQuery, int rocznikMaxQuery, float cenaMinQuery, float cenaMaxQuery, int sztukMinQuery, int sztukMaxQuery)
- {
- licznoscFound = 0;
- currentFound=-1;
- int i=0; int ilosc_kryt=0;
- for(i= 0; i<=5; i++)
- {
- if(kryterium[i])
- {
- ilosc_kryt++; //ilosc kryteriow
- }
- }
- cout<<"Podawanie kryteriow zakonczone."<<endl;
- //for(i=0; i<=5; i++)
- //{
- //if(kryterium[i])
- //cout<<"kryt["<<i<<"]: "<<kryterium[i];
- //}
- //for(i=0; (i+1)<ilosc_kryt;i++)
- //cout<<"Operator["<<i<<"]: "<<operatory[i];
- //cout<<"Podaj operator nr "<<j+1<<endl<<" 1. Oraz | 2. Lub | 3. Oraz nie| 4. Lub nie"<<endl;
- if(kryterium[0] && !kryterium[1] && !kryterium[2] && !kryterium[3] && !kryterium[4] && !kryterium[5])
- {
- cout<<"wszedl do kryterium"<<endl;
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0)
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- if(!kryterium[0] && kryterium[1] && !kryterium[2] && !kryterium[3] && !kryterium[4] && !kryterium[5])
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getModel(), modelQuery) == 0)
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- if(!kryterium[0] && !kryterium[1] && kryterium[2] && !kryterium[3] && !kryterium[4] && !kryterium[5])
- {
- for(i=0; i<licznosc;i++)
- {
- if(tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if((kryterium[0] && kryterium[1] && !kryterium[2] && !kryterium[3] && !kryterium[4] && !kryterium[5]))
- {
- if(operatory[0] == 1)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0)
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[0] == 2)
- for(i=0; i<licznosc;i++)
- {
- if((strcmp(tab[i].getMarka(), markaQuery) == 0) || (strcmp(tab[i].getModel(), modelQuery) == 0))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- else if(operatory[0] == 3)
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && !(strcmp(tab[i].getModel(), modelQuery) == 0))
- {
- cout<<!(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0);
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- else
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getMarka(), markaQuery) == 0 || strcmp(tab[i].getModel(), modelQuery) == 0))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if((kryterium[0] && !kryterium[1] && kryterium[2] && !kryterium[3] && !kryterium[4] && !kryterium[5]))
- {
- if(operatory[0] == 1)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[0] == 2)
- for(i=0; i<licznosc;i++)
- {
- if((strcmp(tab[i].getMarka(), markaQuery) == 0) || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- else if(operatory[0] == 3)
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && !(tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- else
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getMarka(), markaQuery) == 0 || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if((!kryterium[0] && kryterium[1] && kryterium[2] && !kryterium[3] && !kryterium[4] && !kryterium[5]))
- {
- if(operatory[0] == 1)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getModel(), modelQuery) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[0] == 2)
- for(i=0; i<licznosc;i++)
- {
- if((strcmp(tab[i].getModel(), modelQuery) == 0) || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- else if(operatory[0] == 3)
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getModel(), modelQuery) == 0 && !(tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- else
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if((kryterium[0] && kryterium[1] && kryterium[2] && !kryterium[3] && !kryterium[4] && !kryterium[5]))
- {
- if(operatory[0] == 1)
- {
- if(operatory[1] == 1)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 2)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 3)
- {
- for(i=0; i<licznosc;i++)
- {
- if((strcmp(tab[i].getMarka(), markaQuery) == 0 && !(strcmp(tab[i].getModel(), modelQuery)) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else
- {
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- }
- else if(operatory[0] == 2)
- {
- if(operatory[1] == 2)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 || strcmp(tab[i].getModel(), modelQuery) == 0 && (tab[i].getMoc() > mocMinQuery || tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 2)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 || strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery || tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 3)
- {
- for(i=0; i<licznosc;i++)
- {
- if((strcmp(tab[i].getMarka(), markaQuery) == 0 || !(strcmp(tab[i].getModel(), modelQuery)) == 0 && (tab[i].getMoc() > mocMinQuery || tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else
- {
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getMarka(), markaQuery) == 0 || strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery || tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- }
- else if(operatory[0] == 3)
- {
- if(operatory[1] == 1)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 2)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 3)
- {
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- }
- else
- {
- if(operatory[1] == 1)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 2)
- {
- for(i=0; i<licznosc;i++)
- {
- if(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else if(operatory[1] == 3)
- {
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 && (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- else
- {
- for(i=0; i<licznosc;i++)
- {
- if(!(strcmp(tab[i].getMarka(), markaQuery) == 0 && strcmp(tab[i].getModel(), modelQuery) == 0 || (tab[i].getMoc() > mocMinQuery && tab[i].getMoc() < mocMaxQuery)))
- {
- found[licznoscFound]=tab[i];
- licznoscFound++;
- }
- }
- }
- }
- }
- //cout<<"Licznosc: "<<licznosc<<endl;
- //cout<<"licznoscFound: "<<licznoscFound<<endl;
- //cout<<"current: "<<current<<endl;
- //cout<<"currentFound: "<<currentFound<<endl;
- if(licznoscFound)
- {
- currentFound=0;
- return 1;
- }
- else
- return 0;
- }
- int bazatowar::sortdb(int sortBy, bool AscDesc, int rozmiar)
- {
- if(sortBy)
- {
- current=0;
- bool warta = true;
- bazatowar tmp(rozmiar);
- if(sortBy == 1)
- {
- if(AscDesc==1)
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if((strcmp(tab[i].getMarka(), tab[i+1].getMarka())) > 0)
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 1;
- }
- else
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if((strcmp(tab[i].getMarka(), tab[i+1].getMarka())) < 0)
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 2;
- }
- }
- if(sortBy == 2)
- {
- if(AscDesc==1)
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if((strcmp(tab[i].getModel(), tab[i+1].getModel())) > 0)
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 3;
- }
- else
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if((strcmp(tab[i].getModel(), tab[i+1].getModel())) < 0)
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 4;
- }
- }
- if(sortBy == 3)
- {
- if(AscDesc==1)
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getMoc() > tab[i+1].getMoc())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 5;
- }
- else
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getMoc() < tab[i+1].getMoc())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 6;
- }
- }
- if(sortBy == 4)
- {
- if(AscDesc==1)
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getRocznik() > tab[i+1].getRocznik())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 7;
- }
- else
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getRocznik() < tab[i+1].getRocznik())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 8;
- }
- }
- if(sortBy == 5)
- {
- if(AscDesc==1)
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getCena() > tab[i+1].getCena())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 9;
- }
- else
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getCena() < tab[i+1].getCena())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 10;
- }
- }
- if(sortBy == 6)
- {
- if(AscDesc==1)
- {
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getSztuk() > tab[i+1].getSztuk())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 11;
- }
- else
- for(int przebieg=1; (przebieg<rozmiar && warta==true); przebieg++)
- {
- warta=false;
- for(int i=0; i<rozmiar-1; i++)
- if(tab[i].getSztuk() < tab[i+1].getSztuk())
- {
- tmp.tab[i]=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=tmp.tab[i];
- warta=true;
- }
- }
- return 12;
- }
- }
- else
- return 0;
- }
- void bazatowar::setPasswd(string password)
- {
- strcpy(passwd,password.c_str());
- }
- char* bazatowar::getPasswd()
- {
- return passwd;
- }
- string bazatowar::encryptPasswd(string password)
- {
- return picosha2::hash256_hex_string(password);
- }
- string bazatowar::readPasswdFromFile(int fileIndex, string* fileList)
- {
- long lSize;
- char *buffer;
- size_t result;
- char dbpath[100];
- strcpy(dbpath, "D:\\OneDrive\\Dev\\Projekt\\Bazy\\");
- char* baza = new char[100];
- strcpy(baza, "");
- strcpy(baza, dbpath);
- cout<<fileList[fileIndex-1].c_str();
- strcat(baza, fileList[fileIndex-1].c_str());
- cout<<"baza: "<<baza<<endl;
- cout<<"baza: "<<baza;
- cout<<"readPassFromFile pass: "<<passwd;
- if(zp = fopen(baza, "rb"))
- {
- fseek(zp, 0, SEEK_END);
- lSize = ftell (zp);
- rewind (zp);
- buffer = (char*) malloc(sizeof(char)*lSize);
- if(buffer == NULL) return "";
- currentFileName = (fileList[fileIndex-1].c_str());
- //openFile pliku baza.db
- fread(&rozmiar, sizeof(rozmiar), 1, zp); //odczytywanie rozmiaru
- fread(&licznosc, sizeof(licznosc), 1, zp); //odczytywanie licznosci
- for(i=0; i<rozmiar; i++) //odczytywanie nazwy ceny i sztuk pętlą przez metody get
- {
- fread(&tab[i], sizeof(tab[i]),1, zp);
- }
- fread(buffer, 1, lSize,zp);
- //if(result != lSize) return "";
- passwd = buffer;
- cout<<"passwd w openfile: "<<passwd<<endl;
- current=0;
- fclose(zp);
- return baza;
- }
- else
- return "";
- //DRUGA METODA
- fclose(zp);
- }
- main()
- {
- // towar tab[MAX], t2, tablica[5];
- char n[L], m[L], zn, mark[L], mod[L], menu, fileName[L], newFileName[L];
- float c, moc, min, max;
- int sz, i, rozmiar, r, fileIndex;
- string* fileList, dbpath = "D:\\OneDrive\\Dev\\Projekt\\Bazy\\";
- //cout<<"Podaj ilosc rekordow: ";
- //cin>>rozmiar;
- //cin.ignore();
- rozmiar = 50;
- bazatowar baza(rozmiar);
- do
- {
- //gotoxy(1, 1);
- cout<<"1. Plik"<<endl;
- //gotoxy(10, 1);
- cout<<"2. Baza"<<endl;
- //gotoxy(20, 1);
- cout<<"3. Wyszukaj"<<endl;
- //cout<<"1. Czyszczenie"<<endl;
- //cout<<"2. Czytanie"<<endl;
- //cout<<"3. Drukowanie"<<endl;
- cout<<"4. Wartosc"<<endl;
- cout<<"0. Wyjscie z programu"<<endl;
- zn=getch();
- system("CLS");
- switch(zn)
- {
- case '1':
- do
- {
- cout<<"----- Menu Plik -----"<<endl;
- cout<<"1. Nowy plik."<<endl;
- cout<<"2. Dodaj rekord do bazy."<<endl;
- cout<<"----------------"<<endl;
- cout<<"3. Pokaz liste plikow."<<endl;
- cout<<"4. Otworz plik."<<endl;
- cout<<"----------------"<<endl;
- cout<<"5. Zapisz plik"<<endl;
- cout<<"6. Zapisz jako nowy plik"<<endl;
- cout<<"----------------"<<endl;
- cout<<"7. Usun plik"<<endl;
- cout<<"0. Powrot"<<endl;
- menu=getch();
- system("CLS");
- switch(menu)
- {
- case '1':
- {
- char c;
- cout<<"Podaj ilosc rekordow nowej bazy: ";
- do
- {
- cin>>rozmiar;
- cin.ignore();
- if(rozmiar<=0)
- cout<<"Podaj rozmiar wiekszy niz 0"<<endl;
- else
- {
- bazatowar baza(rozmiar);
- baza.czysccalosc();
- }
- } while(rozmiar<=0);
- baza.setRozmiar(rozmiar);
- baza.setCurrent(-1);
- do
- {
- cout<<"Czy chcesz od razu dodac rekordy? 1. Tak | 0. Nie"<<endl;
- c=getch();
- } while (c!='1' && c!='0');
- if(c=='1')
- {
- for(int i=0;i<rozmiar; i++)
- {
- char n[L],m[L];
- int moc, r, sz;
- float c;
- cout<<"Podaj rekord nr: "<<i+1<<". Pozostalo do konca: "<<rozmiar-(i+1)<<endl;
- do
- {
- cout<<"Marka: ";
- gets(n);
- if(strlen(n)==0)
- cout<<"Marka nie moze byc pusta."<<endl;
- } while (strlen(n)==0);
- do
- {
- cout<<"Model: ";
- gets(m);
- if(strlen(m)==0)
- cout<<"Model nie moze byc pusty."<<endl;
- } while (strlen(m)==0);
- do
- {
- cout<<"Moc: ";
- cin>>moc;
- if(moc<=0)
- cout<<"Moc musi byc wieksza niz 0"<<endl;
- } while (moc<=0);
- do
- {
- cout<<"Rocznik: ";
- cin>>r;
- if(r<=1950)
- cout<<"Rocznik musi byc wiekszy niz 1950"<<endl;
- } while(r<=1950);
- do
- {
- cout<<"Cena: ";
- cin>>c;
- if(c<=0)
- cout<<"Cena musi byc wieksza niz 0"<<endl;
- } while (c<=0);
- do
- {
- cout<<"Sztuk: ";
- cin>>sz;
- if(sz<0)
- cout<<"Ilosc sztuk musi byc rowna lub wieksza od 0"<<endl;
- } while (sz<0);
- cout<<"Rekord nr: "<<i+1<<" dodany z sukcesem."<<endl;
- cin.ignore();
- baza.dodajkolejny(n,m,c,moc,r,sz);
- baza.setLicznosc(i+1);
- }
- }
- } // koniec case 1 - nowy plik
- break;
- case '2':
- {
- int licznosc = baza.getLicznosc();
- if(licznosc < rozmiar)
- {
- char n[L],m[L];
- int moc, r, sz;
- float c;
- i=baza.getLicznosc();
- cout<<"Podaj rekord nr: "<<i+1<<". Pozostalo do konca: "<<rozmiar-(i+1)<<endl;
- do
- {
- cout<<"Marka: ";
- gets(n);
- if(strlen(n)==0)
- cout<<"Marka nie moze byc pusta."<<endl;
- } while (strlen(n)==0);
- do
- {
- cout<<"Model: ";
- gets(m);
- if(strlen(m)==0)
- cout<<"Model nie moze byc pusty."<<endl;
- } while (strlen(m)==0);
- do
- {
- cout<<"Moc: ";
- cin>>moc;
- if(moc<=0)
- cout<<"Moc musi byc wieksza niz 0"<<endl;
- } while (moc<=0);
- do
- {
- cout<<"Rocznik: ";
- cin>>r;
- if(r<=1950)
- cout<<"Rocznik musi byc wiekszy niz 1950"<<endl;
- } while(r<=1950);
- do
- {
- cout<<"Cena: ";
- cin>>c;
- if(c<=0)
- cout<<"Cena musi byc wieksza niz 0"<<endl;
- } while (c<=0);
- do
- {
- cout<<"Sztuk: ";
- cin>>sz;
- if(sz<0)
- cout<<"Ilosc sztuk musi byc rowna lub wieksza od 0"<<endl;
- } while (sz<0);
- cout<<"Rekord nr: "<<i+1<<" dodany z sukcesem."<<endl;
- cin.ignore();
- baza.dodajkolejny(n,m,c,moc,r,sz);
- }
- else
- {
- int currentSize = baza.getRozmiar();
- int currentRecords = baza.getLicznosc();
- char c = '0';
- do
- {
- cout<<"Baza jest pelna. Obecny rozmiar: "<<currentSize<<". Ilosc dodanych elementow: "<<currentRecords<<endl;
- cout<<"Powiekszyc rozmiar bazy? 1. Tak | 0. Nie"<<endl;
- c=getch();
- } while (c != '0' && c != '1');
- if(c == '1')
- {
- int newSize;
- currentSize = baza.getRozmiar();
- bazatowar temp(currentSize);
- temp = baza;
- cout<<"Podaj nowy rozmiar bazy: "<<endl;
- do
- {
- cin>>newSize;
- if(newSize <= currentSize)
- {
- cout<<"Nowy rozmiar musi byc wiekszy!"<<endl;
- cout<<"Podaj nowy rozmiar bazy: "<<endl;
- }
- } while(newSize <= currentSize);
- baza = temp;
- do
- {
- cout<<"Rozmiar bazy zostal powiekszony."<<endl;
- cout<<"Czy chcesz dodac kolejny rekord? 1. Tak | 0. Nie"<<endl;
- c=getch();
- } while (c != '1' && c != '0');
- if(c == '1')
- {
- int addElements;
- do
- {
- cout<<"Ile rekordow chcesz dodac? Obecny rozmiar: "<<newSize<<". Ilosc elementow: "<<currentRecords<<"."<<endl;
- cout<<"Maksymalna liczba nowych elementow "<<newSize-currentRecords<<"."<<endl;
- cin>>addElements;
- cin.ignore();
- } while(addElements > (newSize-currentRecords));
- int newTotalRecords = currentRecords+addElements;
- baza.setRozmiar(newSize);
- baza.setLicznosc(currentRecords);
- rozmiar=newSize;
- for(currentRecords; currentRecords<newTotalRecords; currentRecords++)
- {
- char n[L],m[L];
- int moc, r, sz;
- float c;
- cout<<"Podaj rekord nr: "<<currentRecords+1<<". Pozostalo do konca: "<<newTotalRecords-currentRecords-1<<endl;
- do
- {
- cout<<"Marka: ";
- gets(n);
- if(strlen(n)==0)
- cout<<"Marka nie moze byc pusta."<<endl;
- } while (strlen(n)==0);
- do
- {
- cout<<"Model: ";
- gets(m);
- if(strlen(m)==0)
- cout<<"Model nie moze byc pusty."<<endl;
- } while (strlen(m)==0);
- do
- {
- cout<<"Moc: ";
- cin>>moc;
- if(moc<=0)
- cout<<"Moc musi byc wieksza niz 0"<<endl;
- } while (moc<=0);
- do
- {
- cout<<"Rocznik: ";
- cin>>r;
- if(r<=1950)
- cout<<"Rocznik musi byc wiekszy niz 1950"<<endl;
- } while(r<=1950);
- do
- {
- cout<<"Cena: ";
- cin>>c;
- if(c<=0)
- cout<<"Cena musi byc wieksza niz 0"<<endl;
- } while (c<=0);
- do
- {
- cout<<"Sztuk: ";
- cin>>sz;
- if(sz<0)
- cout<<"Ilosc sztuk musi byc rowna lub wieksza od 0"<<endl;
- } while (sz<0);
- cout<<"Rekord nr: "<<i+1<<" dodany z sukcesem."<<endl;
- cin.ignore();
- baza.dodajkolejny(n,m,c,moc,r,sz);
- }
- cout<<"rozmiar: "<<rozmiar;
- cout<<(currentRecords);
- //cout<<"licznosc: "<<licznosc;
- baza.drukujcalosc();
- //temp.drukujcalosc();
- }
- }
- }
- break;
- }
- case '3':
- {
- string* fileList = baza.getFileList();
- baza.getFileList(); // wyswietlanie listy plikow
- cout<<"Pliki znajdujace sie w folderze baz danych: "<<endl;
- for(int i=0; (i<L && fileList[i] != ""); i++)
- {
- cout<<i+1<<". "<<fileList[i]<<endl;
- }
- cout<<"-----------------------------"<<endl;
- }
- break;
- case '4':
- {
- string* fileList = baza.getFileList();
- baza.getFileList(); // wyswietlanie listy plikow
- for(int i=0; (i<L && fileList[i] != ""); i++)
- cout<<i+1<<". "<<fileList[i]<<endl;
- cout<<"-----------------------------"<<endl;
- cout<<"Podaj numer pliku ktory chcesz otworzyc:"<<endl;
- do
- {
- cin>>fileIndex;
- cin.ignore();
- if(fileIndex<1 && fileIndex >=L)
- cout<<"Podaj numer od 0 do "<<L<<"."<<endl;
- } while (fileIndex<1 && fileIndex >=L);
- fileList = baza.getFileList();
- baza.readPasswdFromFile(fileIndex, fileList);
- char *password;
- password = baza.getPasswd();
- cout<<"password w main: "<<password;
- if(strcmp(password, ""))
- {
- char *userpass;
- userpass = new char[200];
- cout<<"Podaj haslo do pliku: "<<endl;
- cin>>userpass;
- strcpy(userpass, baza.encryptPasswd(userpass).c_str());
- cout<<"passwd: "<<password<<endl;
- cout<<"userpass: "<<userpass<<endl;
- if(strcmp(userpass, password) == 0)
- {
- if(baza.openFileFromList(fileIndex, fileList) != "")
- {
- string dbfile = fileList[fileIndex-1];
- baza.setdbFileName(dbfile);
- cout<<"passwd: "<<password;
- cout<<"Plik: "<<dbfile<<" otwarty z sukcesem"<<endl;
- cout<<"---------------------------------"<<endl<<endl;
- }
- else
- {
- cout<<"passwd: "<<password;
- cout<<"Plik nie zostal otwarty."<<endl;
- }
- //baza.openFile();
- } //otwieranie pliku z listy
- else
- {
- cout<<"Bledne haslo."<<endl;
- baza.czysccalosc();
- }
- }
- else
- {
- cout<<"brak hasla"<<endl;
- if(baza.openFileFromList(fileIndex, fileList) != "")
- {
- cout<<"passwd: "<<password;
- string dbfile = fileList[fileIndex-1];
- baza.setdbFileName(dbfile);
- cout<<"Plik: "<<dbfile<<" otwarty z sukcesem"<<endl;
- cout<<"---------------------------------"<<endl<<endl;
- }
- else
- {
- cout<<"passwd: "<<password;
- cout<<"Plik nie zostal otwarty."<<endl;
- }
- }
- }
- break;
- case '5':
- {
- char c;
- c='0';
- string* fileList = baza.getFileList();
- bool fileExists = false;
- i = 0;
- string fileName = baza.getdbFileName();
- //cout<<"fileName: "<<fileName;
- if(fileName == "")
- {
- cout<<"Baza nie zostala dotychczas zapisana. Podaj nazwe nowego pliku: "<<endl;
- cin>>fileName;
- fileName = baza.addSuffix(fileName);
- baza.setdbFileName(fileName);
- //cout<<baza.addSuffix(fileName);
- int iloscPlikow = baza.getFileAmount();
- do
- {
- for(i=0; i<iloscPlikow; i++)
- if(fileName == fileList[i])
- {
- fileExists = true;
- }
- i++;
- //cout<<"i: "<<i;
- } while((i < iloscPlikow) && fileExists == false);
- //cout<<"fileExists: "<<fileExists;
- if(fileExists == true)
- {
- cout<<"Plik o takiej nazwie juz istnieje. Czy chcesz nadpisac? 1. Tak | 0. Nie"<<endl;
- c=getch();
- if(c == '1')
- {
- if(baza.saveFile(fileName))
- {
- cout<<"Plik "<<fileName<<" zapisany z sukcesem."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- else
- {
- //cout<<"fileName: "<<fileName<<endl;
- cout<<"Wystapil blad zapisu."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- }
- else
- {
- cout<<"Plik nie zostal zapisany."<<endl;
- }
- }
- else
- {
- if(baza.saveFile(fileName))
- {
- system("CLS");
- cout<<"Plik "<<fileName<<" zapisany z sukcesem."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- else
- {
- system("CLS");
- cout<<"Wystapil blad zapisu."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- }
- }
- else
- {
- int iloscPlikow = baza.getFileAmount();
- do
- {
- if(fileName == fileList[i])
- {
- fileExists = true;
- }
- i++;
- //cout<<"i: "<<i;
- } while((i < iloscPlikow) && fileExists == false);
- if(fileExists == true)
- {
- cout<<"Plik o takiej nazwie juz istnieje. Czy chcesz nadpisac? 1. Tak | 0. Nie"<<endl;
- c=getch();
- if(c == '1')
- {
- if(baza.saveFile(fileName))
- {
- system("CLS");
- cout<<"Plik "<<fileName<<" zapisany z sukcesem."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- else
- {
- system("CLS");
- //cout<<"fileName: "<<fileName<<endl;
- cout<<"Wystapil blad zapisu."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- }
- else
- {
- system("CLS");
- cout<<"Plik nie zostal zapisany."<<endl;
- }
- }
- else
- {
- //cout<<"fileName: "<<fileName<<endl;
- //cout<<"currentFileName: "<<currentFileName;
- //cout<<"baza.saveFile():"<<baza.saveFile(fileName);
- if(baza.saveFile(fileName))
- {
- system("CLS");
- cout<<"Plik "<<fileName<<" zapisany z sukcesem."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- else
- {
- system("CLS");
- cout<<"Wystapil blad zapisu."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- //cout<<"fileName: "<<fileName[fileIndex-1];
- }
- }
- break;
- }
- case '6':
- {
- string* fileList = baza.getFileList();
- int iloscPlikow = baza.getFileAmount();
- bool fileExists = false;
- i=0;
- char newFileName[L];
- char newdbName[L];
- cout<<"Podaj nazwe nowego pliku: "<<endl;
- gets(newFileName);
- strcpy(newdbName, baza.addSuffix(newFileName).c_str());
- do
- {
- if(newFileName == fileList[i])
- {
- fileExists = true;
- }
- i++;
- //cout<<"i: "<<i;
- } while((i < iloscPlikow) && fileExists == false);
- if(fileExists == true)
- {
- cout<<"Plik o takiej nazwie juz istnieje. Czy chcesz nadpisac? 1. Tak | 0. Nie"<<endl;
- c=getch();
- if(c == '1')
- {
- char p;
- do
- {
- cout<<"Czy chcesz nadac plikowi haslo? 1. Tak | 0. Nie"<<endl;
- p=getch();
- } while(p!='1' && p!='0');
- if(p=='1')
- {
- string passwd;
- cout<<"Podaj haslo"<<endl;
- cin>>passwd;
- passwd = baza.encryptPasswd(passwd);
- baza.setPasswd(passwd);
- }
- if(baza.saveFileAs(newFileName))
- {
- //system("CLS");
- cout<<"Plik "<<newFileName<<" zapisany z sukcesem."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- else
- {
- //system("CLS");
- //cout<<"fileName: "<<fileName<<endl;
- cout<<"Wystapil blad zapisu."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- }
- else
- {
- system("CLS");
- cout<<"Plik nie zostal zapisany."<<endl;
- }
- }
- else
- {
- //cout<<"fileName: "<<fileName<<endl;
- //cout<<"currentFileName: "<<currentFileName;
- //cout<<"baza.saveFile():"<<baza.saveFile(fileName);
- if(baza.saveFileAs(newFileName))
- {
- // system("CLS");
- cout<<"Plik "<<newFileName<<" zapisany z sukcesem."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- else
- {
- //system("CLS");
- cout<<"Wystapil blad zapisu."<<endl;
- cout<<"------------------------------------"<<endl<<endl;
- }
- //cout<<"fileName: "<<fileName[fileIndex-1];
- }
- break;
- }
- case '7':
- {
- string fileNameToRemove;
- char c;
- fileNameToRemove = baza.getFileName();
- if(fileNameToRemove =="")
- {
- string* fileList = baza.getFileList();
- baza.getFileList(); // wyswietlanie listy plikow
- for(int i=0; (i<L && fileList[i] != ""); i++)
- cout<<i+1<<". "<<fileList[i]<<endl;
- cout<<"-----------------------------"<<endl;
- cout<<"Podaj numer pliku ktory chcesz otworzyc:"<<endl;
- do
- {
- cin>>fileIndex;
- cin.ignore();
- if(fileIndex<1 && fileIndex >=L)
- cout<<"Podaj numer od 0 do "<<L<<"."<<endl;
- } while (fileIndex<1 && fileIndex >=L);
- fileList = baza.getFileList();
- system("CLS");
- if(baza.openFileFromList(fileIndex, fileList) != "")
- {
- string dbfile = fileList[fileIndex-1];
- baza.setdbFileName(dbfile);
- cout<<"Plik: "<<dbfile<<" otwarty z sukcesem"<<endl;
- cout<<"---------------------------------"<<endl<<endl;
- }
- else
- {
- cout<<"Plik nie zostal otwarty."<<endl;
- }
- //baza.openFile();
- } //otwieranie pliku z listy
- fileNameToRemove = baza.getFileName();
- do
- {
- cout<<"Czy na pewno chcesz usunac plik: "<<fileNameToRemove<<" ? 1. Tak | 0. Nie"<<endl;
- c=getch();
- if(c == '1')
- {
- if(baza.removeFile(fileNameToRemove))
- cout<<"Plik"<<fileNameToRemove<<" zostal usuniety."<<endl;
- else
- cout<<"Wystapil blad usuwania"<<endl;
- }
- else
- cout<<"Plik nie zostal usuniety. "<<endl;
- } while(c != '0' && c != '1');
- }
- case '0':
- menu=0;
- break;
- } //koniec swich od menu Plik
- } while (menu != 0);
- break;
- case '2':
- {
- do
- {
- cout<<"----- Menu Baza -----"<<endl;
- cout<<"1. Przegladaj."<<endl;
- cout<<"2. Wyczysc."<<endl;
- cout<<"3. Sortowanie."<<endl;
- cout<<"0. Powrot"<<endl;
- menu=getch();
- system("CLS");
- switch(menu)
- {
- case '1':
- {
- baza.showCurrent(50, 1);
- do
- {
- gotoxy(1,1);
- cout<<"----- Menu Przegladaj -----"<<endl;
- cout<<"1. Nastepny."<<endl;
- cout<<"2. Poprzedni"<<endl;
- cout<<"3. Przejdz do"<<endl;
- cout<<"4. Usun"<<endl;
- cout<<"0. Powrot"<<endl;
- menu=getch();
- system("CLS");
- switch(menu)
- {
- case '1' :
- {
- baza.next();
- baza.showCurrent(50, 1);
- break;
- }
- case '2' :
- {
- baza.previous();
- baza.showCurrent(50, 1);
- break;
- }
- case '3':
- {
- int nr;
- cout<<"Podaj numer elementu do ktorego chcesz przejsc: "<<endl;
- cin>>nr;
- cin.ignore();
- baza.setCurrent(nr-1);
- baza.showCurrent(50,1);
- break;
- }
- case '4':
- {
- baza.deleteCurrent();
- baza.showCurrent(50, 1);
- break;
- }
- }
- } while(menu != '0');
- break;
- }//end switch przegladaj
- case '2':
- {
- int confirmation;
- do
- {
- cout<<"Czy na pewno chcesz wyczyscic baze z pamieci? 1. Tak | 0. Nie"<<endl;
- cin>>confirmation;
- if(confirmation)
- baza.czysccalosc();
- else
- cout<<"Baza zostala usunieta z pamieci."<<endl;
- } while(confirmation != 1 && confirmation != 0);
- }
- case '3':
- {
- int licznosc = baza.getLicznosc();
- if(licznosc>0)
- {
- bool ascdesc; char c;
- int sortby =-1;
- do
- {
- cout<<"Podaj wg ktorego kryterium chcesz sortowac: "<<endl;
- cout<<"1. Model"<<endl;
- cout<<"2. Marka"<<endl;
- cout<<"3. Moc"<<endl;
- cout<<"4. Rocznik"<<endl;
- cout<<"5. Cena"<<endl;
- cout<<"6. Ilosc"<<endl;
- cout<<"0. Powrot"<<endl;
- c=getch();
- sortby=c-'0';
- } while(sortby < 1 && sortby > 6);
- if(sortby)
- {
- do
- {
- system("CLS");
- cout<<"Jak chcesz sortowac? 1. Rosnaco | 2. Malejaco"<<endl;
- c=getch();
- if(c=='1')
- ascdesc=true;
- else
- ascdesc=false;
- } while(c!= '1' && c!='2');
- }
- int sortcode = baza.sortdb(sortby, ascdesc, licznosc);
- cout<<"sortcode: "<<sortcode;
- if(sortby)
- {
- system("CLS");
- switch(sortcode)
- {
- case 0 : cout<<"Wystapil blad. Nie posortowano"<<endl; break;
- case 1 : cout<<"Posortowano rosnaco wedlug marki."<<endl; break;
- case 2 : cout<<"Posortowano malejaco wedlug marki."<<endl; break;
- case 3 : cout<<"Posortowano rosnaco wedlug modelu."<<endl; break;
- case 4 : cout<<"Posortowano malejaco wedlug modelu."<<endl; break;
- case 5 : cout<<"Posortowano rosnaco wedlug mocy."<<endl; break;
- case 6 : cout<<"Posortowano malejaco wedlug mocy."<<endl; break;
- case 7 : cout<<"Posortowano rosnaco wedlug rocznika."<<endl; break;
- case 8 : cout<<"Posortowano malejaco wedlug rocznika."<<endl; break;
- case 9 : cout<<"Posortowano rosnaco wedlug ceny."<<endl; break;
- case 10 : cout<<"Posortowano malejaco wedlug ceny."<<endl; break;
- case 11 : cout<<"Posortowano rosnaco wedlug ilosci sztuk."<<endl; break;
- case 12 : cout<<"Posortowano malejaco wedlug ilosci sztuk."<<endl; break;
- }
- }
- }
- else
- {
- cout<<"Brak rekordow w bazie. Wczytaj z pliku lub dodaj nowa."<<endl;
- }
- break;
- }
- }
- } while(menu != '0');
- break;
- }
- case '3':
- {
- int licznosc = baza.getLicznosc();
- if(licznosc>0)
- {
- do
- {
- char c;
- bool kryt[5];
- int j=0;
- for (i=0; i<=5; i++)
- kryt[i]=false;
- do
- {
- system("CLS");
- cout<<"Podaj kryterium po ktorym chcesz wyszukiwac: "<<endl;
- cout<<"[x] - krytermium wybrane | [ ] - kryterium niewybrane"<<endl;
- cout<<"1. Marka "<<(kryt[0] ? "[x]" : "[ ]");
- cout<<" | 2. Model "<< (kryt[1] ? "[x]" : "[ ]");
- cout<<" | 3. Moc "<< (kryt[2] ? "[x]" : "[ ]");
- //cout<<" | 4. Rocznik "<< (kryt[3] ? "[x]" : "[ ]");
- //cout<<" | 5. Cena "<< (kryt[4] ? "[x]" : "[ ]");
- //cout<<" | 6. Ilosc "<< (kryt[5] ? "[x]" : "[ ]");
- cout<<" | 0. Zapisz kryteria"<<endl;
- c=getch();
- switch(c)
- {
- case '1' : if(kryt[0] == false) kryt[0] = true; else kryt[0] = false; break;
- case '2' : if(kryt[1] == false) kryt[1] = true; else kryt[1] = false; break;
- case '3' : if(kryt[2] == false) kryt[2] = true; else kryt[2] = false; break;
- case '4' : if(kryt[3] == false) kryt[3] = true; else kryt[3] = false; break;
- case '5' : if(kryt[4] == false) kryt[4] = true; else kryt[4] = false; break;
- case '6' : if(kryt[5] == false) kryt[5] = true; else kryt[5] = false; break;
- }
- } while (c != '0');
- system("CLS");
- short int ilosc_kryt = 0;
- short int oper[ilosc_kryt];
- for(i= 0; i<=5; i++)
- {
- oper[i]=-1; //zerowanie operatorow
- if(kryt[i])
- {
- ilosc_kryt++; //ilosc kryteriow
- }
- }
- //cout<<"Wybrane kryteria: "<<(kryt[0] ? "Marka " : "")<<(kryt[1] ? "Model " : "")<<(kryt[2] ? "Moc " : "")<<(kryt[3] ? "Rocznik " : "")<<(kryt[4] ? "Cena " : "")<<(kryt[5] ? "Ilosc ": "");
- do
- {
- i=0;
- cout<<"Wybrane kryteria: ";
- //wyswietlanie miejsca do operatorow
- if(kryt[0] == true)
- {
- cout<<"Model ";
- if((i+1)<ilosc_kryt)
- {
- if(oper[i] == -1)
- cout<<"["<<i+1<<"] ";
- else
- if(oper[i] == 1)
- cout<<"[Oraz] ";
- else if (oper[i] == 2)
- cout<<"[Lub] ";
- else if(oper[i] == 3)
- cout<<"[Oraz nie] ";
- else
- cout<<"[Lub nie] ";
- i++;
- }
- }
- if(kryt[1] == true)
- {
- cout<<"Marka ";
- if((i+1)<ilosc_kryt)
- {
- if(oper[i] == -1)
- cout<<"["<<i+1<<"] ";
- else
- if(oper[i] == 1)
- cout<<"[Oraz] ";
- else if (oper[i] == 2)
- cout<<"[Lub] ";
- else if(oper[i] == 3)
- cout<<"[Oraz nie] ";
- else
- cout<<"[Lub nie] ";
- i++;
- }
- }
- if(kryt[2] == true)
- {
- cout<<"Moc ";
- if((i+1)<ilosc_kryt)
- {
- if(oper[i] == -1)
- cout<<"["<<i+1<<"] ";
- else
- if(oper[i] == 1)
- cout<<"[Oraz] ";
- else if (oper[i] == 2)
- cout<<"[Lub] ";
- else if(oper[i] == 3)
- cout<<"[Oraz nie] ";
- else
- cout<<"[Lub nie] ";
- i++;
- }
- }
- if(kryt[3] == true)
- {
- cout<<"Rocznik ";
- if((i+1)<ilosc_kryt)
- {
- if(oper[i] == -1)
- cout<<"["<<i+1<<"] ";
- else
- if(oper[i] == 1)
- cout<<"[Oraz] ";
- else if (oper[i] == 2)
- cout<<"[Lub] ";
- else if(oper[i] == 3)
- cout<<"[Oraz nie] ";
- else
- cout<<"[Lub nie] ";
- i++;
- }
- }
- if(kryt[4] == true)
- {
- cout<<"Cena ";
- if((i+1)<ilosc_kryt)
- {
- if(oper[i] == -1)
- cout<<"["<<i+1<<"] ";
- else
- if(oper[i] == 1)
- cout<<"[Oraz] ";
- else if (oper[i] == 2)
- cout<<"[Lub] ";
- else if(oper[i] == 3)
- cout<<"[Oraz nie] ";
- else
- cout<<"[Lub nie] ";
- i++;
- }
- }
- if(kryt[5] == true)
- {
- cout<<"Ilosc ";
- if((i+1)<ilosc_kryt)
- {
- if(oper[i] == -1)
- cout<<"["<<i+1<<"] ";
- else
- if(oper[i] == 1)
- cout<<"[Oraz] ";
- else if (oper[i] == 2)
- cout<<"[Lub] ";
- else if(oper[i] == 3)
- cout<<"[Oraz nie] ";
- else
- cout<<"[Lub nie] ";
- i++;
- }
- }
- cout<<endl;
- if((j+1)<ilosc_kryt)
- {
- //cout<<"oper["<<i<<"]: before"<<oper[i];
- cout<<"Podaj operator nr "<<j+1<<endl<<" 1. Oraz | 2. Lub | 3. Oraz nie| 4. Lub nie"<<endl;
- c=getch();
- oper[j]=c-'0';
- j++;
- //cout<<"oper["<<i<<"]: after"<<oper[i];
- }
- else if((j+1)==ilosc_kryt)
- {
- j++;
- }
- } while((j+1)<ilosc_kryt);
- cout<<"Podawanie kryteriow zakonczone."<<endl;
- cout<<"Podaj wyszukiwane wartosci."<<endl;
- char markaQuery[L], modelQuery[L];
- float mocMinQuery = -1, mocMaxQuery = -1, cenaMinQuery = -1, cenaMaxQuery = -1;
- int rocznikMinQuery = -1, rocznikMaxQuery = -1, sztukMinQuery = -1, sztukMaxQuery = -1;
- for(i=0; i<=5; i++)
- {
- if(kryt[i])
- {
- if(i == 0)
- {
- cout<<"Podaj marke: ";
- gets(markaQuery);
- }
- if(i == 1)
- {
- cout<<"Podaj model: ";
- gets(modelQuery);
- }
- if(i == 2)
- {
- do
- {
- cout<<"Podaj moc minimalna: ";
- cin>>mocMinQuery;
- cout<<"Podaj moc maksymalna: ";
- cin>>mocMaxQuery;
- } while (mocMinQuery > mocMaxQuery);
- }
- if(i == 3)
- {
- do
- {
- cout<<"Podaj rocznik minimalny: ";
- cin>>rocznikMinQuery;
- cout<<"Podaj rocznik maksymalny: ";
- cin>>rocznikMaxQuery;
- cin.ignore();
- }while (rocznikMinQuery > rocznikMaxQuery);
- }
- if(i == 4)
- {
- do
- {
- cout<<"Podaj cene minimalna: ";
- cin>>cenaMinQuery;
- cout<<"Podaj cene maksymalna: ";
- cin>>cenaMaxQuery;
- }while (cenaMinQuery > cenaMaxQuery);
- }
- if(i == 5)
- {
- do
- {
- cout<<"Podaj ilosc sztuk minimalna: ";
- cin>>sztukMinQuery;
- cout<<"Podaj ilosc sztuk maksymalna: ";
- cin>>sztukMaxQuery;
- }while (sztukMinQuery > sztukMaxQuery);
- }
- }
- }
- //cout<<"Operator["<<i<<"]: "<<oper[i];
- //cout<<"----------"<<endl;
- //baza.searchAdvanced(kryt, oper, markaQuery, modelQuery, mocMinQuery, mocMaxQuery, rocznikMinQuery, rocznikMaxQuery, cenaMinQuery, cenaMaxQuery, sztukMinQuery, sztukMaxQuery);
- if(!baza.searchAdvanced(kryt, oper, markaQuery, modelQuery, mocMinQuery, mocMaxQuery, rocznikMinQuery, rocznikMaxQuery, cenaMinQuery, cenaMaxQuery, sztukMinQuery, sztukMaxQuery))
- {
- cout<<"nie znaleziono"<<endl;
- }
- else
- {
- system("CLS");
- baza.showCurrentFound(50, 1);
- gotoxy(1,1);
- cout<<"----- Menu Znalezione -----"<<endl;
- cout<<"1. Nastepny znaleziony."<<endl;
- cout<<"2. Poprzedni znaleziony."<<endl;
- cout<<"3. Usun znaleziony."<<endl;
- cout<<"0. Powrot."<<endl;
- do
- {
- menu=getch();
- switch(menu)
- {
- case '1':
- {
- baza.nextFound();
- baza.showCurrentFound(50,1);
- break;
- }
- case '2':
- {
- baza.previousFound();
- baza.showCurrentFound(50,1);
- break;
- }
- case '3':
- {
- baza.deleteCurrentFound();
- baza.showCurrentFound(50,1);
- }
- }
- } while(menu != '0');
- break;
- }
- } while(menu != '0');
- }
- else
- cout<<"Brak rekordow w bazie. Wczytaj z pliku lub dodaj nowa."<<endl;
- break;
- }
- case '4': baza.wartosci();
- cout<<"Suma wszystkich wartosci= "<<baza.sumawartosc()<<endl;
- break;
- case '5': cout<<"Zapisano do pliku"<<endl;
- cout<<"Podaj nazwe:"<<endl;
- cin>>newFileName;
- baza.saveFileAs(newFileName);
- break;
- case '6': cout<<"Wczytano z pliku"<<endl;
- baza.openFile();
- break;
- case '7': baza.deleteCurrent();
- break;
- case '8': baza.showCurrent(50,10);
- break;
- case '9':
- switch(baza.menuEdytuj())
- {
- case '1' : cout<<"Podaj rocznik";
- int rocznik = 2005;
- //baza.setRocznikCurrent(rocznik);
- break;
- }
- break;
- case 'a': baza.next();
- baza.showCurrent(50,10);
- break;
- case 'A': baza.nextFound();
- baza.showCurrentFound(50,10);
- break;
- case 'b': baza.previous();
- baza.showCurrent(50,10);
- break;
- case 'B': baza.previousFound();
- baza.showCurrentFound(50,10);
- break;
- case 'c': cout<<"Podaj numer elementu"<<endl;
- cin>>i;
- baza.setCurrent(i);
- break;
- case 's': cout<<"Podaj cene minimalna: ";
- cin>>min;
- cout<<"Podaj cene maksymalna: ";
- cin>>max;
- if(!baza.searchCena(min, max))
- cout<<"Nic nie znalazlem"<<endl;
- else
- baza.showCurrentFound(50, 10);
- break;
- case 'z': do
- {
- cout<<"Marka: ";
- gets(mark);
- if(strlen(mark)==0)
- cout<<"Marka nie moze byc pusta."<<endl;
- } while (strlen(mark)==0);
- if(!baza.searchMarka(mark))
- cout<<"Nic nie znalazlem"<<endl;
- else
- baza.showCurrentFound(50,10);
- break;
- case 'x': do
- {
- cout<<"Marka: ";
- gets(mark);
- if(strlen(mark)==0)
- cout<<"Marka nie moze byc pusta."<<endl;
- } while (strlen(mark)==0);
- do
- {
- cout<<"Podaj cene minimalna: ";
- cin>>min;
- cout<<"Podaj cene maksymalna: ";
- cin>>max;
- } while(min>max);
- if(!baza.searchMarka(mark) && !baza.searchCena(min, max))
- cout<<"Nic nie znalazlem"<<endl;
- else
- baza.showCurrentFound(50,10);
- break;
- case 'S': cout<<"Podaj numer elementu"<<endl;
- cin>>i;
- baza.showCurrentFound(50, 10);
- break;
- case '0': cout<<"Koniec"<<endl;
- getchar();
- break;
- }
- } while (zn!='0');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement