Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstring>
- #include "biblioteka_vrijeme.cc"
- using namespace std;
- struct tRoba {
- int sifRob;
- char naziv[30];
- int cijena;
- int kolicina;
- double vUnos;
- };
- void readFile(){
- int averCijena = 0, averKolicina = 0, counter = 0;
- double averVrijeme = 0;
- tRoba roba;
- ifstream ifdat;
- ifdat.open("roba_petrlic_marko.dat", ifstream::in);
- ifdat.seekg(0,ifdat.beg);
- while(!ifdat.eof()){
- counter++;
- ifdat >> roba.sifRob >> roba.naziv >> roba.cijena >> roba.kolicina >> roba.vUnos;
- averCijena = averCijena + roba.cijena;
- averKolicina = averKolicina + roba.kolicina;
- averVrijeme = averVrijeme + roba.vUnos;
- cout << roba.sifRob << " " << roba.naziv << " " << roba.cijena << " " << roba.kolicina <<" " << roba.vUnos << endl;
- ifdat.ignore(1,'\n');
- }
- ifdat.close();
- cout << "\nProsjeèna cijena iznosi: " << averCijena/counter << "\nProsjeèna kolièina iznosi: " << averKolicina/counter << "\nUkupno vrijeme iznosi: " << averVrijeme << " sekundi\n";
- }
- void ispisDat(){
- ifstream ifdat;
- int counter = 0;
- int izbor = 0;
- int ukVriRob = 0;
- double averVri = 0;
- string name;
- tRoba roba;
- cout << "\n-----DATA------\n1: roba_petrlic_marko.dat\n2: upisite ime datoteke\nI:= ";
- cin >> izbor;
- if(izbor==1) ifdat.open("roba_petrlic_marko.dat", ifstream::in);
- if(izbor==2)
- do{
- if(ifdat.fail()) cout << "Datoteka nepostoji\n";
- cout << "Unesite ime datoteke\nI: ";
- cin >> name;
- ifdat.open(name.c_str(), ifstream::in);
- }while(ifdat.fail());
- ifdat.seekg(0,ifdat.end);
- if (ifdat.tellg()==0) return;
- ifdat.seekg(0,ifdat.beg);
- while(!ifdat.eof()){
- counter++;
- ifdat >> roba.sifRob >> roba.naziv >> roba.cijena >> roba.kolicina >> roba.vUnos;
- ukVriRob = ukVriRob + roba.cijena*roba.kolicina;
- averVri = averVri + roba.vUnos;
- cout << roba.sifRob << " " << roba.naziv << " " << roba.cijena << " " << roba.kolicina <<" " << roba.vUnos <<"; Vrijdnost robe iznosi: " << roba.cijena*roba.kolicina << endl;
- ifdat.ignore(1,'\n');
- }
- cout << "\nBroj zapisa iznosi: " << counter << "\nUkupna vrijenodst svih roba iznosi: " << ukVriRob << "\nProsjèeno vrijeme iznosi: " << averVri/counter << " sekundi\n";
- ifdat.close();
- }
- int findSifRob(int sifRob){
- ifstream ifdat;
- int counter = 0;
- bool flag = false;
- tRoba roba;
- ifdat.open("roba_petrlic_marko.dat", ifstream::in);
- ifdat.seekg(0,ifdat.beg);
- while(!ifdat.eof()){
- counter++;
- ifdat >> roba.sifRob >> roba.naziv >> roba.cijena >> roba.kolicina >> roba.vUnos;
- if(roba.sifRob == sifRob && !flag) cout << "Šifra je veæ iskorištena\nPonovite upis molimo Vas\nI:= ";
- if(roba.sifRob == sifRob && !flag) flag = true;
- ifdat.ignore(1,';');
- }
- if(flag)cin >> sifRob;
- if(flag)cout << "\nBroj zapisa iznosi: " << counter << "\n\n";
- ifdat.close();
- if(flag) return sifRob;
- return 0;
- }
- int main(){
- fstream fdat;
- bool datDel = false;
- int izbor = 0;
- tRoba roba;
- int temp;
- fdat.open("roba_petrlic_marko.dat", fstream::in);
- if(!fdat.is_open() && cout << "Kreirana je datoteka \"roba_petrlic_marko.dat\"\n") fdat.open("roba_petrlic_marko.dat", fstream::out);
- else if(fdat.is_open() && cout << "Datoteka vec postoji, zelite li zbrisati i kreirati novu?\n0:- ne, 1:- da\nI:= ") cin >> datDel;
- if(datDel) fdat.close();
- if(datDel && cout << "Nova datoteka je kreirana\n") fdat.open("roba_petrlic_marko.dat", fstream::out | fstream::trunc);
- fdat.close();
- while(izbor!=9){
- cout << "-------IZBORNIK------\n" << "1:- Unos podataka\n2:- Ispis sadržaja\n3:-\n9:- izlaz\nI:= ";
- cin >> izbor;
- switch(izbor){
- case 1:
- vrijeme_pocetak();
- do{
- cout << "\n------UPIS------\n";
- cout << "Unesite sifru robe\n";
- cin >> roba.sifRob;
- cout << "Unesite naziv robe\n";
- unos(roba.naziv);
- cout << "Unesite cijenu robe\n";
- cin >> roba.cijena;
- cout << "Unesite kolicinu robe\n";
- cin >> roba.kolicina;
- }while((roba.sifRob < 100 || roba.sifRob > 999) || strlen(roba.naziv)>20 || (roba.kolicina*roba.cijena<0) ? cout << "Greska kod unosa\n" : 1>2);
- vrijeme_kraj();
- roba.vUnos = vrijeme_proteklo()/1000;
- cout << endl;
- temp = findSifRob(roba.sifRob);
- if(temp) roba.sifRob = temp;
- fdat.open("roba_petrlic_marko.dat", fstream::out | fstream::ate | fstream::app);
- fdat << roba.sifRob << " " << roba.naziv << " " << roba.cijena << " " << roba.kolicina << " " << roba.vUnos << ";";
- fdat.close();
- readFile();
- break;
- case 2:
- ispisDat();
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment