Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.95 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <string.h>
  5. #include <windows.h>
  6. #include <dirent.h>
  7.  
  8. #define L 20
  9. #define MAX 5
  10.  
  11. using namespace std;
  12.  
  13. void gotoxy(int x, int y)
  14. {
  15. COORD c;
  16. c.X = x-1;
  17. c.Y = y-1;
  18. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
  19. }
  20. void piszMenu(int x, int y)
  21. {
  22. gotoxy(x,y);
  23. cout<<"---------MENU-----------"<<endl;
  24. cout<<"1. Czyszczenie"<<endl;
  25. cout<<"2. Czytanie"<<endl;
  26. cout<<"3. Drukowanie"<<endl;
  27. cout<<"4. Wartosc"<<endl;
  28. cout<<"5. Zapisz do pliku"<<endl;
  29. cout<<"6. Wczytaj z pliku"<<endl;
  30. cout<<"7. DeleteCurrent"<<endl;
  31. cout<<"8. ShowCurrent"<<endl;
  32. cout<<"a. Next"<<endl;
  33. cout<<"b. Previous"<<endl;
  34. cout<<"c. SetCurrent"<<endl;
  35. cout<<"0. Wyjscie z programu"<<endl;
  36.  
  37. }
  38. class towar
  39. {
  40. protected:
  41. char marka[L], model[L];
  42. float cena, moc;
  43. int sztuk, rocznik;
  44. public:
  45. towar();
  46. void czysc();
  47. void pobierz(char *marka, char *model, float cena, float moc, int rocznik, int sztuk);
  48. void drukuj();
  49. float wartosc();
  50. //nowe rzeczy
  51. void piszXY(int x, int y);
  52. // uzupełniona o setery i getery
  53. void setMarka(char *naz);
  54. void setModel(char *model);
  55. void setCena(float cen);
  56. void setMoc(float moc);
  57. void setRocznik(int rocznik);
  58. void setSztuk(int szt);
  59. char* getMarka();
  60. char* getModel();
  61. float getCena();
  62. float getMoc();
  63. int getSztuk();
  64. int getRocznik();
  65.  
  66. };
  67.  
  68. class bazatowar:public towar
  69. {
  70. protected:
  71. towar *tab; // Wskazanie do obiektu (ÓW) towar
  72. towar *trash;
  73. towar *found;
  74. int rozmiar;
  75. int licznosc;
  76. int licznoscFound;
  77. int licznoscTrash;
  78. int current;
  79. int currentFound;
  80. int currentTrash;
  81. FILE *zp;
  82. private:
  83. int i;
  84. public:
  85. bazatowar(int rozmiar);
  86. void dodajkolejny(char *marka, char *model, float cena, float moc, int rocznik, int sztuk);
  87. void czysccalosc();
  88. void drukujcalosc();
  89. void wartosci();
  90. float sumawartosc();
  91. void saveFile();
  92. void openFile();
  93. void next();
  94. void previous();
  95. void showCurrent(int x, int y);
  96. void setCurrent(int index);
  97. void deleteCurrent();
  98. int menuEdytuj();
  99. void setRocznikCurrent(int rok);
  100. bool searchCena(float min, float max);
  101. bool searchMarka(char *marka);
  102. bool searchMarkaCena(char *marka, float min, float max);
  103. void showCurrentFound(int x, int y);
  104. void nextFound();
  105. void previousFound();
  106. string** getFileList();
  107. bool hasSuffix(const string& s, const string& suffix);
  108. string openFileFromList(char fname[L]);
  109. bool fileExists(char fname[L]);
  110. };
  111.  
  112. towar::towar()
  113. {
  114. strcpy(marka, " "); //konstruktor zwykle powinien czyscic
  115. strcpy(model, " ");
  116. moc=0;
  117. cena = 0;
  118. sztuk = 0;
  119. rocznik=0;
  120. }
  121. void towar::czysc()
  122. {
  123. strcpy(marka, " ");
  124. strcpy(model, " ");
  125. moc=0;
  126. cena = 0;
  127. sztuk = 0;
  128. rocznik=0;
  129. }
  130. void towar::pobierz(char *marka, char *model, float cena, float moc, int rocznik, int sztuk)
  131. {
  132. strcpy(this->marka, marka);
  133. strcpy(this->model, model);
  134. this->cena = cena;
  135. this->moc = moc;
  136. this->sztuk = sztuk;
  137. this->rocznik = rocznik;
  138.  
  139. }
  140. void towar::drukuj()
  141. {
  142. cout<<"Marka: "<<marka<<endl;
  143. cout<<"Model: "<<model<<endl;
  144. cout<<"Moc: "<<moc<<endl;
  145. cout<<"Cena: "<<cena<<endl;
  146. cout<<"Rocznik: "<<rocznik<<endl;
  147. cout<<"Ilosc: "<<sztuk<<endl;
  148. cout<<"------------------------"<<endl;
  149. //cout<<marka<<" "<<model<<" "<<moc<<" "<<cena<<" "<<sztuk<<""<<endl;
  150. }
  151. float towar::wartosc()
  152. {
  153. return cena*sztuk;
  154. }
  155.  
  156. void towar::setMarka(char *naz)
  157. {
  158. strcpy(marka, naz);
  159. }
  160. void towar::setModel(char *mod)
  161. {
  162. strcpy(model, mod);
  163. }
  164. void towar::setMoc(float moc)
  165. {
  166. this->moc=moc;
  167. }
  168. void towar::setCena(float cen)
  169. {
  170. cena = cen;
  171. }
  172. void towar::setSztuk(int szt)
  173. {
  174. sztuk = szt;
  175. }
  176. void towar::setRocznik(int rocznik)
  177. {
  178. this->rocznik=rocznik;
  179. }
  180. char* towar::getMarka()
  181. {
  182. return marka;
  183. }
  184. char* towar::getModel()
  185. {
  186. return model;
  187. }
  188. float towar::getCena()
  189. {
  190. return cena;
  191. }
  192. float towar::getMoc()
  193. {
  194. return moc;
  195. }
  196. int towar::getSztuk()
  197. {
  198. return sztuk;
  199. }
  200. int towar::getRocznik()
  201. {
  202. return rocznik;
  203. }
  204.  
  205. void towar::piszXY(int x, int y)
  206. {
  207. //lepiej 2 metody na etykiety i wartosci (oddzielnie)
  208. gotoxy(x,y);
  209. cout<<"Marka: ";
  210. gotoxy(x,y+1);
  211. cout<<"Model: ";
  212. gotoxy(x,y+2);
  213. cout<<"Moc: ";
  214. gotoxy(x,y+3);
  215. cout<<"Rocznik: ";
  216. gotoxy(x,y+4);
  217. cout<<"Cena: ";
  218. gotoxy(x,y+5);
  219. cout<<"Ilosc: ";
  220. gotoxy(x+8,y);
  221. cout<<marka;
  222. gotoxy(x+8,y+1);
  223. cout<<model;
  224. gotoxy(x+8,y+2);
  225. cout<<moc;
  226. gotoxy(x+8,y+3);
  227. cout<<rocznik;
  228. gotoxy(x+8,y+4);
  229. cout<<cena;
  230. gotoxy(x+8,y+5);
  231. cout<<sztuk;
  232. }
  233. /****************Metody Bazatowar******************/
  234.  
  235. bazatowar::bazatowar(int rozmiar)
  236. {
  237. //pytanie o rozmiar przeniesiony do main
  238. this->rozmiar = rozmiar;
  239. tab = new towar[rozmiar];
  240. found = new towar[rozmiar];
  241. trash = new towar[rozmiar];
  242. for (i=0; i<rozmiar; i++) //historycznie, mozna wyrzucic
  243. tab[i].czysc();
  244. licznosc = 0;
  245. licznoscTrash=0;
  246. licznoscFound=0;
  247. current=-1;
  248. currentTrash=-1;
  249. currentFound=-1;
  250. }
  251.  
  252. void bazatowar::czysccalosc()
  253. {
  254. for (i=0; i<rozmiar; i++)
  255. tab[i].czysc();
  256. licznosc = 0;
  257. current=-1;
  258. }
  259.  
  260. void bazatowar::dodajkolejny(char *marka, char *model, float cena, float moc, int rocznik, int sztuk)
  261. { //metoda powinna zwracać nr błędu
  262. if(licznosc<rozmiar)
  263. {
  264. // strcpy(tab[licznosc].marka,naz);
  265. // cena = cen;
  266. // tab[licznosc].sztuk = szt;
  267. tab[licznosc].pobierz(marka, model, cena, moc, rocznik, sztuk);
  268. current=licznosc;
  269. licznosc++;
  270. }
  271. }
  272. void bazatowar::drukujcalosc()
  273. {
  274. for(i=0;i<rozmiar;i++)
  275. tab[i].drukuj();
  276. }
  277.  
  278. void bazatowar::wartosci()
  279. {
  280. for(i=0;i<rozmiar;i++)
  281. cout<<tab[i].wartosc()<<endl;
  282. }
  283.  
  284. float bazatowar::sumawartosc()
  285. {
  286. float suma_wart=0;
  287. for(i=0;i<rozmiar;i++)
  288. suma_wart+=tab[i].wartosc();
  289. return suma_wart;
  290. }
  291.  
  292. void bazatowar::next(){
  293. if(current<licznosc-1) //current musi być mniejszy o 1 od liczności bo indexy w tablicy zaczynają się od 0
  294. current++;
  295. }
  296. void bazatowar::nextFound()
  297. {
  298. if(currentFound<licznoscFound-1) //current musi być mniejszy o 1 od liczności bo indexy w tablicy zaczynają się od 0
  299. currentFound++;
  300. }
  301.  
  302. void bazatowar::previous(){
  303. if(current>0) // Current musi być większy od 0, bo nie ma w tablicy indexy mniejszego od 0
  304. current--;
  305. }
  306. void bazatowar::previousFound(){
  307. if(currentFound>0) // Current musi być większy od 0, bo nie ma w tablicy indexy mniejszego od 0
  308. currentFound--;
  309. }
  310. void bazatowar::showCurrent(int x, int y)
  311. {
  312. if(current>=0) {
  313. tab[current].piszXY(x, y);
  314. cout<<endl;
  315. }
  316. //sprawdzamy czy element obecny istnieje w tablicy, jesli current mniejszy niz 1 znaczy nie ma czego wypisywac
  317. }
  318. void bazatowar::showCurrentFound(int x, int y)
  319. {
  320. if(current>=0) //Sprawdzamy czy current ma swoje odniesienie w tablicy - jest większy lub równy 0; Reszta nas nie interesuje;
  321. //Current musi być mniejszy od licznosci ale sprawdzamy to w poprzednich metodach
  322. found[currentFound].piszXY(x, y);
  323. }
  324.  
  325. void bazatowar::setCurrent(int index)
  326. {
  327. if(index>=0 && index<licznosc)
  328. current=index;
  329. }
  330.  
  331. void bazatowar::deleteCurrent()
  332. {
  333. if(current>=0 && licznosc>1)
  334. {
  335. for(i=current; i<licznosc-1; i++)
  336. tab[i] = tab[i+1];
  337. licznosc--;
  338. }
  339. else
  340. {
  341. if(licznosc==1)
  342. {
  343. current=-1;
  344. licznosc--;
  345. }
  346. }
  347. }
  348. /*
  349. void bazatowar::setRocznikCurrent(int rok)
  350. {
  351. if(current>=0 && licznosc>1)
  352. {
  353. tab[current].rocznik = rok;
  354. }
  355. }
  356. */
  357. int bazatowar::menuEdytuj()
  358. {
  359. int m;
  360. cout<<"Wybierz co chcesz edytowac:"<<endl;
  361. cout<<"1. Marka"<<endl;
  362. cout<<"2. Model"<<endl;
  363. cout<<"3. Moc"<<endl;
  364. cout<<"4. Rocznik"<<endl;
  365. cout<<"5. Ilosc"<<endl;
  366. cout<<"6. Cena"<<endl;
  367. cin>>m;
  368. return m;
  369. }
  370. //*****************Pobieranie i saveFile ********************
  371.  
  372. bool bazatowar::hasSuffix(const string& s, const string& suffix)
  373. {
  374. return (s.size() >= suffix.size()) && equal(suffix.rbegin(), suffix.rend(), s.rbegin());
  375. }
  376. string** bazatowar::getFileList()
  377. {
  378. string** fileList;
  379. fileList = new string*[2];
  380. system("CLS");
  381. cout<<"Pliki w folderze zawierajacym bazy: "<<endl;
  382. int i=1;
  383. string path = "D:\\OneDrive\\Dev\\Projekt\\Bazy\\";
  384. DIR *dir = opendir(path.c_str());
  385. if(dir)
  386. {
  387. dirent *entry;
  388. while((entry = readdir(dir))!= NULL)
  389. {
  390. if(bazatowar::hasSuffix(entry->d_name, ".db"))
  391. {
  392. cout<<i<<". "<< entry->d_name<<endl;
  393. i++;
  394. fileList[i][i]=i;
  395. fileList[i][i+1]=entry->d_name;
  396. }
  397. }
  398. return fileList;
  399.  
  400. cout<<fileList[0][0];
  401. cout<<fileList[0][1];
  402. }
  403. if(i==1)
  404. cout<<"Nie znaleziono plikow.";
  405. cout<<endl<<"--------------------"<<endl;
  406. closedir(dir);
  407.  
  408. }
  409.  
  410. void bazatowar::saveFile()
  411. {
  412. // cout<<"saveFileywanie pliku";
  413. zp = fopen("baza.db", "wb"); //otwiera plik, sprawdza czy adres pliku nie jest pusty przez co nie można go otworzyć
  414. fwrite(&rozmiar, sizeof(rozmiar), 1, zp); //saveFileywanie rozmiaru do pliku baza.db
  415. fwrite(&licznosc, sizeof(licznosc), 1, zp);//saveFileywanie licznosci do pliku baza.db
  416. fwrite(tab, sizeof(*tab)*rozmiar, 1, zp); //saveFileywanie tabeli klasy towar do pliku
  417. fclose(zp); //zamykanie pliku
  418. // DRUGA METODA
  419.  
  420. // for (i=0; i<rozmiar; i++)
  421. // fwrite(tab, sizeof(*tab),1,zp)
  422. }
  423.  
  424. void bazatowar::openFile()
  425. {
  426. // cout<<"openFile pliku";
  427. zp = fopen("baza.db", "rb"); //openFile pliku baza.db
  428. fread(&rozmiar, sizeof(rozmiar), 1, zp); //odczytywanie rozmiaru
  429. fread(&licznosc, sizeof(licznosc), 1, zp); //odczytywanie licznosci
  430. for(i=0; i<rozmiar; i++) //odczytywanie nazwy ceny i sztuk pętlą przez metody get
  431. {
  432. fread(&tab[i], sizeof(tab[i]),1, zp); // Czyta tablicę, konkretny element
  433. //cout<<tab[i].getmarka()<<" "<<tab[i].getCena()<<" "<<tab[i].getSztuk()<<endl; //Wypisuje nazwę, cenę, sztuk
  434.  
  435. }
  436. system("CLS");
  437. current=0;
  438. cout<<"Dane wczytano z pliku."<<endl;
  439. fclose(zp); //zamykanie pliku
  440. // DRUGA METODA
  441.  
  442. //fread(tab, sizeof(*tab)*rozmiar, 1, zp);
  443. }
  444. string bazatowar::openFileFromList(char fname[L])
  445. {
  446. char baza[L];
  447. string fileTable[i];
  448. string fileName(fname);
  449. strcat(fname, ".db");
  450. strcpy(baza, fname);
  451. // cout<<"openFile pliku";
  452. cout<<"fname: "<<fname<<endl;
  453. cout<<"fileName: "<<fileName<<endl;
  454. cout<<"baza: "<<baza<<endl;
  455. if(zp = fopen(baza, "rb"))
  456. return fileName;
  457. else
  458. return "0";
  459. //openFile pliku baza.db
  460. fread(&rozmiar, sizeof(rozmiar), 1, zp); //odczytywanie rozmiaru
  461. fread(&licznosc, sizeof(licznosc), 1, zp); //odczytywanie licznosci
  462. for(i=0; i<rozmiar; i++) //odczytywanie nazwy ceny i sztuk pętlą przez metody get
  463. {
  464. fread(&tab[i], sizeof(tab[i]),1, zp); // Czyta tablicę, konkretny element
  465. //cout<<tab[i].getmarka()<<" "<<tab[i].getCena()<<" "<<tab[i].getSztuk()<<endl; //Wypisuje nazwę, cenę, sztuk
  466.  
  467. }
  468.  
  469. system("CLS");
  470. current=0;
  471. cout<<"Dane wczytano z pliku: "<<baza<<"."<<endl;
  472. fclose(zp); //zamykanie pliku
  473. // DRUGA METODA
  474.  
  475. //fread(tab, sizeof(*tab)*rozmiar, 1, zp);
  476.  
  477. }
  478. bool bazatowar::fileExists(char fname[L])
  479. {
  480. if (FILE *file = fopen(fname, "r")) {
  481. fclose(file);
  482. return true;
  483. } else {
  484. return false;
  485. }
  486. }
  487. bool bazatowar::searchCena(float min, float max)
  488. {
  489. licznoscFound=0;
  490. currentFound=-1;
  491. for(i=0; i<licznosc; i++)
  492. if(tab[i].getCena()>=min && tab[i].getCena()<=max)
  493. {
  494. found[licznoscFound]=tab[i];
  495. licznoscFound++;
  496. }
  497. if(licznoscFound)
  498. {
  499. currentFound=0;
  500. return 1;
  501. }
  502. else
  503. return 0;
  504. }
  505. bool bazatowar::searchMarka(char *marka)
  506. {
  507. //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
  508. //cout<<"marka wyszukana: "<<marka;
  509. licznoscFound=0;
  510. currentFound=-1;
  511. for(i=0; i<licznosc; i++)
  512. {
  513. //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
  514. if(!strcmp(tab[i].getMarka(), marka))
  515. {
  516. found[licznoscFound]=tab[i];
  517. licznoscFound++;
  518. }
  519. }
  520. if(licznoscFound)
  521. {
  522. currentFound=0;
  523. return 1;
  524. }
  525. else
  526. return 0;
  527. }
  528. bool bazatowar::searchMarkaCena(char *marka, float min, float max)
  529. {
  530. //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
  531. //cout<<"marka wyszukana: "<<marka;
  532. licznoscFound=0;
  533. currentFound=-1;
  534. for(i=0; i<licznosc; i++)
  535. {
  536. //cout<<"tab["<<i<<"]"<<tab[i].getMarka();
  537. if(!strcmp(tab[i].getMarka(), marka) && tab[i].getCena()>=min && tab[i].getCena()<=max)
  538. {
  539. found[licznoscFound]=tab[i];
  540. licznoscFound++;
  541. }
  542. }
  543. if(licznoscFound)
  544. {
  545. currentFound=0;
  546. return 1;
  547. }
  548. else
  549. return 0;
  550. }
  551.  
  552. main()
  553. {
  554. // towar tab[MAX], t2, tablica[5];
  555. char n[L], m[L], zn, mark[L], mod[L], menu, fileName[L];
  556. float c, moc, min, max;
  557. int sz, i, rozmiar, r;
  558.  
  559.  
  560. cout<<"Podaj ilosc rekordow: ";
  561. cin>>rozmiar;
  562. cin.ignore();
  563. bazatowar baza(rozmiar);
  564.  
  565. do
  566. {
  567. cout<<"1. Plik"<<endl;
  568.  
  569. //cout<<"1. Czyszczenie"<<endl;
  570. cout<<"2. Czytanie"<<endl;
  571. cout<<"3. Drukowanie"<<endl;
  572. cout<<"4. Wartosc"<<endl;
  573. cout<<"5. Zapisz do pliku"<<endl;
  574. cout<<"6. Wczytaj z pliku"<<endl;
  575. cout<<"7. DeleteCurrent"<<endl;
  576. cout<<"8. ShowCurrent"<<endl;
  577. cout<<"9. Edytuj"<<endl;
  578. cout<<"a. Next"<<endl;
  579. cout<<"A. NextFound"<<endl;
  580. cout<<"b. Previous"<<endl;
  581. cout<<"B. PreviousFound"<<endl;
  582. cout<<"c. SetCurrent"<<endl;
  583. cout<<"s. searchCena"<<endl;
  584. cout<<"z. SearchMarka"<<endl;
  585. cout<<"S. CurrentFound"<<endl;
  586. cout<<"x. searchMarkaCena"<<endl;
  587. cout<<"0. Wyjscie z programu"<<endl;
  588. zn=getch();
  589. system("CLS");
  590. switch(zn)
  591. {
  592. case '1':
  593. do
  594. {
  595. cout<<"1. Nowy plik."<<endl;
  596. cout<<"----------------"<<endl;
  597. cout<<"2. Pokaz liste plikow."<<endl;
  598. cout<<"3. Otworz plik."<<endl;
  599. cout<<"----------------"<<endl;
  600. cout<<"4. Zapisz plik"<<endl;
  601. cout<<"5. Zapisz jako nowy plik"<<endl;
  602. cout<<"----------------"<<endl;
  603. cout<<"0. Powrot"<<endl;
  604. menu=getch();
  605. switch(menu)
  606. {
  607. case '1':
  608. {
  609. char c;
  610. system("CLS");
  611. cout<<"Podaj ilosc rekordow nowej bazy: ";
  612. do
  613. {
  614. cin>>rozmiar;
  615. cin.ignore();
  616. if(rozmiar<=0)
  617. cout<<"Podaj rozmiar wiekszy niz 0"<<endl;
  618. else
  619. {
  620. bazatowar baza(rozmiar);
  621. baza.czysccalosc();
  622. }
  623. } while(rozmiar<=0);
  624.  
  625. do
  626. {
  627. system("CLS");
  628. cout<<"Czy chcesz od razu dodac rekordy? 1. Tak | 0. Nie"<<endl;
  629. c=getch();
  630. } while (c!='1' && c!='0');
  631. if(c=='1')
  632. {
  633. for(int i=0;i<rozmiar; i++)
  634. {
  635. char n[L],m[L];
  636. int moc, r, sz;
  637. float c;
  638.  
  639. system("CLS");
  640. cout<<"Podaj rekord nr: "<<i+1<<". Pozostalo do konca: "<<rozmiar-(i+1)<<endl;
  641. do
  642. {
  643. cout<<"Marka: ";
  644. gets(n);
  645. if(strlen(n)==0)
  646. cout<<"Marka nie moze byc pusta."<<endl;
  647. } while (strlen(n)==0);
  648. do
  649. {
  650. cout<<"Model: ";
  651. gets(m);
  652. if(strlen(m)==0)
  653. cout<<"Model nie moze byc pusty."<<endl;
  654. } while (strlen(m)==0);
  655. do
  656. {
  657. cout<<"Moc: ";
  658. cin>>moc;
  659. if(moc<=0)
  660. cout<<"Moc musi byc wieksza niz 0"<<endl;
  661. } while (moc<=0);
  662. do
  663. {
  664. cout<<"Rocznik: ";
  665. cin>>r;
  666. if(r<=1950)
  667. cout<<"Rocznik musi byc wiekszy niz 1950"<<endl;
  668. } while(r<=1950);
  669. do
  670. {
  671. cout<<"Cena: ";
  672. cin>>c;
  673. if(c<=0)
  674. cout<<"Cena musi byc wieksza niz 0"<<endl;
  675. } while (c<=0);
  676. do
  677. {
  678. cout<<"Sztuk: ";
  679. cin>>sz;
  680. if(sz<0)
  681. cout<<"Ilosc sztuk musi byc rowna lub wieksza od 0"<<endl;
  682. } while (sz<0);
  683.  
  684. cin.ignore();
  685. baza.dodajkolejny(n,m,c,moc,r,sz);
  686. }
  687. }
  688. } // koniec case 1 - nowy plik
  689. break;
  690.  
  691. case '2': baza.getFileList(); // wyswietlanie listy plikow
  692. break;
  693. case '3':
  694. {
  695. char fname[L];
  696. baza.getFileList();
  697. cout<<"Podaj numer pliku ktory chcesz otworzyc."<<endl;
  698. gets(fname);
  699. if(baza.openFileFromList(fname) != "0")
  700. strcpy(fileName, fname);
  701. } //otwieranie pliku z listy
  702. break;
  703. case '4':
  704. {
  705. baza.saveFile();
  706. cout<<"fileName: "<<fileName;
  707. break;
  708. }
  709. case '0':
  710. menu=0;
  711. system("CLS");
  712. break;
  713. } //koniec swich od menu Plik
  714.  
  715. } while (menu != 0);
  716. break;
  717. case '2':
  718. do
  719. {
  720. cout<<"Marka: ";
  721. gets(n);
  722. if(strlen(n)==0)
  723. cout<<"Marka nie moze byc pusta."<<endl;
  724. } while (strlen(n)==0);
  725. do
  726. {
  727. cout<<"Model: ";
  728. gets(m);
  729. if(strlen(m)==0)
  730. cout<<"Model nie moze byc pusty."<<endl;
  731. }while (strlen(m)==0);
  732. do
  733. {
  734. cout<<"Moc: ";
  735. cin>>moc;
  736. if(moc<=0)
  737. cout<<"Moc musi byc wieksza niz 0"<<endl;
  738. } while (moc<=0);
  739. do
  740. {
  741. cout<<"Rocznik: ";
  742. cin>>r;
  743. if(r<=1950)
  744. cout<<"Rocznik musi byc wiekszy niz 1950"<<endl;
  745. } while(r<=1950);
  746. do
  747. {
  748. cout<<"Cena: ";
  749. cin>>c;
  750. if(c<=0)
  751. cout<<"Cena musi byc wieksza niz 0"<<endl;
  752. } while (c<=0);
  753. do
  754. {
  755. cout<<"Sztuk: ";
  756. cin>>sz;
  757. if(sz<0)
  758. cout<<"Ilosc sztuk musi byc rowna lub wieksza od 0"<<endl;
  759. } while (sz<0);
  760. cin.ignore();
  761. baza.dodajkolejny(n,m,c,moc,r,sz);
  762. break;
  763. case '3': baza.drukujcalosc();
  764. break;
  765. case '4': baza.wartosci();
  766. cout<<"Suma wszystkich wartosci= "<<baza.sumawartosc()<<endl;
  767. break;
  768. case '5': cout<<"Zapisano do pliku"<<endl;
  769. baza.saveFile();
  770. break;
  771. case '6': cout<<"Wczytano z pliku"<<endl;
  772. baza.openFile();
  773. break;
  774. case '7': baza.deleteCurrent();
  775. break;
  776. case '8': baza.showCurrent(50,10);
  777. break;
  778. case '9':
  779. switch(baza.menuEdytuj())
  780. {
  781. case '1' : cout<<"Podaj rocznik";
  782. int rocznik = 2005;
  783. //baza.setRocznikCurrent(rocznik);
  784. break;
  785. }
  786. break;
  787. case 'a': baza.next();
  788. baza.showCurrent(50,10);
  789. break;
  790. case 'A': baza.nextFound();
  791. baza.showCurrentFound(50,10);
  792. break;
  793. case 'b': baza.previous();
  794. baza.showCurrent(50,10);
  795. break;
  796. case 'B': baza.previousFound();
  797. baza.showCurrentFound(50,10);
  798. break;
  799. case 'c': cout<<"Podaj numer elementu"<<endl;
  800. cin>>i;
  801. baza.setCurrent(i);
  802. break;
  803. case 's': cout<<"Podaj cene minimalna: ";
  804. cin>>min;
  805. cout<<"Podaj cene maksymalna: ";
  806. cin>>max;
  807. if(!baza.searchCena(min, max))
  808. cout<<"Nic nie znalazlem"<<endl;
  809. else
  810. baza.showCurrentFound(50, 10);
  811. break;
  812. case 'z': do
  813. {
  814. cout<<"Marka: ";
  815. gets(mark);
  816. if(strlen(mark)==0)
  817. cout<<"Marka nie moze byc pusta."<<endl;
  818. } while (strlen(mark)==0);
  819. if(!baza.searchMarka(mark))
  820. cout<<"Nic nie znalazlem"<<endl;
  821. else
  822. baza.showCurrentFound(50,10);
  823. break;
  824. case 'x': do
  825. {
  826. cout<<"Marka: ";
  827. gets(mark);
  828. if(strlen(mark)==0)
  829. cout<<"Marka nie moze byc pusta."<<endl;
  830. } while (strlen(mark)==0);
  831. do
  832. {
  833. cout<<"Podaj cene minimalna: ";
  834. cin>>min;
  835. cout<<"Podaj cene maksymalna: ";
  836. cin>>max;
  837. } while(min>max);
  838. if(!baza.searchMarka(mark) && !baza.searchCena(min, max))
  839. cout<<"Nic nie znalazlem"<<endl;
  840. else
  841. baza.showCurrentFound(50,10);
  842. break;
  843. case 'S': cout<<"Podaj numer elementu"<<endl;
  844. cin>>i;
  845. baza.showCurrentFound(50, 10);
  846. break;
  847. case '0': cout<<"Koniec"<<endl;
  848. getchar();
  849. break;
  850. }
  851. } while (zn!='0');
  852.  
  853. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement