Habsburg

Untitled

Nov 8th, 2014
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4. #include "biblioteka_vrijeme.cc"
  5. using namespace std;
  6. struct tRoba {
  7.     int sifRob;
  8.     char naziv[30];
  9.     int cijena;
  10.     int kolicina;
  11.     double vUnos;
  12. };
  13.  
  14. void readFile(){
  15.     int averCijena = 0, averKolicina = 0, counter = 0;
  16.     double averVrijeme = 0;
  17.     tRoba roba;
  18.     ifstream ifdat;
  19.     ifdat.open("roba_petrlic_marko.dat", ifstream::in);
  20.     ifdat.seekg(0,ifdat.beg);
  21.     while(!ifdat.eof()){
  22.         counter++;
  23.         ifdat >> roba.sifRob >> roba.naziv >> roba.cijena >> roba.kolicina >> roba.vUnos;
  24.         averCijena = averCijena + roba.cijena;
  25.         averKolicina = averKolicina + roba.kolicina;
  26.         averVrijeme = averVrijeme + roba.vUnos;
  27.         cout << roba.sifRob << " " << roba.naziv << " " << roba.cijena << " "  << roba.kolicina <<" " << roba.vUnos << endl;
  28.         ifdat.ignore(1,'\n');
  29.     }
  30.     ifdat.close();
  31.     cout << "\nProsjeèna cijena iznosi: " << averCijena/counter << "\nProsjeèna kolièina iznosi: "  << averKolicina/counter << "\nUkupno vrijeme iznosi: " << averVrijeme << " sekundi\n";
  32. }
  33.  
  34. void ispisDat(){
  35.     ifstream ifdat;
  36.     int counter = 0;
  37.     int izbor = 0;
  38.     int ukVriRob = 0;
  39.     double averVri = 0;
  40.     string name;
  41.     tRoba roba;
  42.    
  43.     cout << "\n-----DATA------\n1: roba_petrlic_marko.dat\n2: upisite ime datoteke\nI:= ";
  44.     cin >> izbor;
  45.     if(izbor==1) ifdat.open("roba_petrlic_marko.dat", ifstream::in);
  46.     if(izbor==2)
  47.     do{
  48.         if(ifdat.fail()) cout << "Datoteka nepostoji\n";
  49.         cout << "Unesite ime datoteke\nI: ";
  50.         cin >> name;
  51.         ifdat.open(name.c_str(), ifstream::in);
  52.     }while(ifdat.fail());
  53.    
  54.     ifdat.seekg(0,ifdat.end);
  55.     if (ifdat.tellg()==0) return;
  56.    
  57.     ifdat.seekg(0,ifdat.beg);
  58.     while(!ifdat.eof()){
  59.         counter++;
  60.         ifdat >> roba.sifRob >> roba.naziv >> roba.cijena >> roba.kolicina >> roba.vUnos;
  61.         ukVriRob = ukVriRob + roba.cijena*roba.kolicina;
  62.         averVri = averVri + roba.vUnos;
  63.         cout << roba.sifRob << " " << roba.naziv << " " << roba.cijena << " "  << roba.kolicina <<" " << roba.vUnos <<"; Vrijdnost robe iznosi: " << roba.cijena*roba.kolicina << endl;
  64.         ifdat.ignore(1,'\n');
  65.     }
  66.     cout << "\nBroj zapisa iznosi: " << counter << "\nUkupna vrijenodst svih roba iznosi: " << ukVriRob << "\nProsjèeno vrijeme iznosi: " << averVri/counter << " sekundi\n";
  67.     ifdat.close();
  68. }
  69.  
  70. int findSifRob(int sifRob){
  71.     ifstream ifdat;
  72.     int counter = 0;
  73.     bool flag = false;
  74.     tRoba roba;
  75.     ifdat.open("roba_petrlic_marko.dat", ifstream::in);
  76.    
  77.     ifdat.seekg(0,ifdat.beg);
  78.     while(!ifdat.eof()){
  79.         counter++;
  80.         ifdat >> roba.sifRob >> roba.naziv >> roba.cijena >> roba.kolicina >> roba.vUnos;
  81.         if(roba.sifRob == sifRob && !flag) cout << "Šifra je veæ iskorištena\nPonovite upis molimo Vas\nI:= ";
  82.         if(roba.sifRob == sifRob && !flag) flag = true;
  83.         ifdat.ignore(1,';');
  84.     }
  85.     if(flag)cin >> sifRob;
  86.     if(flag)cout << "\nBroj zapisa iznosi: " << counter << "\n\n";
  87.     ifdat.close();
  88.     if(flag) return sifRob;
  89.     return 0;
  90. }
  91.  
  92. int main(){
  93.     fstream fdat;
  94.     bool datDel = false;
  95.     int izbor = 0;
  96.     tRoba roba;
  97.     int temp;
  98.    
  99.     fdat.open("roba_petrlic_marko.dat", fstream::in);
  100.     if(!fdat.is_open() && cout << "Kreirana je datoteka \"roba_petrlic_marko.dat\"\n") fdat.open("roba_petrlic_marko.dat", fstream::out);
  101.     else if(fdat.is_open() && cout << "Datoteka vec postoji, zelite li zbrisati i kreirati novu?\n0:- ne, 1:- da\nI:= ") cin >> datDel;
  102.     if(datDel) fdat.close();
  103.     if(datDel && cout << "Nova datoteka je kreirana\n") fdat.open("roba_petrlic_marko.dat", fstream::out | fstream::trunc);
  104.     fdat.close();
  105.    
  106.     while(izbor!=9){
  107.         cout << "-------IZBORNIK------\n" << "1:- Unos podataka\n2:- Ispis sadržaja\n3:-\n9:- izlaz\nI:= ";
  108.         cin >> izbor;
  109.         switch(izbor){
  110.             case 1:
  111.                 vrijeme_pocetak();
  112.                 do{
  113.                     cout << "\n------UPIS------\n";
  114.                     cout << "Unesite sifru robe\n";
  115.                     cin >> roba.sifRob;
  116.                     cout << "Unesite naziv robe\n";
  117.                     unos(roba.naziv);
  118.                     cout << "Unesite cijenu robe\n";
  119.                     cin >> roba.cijena;
  120.                     cout << "Unesite kolicinu robe\n";
  121.                     cin >> roba.kolicina;
  122.                 }while((roba.sifRob < 100 || roba.sifRob > 999) || strlen(roba.naziv)>20 || (roba.kolicina*roba.cijena<0) ? cout << "Greska kod unosa\n" : 1>2);
  123.                 vrijeme_kraj();
  124.                 roba.vUnos = vrijeme_proteklo()/1000;
  125.                 cout << endl;
  126.                 temp = findSifRob(roba.sifRob);
  127.                 if(temp) roba.sifRob = temp;
  128.                
  129.                 fdat.open("roba_petrlic_marko.dat", fstream::out | fstream::ate | fstream::app);
  130.                 fdat << roba.sifRob << " " << roba.naziv << " " << roba.cijena << " " << roba.kolicina << " " << roba.vUnos << ";";
  131.                 fdat.close();
  132.                 readFile();
  133.                 break;
  134.             case 2:
  135.                 ispisDat();
  136.                 break;
  137.         }
  138.     }
  139.     return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment