Inace program radi savrseno(bar jedo sada radio), tako da moze nekome da bude od pomoci
Code:
//#define front_h
#include <iostream>
#include <fstream>
class front
{
public:
front();
bool isPNode(); //done
void push(char tp, char trs, int cnt, int prc); //done
void pop();
void inventar(); //done
void write();
void stats(); //done
int pocetU;
~front();
struct popis
{
char typ;
char transakcia;
int pocet;
float cena;
popis * next;
} * p_inv;
private:
float suma;
};
///////*************///////////////
//#include "front.h"
using namespace std;
front::front()
{
pocetU=0, p_inv=0,suma=0;
}
bool front::isPNode()
{
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
if(priv1->transakcia=='P')
{
return true;
}
else
{
return false;
}
}
}
void front::push(char tp, char pct, int trs, int cna)
{
popis * priv1, * priv2;
if(p_inv == 0)
{
p_inv=new popis;
p_inv->typ=tp;
p_inv->pocet=pct;
p_inv->transakcia=trs;
p_inv->cena=cna;
p_inv->next=0;
}
else
{
priv1=p_inv;
while(priv1->next != 0)
{
priv1=priv1->next;
}
priv2=new popis;
priv2->typ=tp;
priv2->pocet=pct;
priv2->transakcia=trs;
priv2->cena=cna;
priv2->next=0;
priv1->next=priv2;
}
pocetU++;
}
void front::inventar()
{
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
cout << "tip robe:\t\t\t" << priv1->typ << endl;
cout << "broj jedinica:\t" << priv1->pocet << endl;
cout << "transakcia:\t\t\t" << priv1->transakcia << endl;
cout << "cena jedne jedinice:\t" << priv1->cena << endl;
}
}
void front::write()
{
ofstream fw;
fw.open("inventory.txt", ios::app);
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
fw << priv1->typ;
fw << priv1->transakcia<<" ";
fw << priv1->pocet<<" ";
fw << priv1->cena<<endl;
}
fw.close();
}
void front::stats()
{
int cislo;
suma=0;
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
cout << "tip robe:\t\t\t" << priv1->typ << endl;
cout << "broj jedinica:\t\t" << priv1->pocet << endl;
cout << "transakcia:\t\t\t" << priv1->transakcia << endl;
cout << "cena jedne jedinice:\t" << priv1->cena << endl;
cislo=priv1->pocet * priv1->cena;
suma += cislo; //cislo+cislo
cout << "zajedno:\t\t\t"<<suma<<"evra"<<endl;
cout << "***********kras ispisa iz statistike*******"<<endl;
}
}
void front::pop()
{
int cyklus= 0; // premenna i urcuje kolkaty cyklus sa spracuvava
float pocet, result;
cout << " koliko jedinica prodajes : ";
cin >> pocet;
system("cls");
popis * priv1 = p_inv;
popis * priv2;
priv2 = p_inv;
if(priv1 == NULL)
cout << "nista";
else
{
while(priv1->next != NULL)
priv1 = priv1->next;
result = priv1->pocet - pocet;
if(result < 0)
{
system("cls");
cout << "\n broj jedinica, koje prodajes je veci od broja jedinica u magacinu.\n";
}
else if(result == 0)
{
priv1 =p_inv;
priv1 = priv2->next;
while(priv1->next != NULL)
{
priv2 = priv1;
priv1 = priv1->next;
}
priv2->next = NULL;
delete priv1;
}
else
{
priv1 = p_inv;
while(priv1->next != NULL)
priv1 = priv1->next;
priv1->pocet = result;
}
}
}
//#include "front.h"
//using namespace std;
char menu()
{
char volba;
cout << "\n";
cout << " izaberi operaciju.\n";
cout << "\n";
cout << " <i>nventar\t.........ispis \n";
cout << " <k>upi\t\t.........\n"; //urobene
cout << " <p>rodaj\t......... \n";
cout << " <r>ead\t\t......... nacitaj iz fajla\n";
cout << " <s>tatistics\t......... statistika\n";
cout << " <w>rite\t......... zapisi u fajl\n";
cout << " <c>lear screen\t......... "<<endl;
cout << " <e>xit\t\t......... \n";//urobene
cout << "\n vas izbor: ";
cin >> volba;
return volba;
}
int main()
{
char volba, cena[20], a[20], komad[20];
char akt,i_polozka;
int p_fajl, n;
ifstream fr;
ofstream fw;
front * polozka1 = new front();
front * polozka2 = new front();
front * polozka3 = new front();
front * polozkap = new front();
do{
volba = menu();
switch (volba)
{
case'i':
{
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
}
else
{
cout <<"nastavljamo..."<<endl;
cout <<"robu, pod kojim rednim brojem, hoces na ispis?<1,2,3>";
cin >>i_polozka;
switch(i_polozka)
{
case '1':polozka1->inventar();break;
case '2':polozka2->inventar();break;
case '3':polozka3->inventar();break;
default:cout <<"greska";
}
}
}
break;
case'k':
{
cout <<"koju robu kupujes?<1,2,3>"<<endl;
cout <<"polozka: ";
cin >> a[0];
a[1] = 'K';
cout <<"cena:";
cin >> cena;
cout <<"komada: ";
cin >> komad;
akt = a[0];
switch(akt)
{
case '1': polozka1->push(a[0],atoi(komad), a[1], atof(cena));break;
case '2': polozka2->push(a[0],atoi(komad), a[1], atof(cena));break;
case '3': polozka3->push(a[0],atoi(komad), a[1], atof(cena));break;
default: cout <<"greska";
break;
}
break;
}
break;
case'p':
{
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
}
cout <<"koju robu prodajes?<1,2,3>";
cin >> akt;
switch(akt)
{
case'1':
{
if(polozka1->isPNode()==false)
{
polozka1->pop();
}
}
break;
case'2':
{
if(polozka2->isPNode()==false)
{
polozka2->pop();
}
}
break;
case'3':
{
if(polozka3->isPNode()==false)
{
polozka3->pop();
}
}
break;
default: cout <<"out of range"<<endl;
break;
}
}
break;
case'r':
{
/*if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
break;
}*/
fr.open("inventory.txt");
if (!fr)
{
cout << "nisam otvorio fajl";
fr.close();
break;
}
fr >> p_fajl;
for (n=0; n<p_fajl;n++)
{
fr >>a;
fr >>komad;
fr >>cena;
akt=a[0];
switch(akt)
{
case '1': polozka1->push(a[0],atoi(komad), a[1], atof(cena));break;
case '2': polozka2->push(a[0],atoi(komad), a[1], atof(cena));break;
case '3': polozka3->push(a[0],atoi(komad), a[1], atof(cena));break;
default: cout <<"greska";
break;
}
cout<<uspesno ucitani podatci"<<endl;
} break;
}break;
break;
case's':
{
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
break;
}
polozka1->stats();
polozka2->stats();
polozka3->stats();
}
break;
case'w':
{
fw.open("inventory.txt");
if (!fw)
{
cout << "greska prilikom otvaranja fajla";
fw.close();
break;
}
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout << "fajl je prazan";
}
fw <<polozka1->pocetU + polozka2->pocetU + polozka3->pocetU<<endl;
polozka1->write();
polozka2->write();
polozka3->write();
cout<<"zapisano u fajl inventory.txt";
fw.close();
}
break;
case'c':
system("cls");
default:cout<<"greska"<<endl;
break;
}
} while(volba!='e');
return 0;
}
//#define front_h
#include <iostream>
#include <fstream>
class front
{
public:
front();
bool isPNode(); //done
void push(char tp, char trs, int cnt, int prc); //done
void pop();
void inventar(); //done
void write();
void stats(); //done
int pocetU;
~front();
struct popis
{
char typ;
char transakcia;
int pocet;
float cena;
popis * next;
} * p_inv;
private:
float suma;
};
///////*************///////////////
//#include "front.h"
using namespace std;
front::front()
{
pocetU=0, p_inv=0,suma=0;
}
bool front::isPNode()
{
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
if(priv1->transakcia=='P')
{
return true;
}
else
{
return false;
}
}
}
void front::push(char tp, char pct, int trs, int cna)
{
popis * priv1, * priv2;
if(p_inv == 0)
{
p_inv=new popis;
p_inv->typ=tp;
p_inv->pocet=pct;
p_inv->transakcia=trs;
p_inv->cena=cna;
p_inv->next=0;
}
else
{
priv1=p_inv;
while(priv1->next != 0)
{
priv1=priv1->next;
}
priv2=new popis;
priv2->typ=tp;
priv2->pocet=pct;
priv2->transakcia=trs;
priv2->cena=cna;
priv2->next=0;
priv1->next=priv2;
}
pocetU++;
}
void front::inventar()
{
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
cout << "tip robe:\t\t\t" << priv1->typ << endl;
cout << "broj jedinica:\t" << priv1->pocet << endl;
cout << "transakcia:\t\t\t" << priv1->transakcia << endl;
cout << "cena jedne jedinice:\t" << priv1->cena << endl;
}
}
void front::write()
{
ofstream fw;
fw.open("inventory.txt", ios::app);
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
fw << priv1->typ;
fw << priv1->transakcia<<" ";
fw << priv1->pocet<<" ";
fw << priv1->cena<<endl;
}
fw.close();
}
void front::stats()
{
int cislo;
suma=0;
popis * priv1;
for(priv1=p_inv;priv1!=NULL;priv1=priv1->next)
{
cout << "tip robe:\t\t\t" << priv1->typ << endl;
cout << "broj jedinica:\t\t" << priv1->pocet << endl;
cout << "transakcia:\t\t\t" << priv1->transakcia << endl;
cout << "cena jedne jedinice:\t" << priv1->cena << endl;
cislo=priv1->pocet * priv1->cena;
suma += cislo; //cislo+cislo
cout << "zajedno:\t\t\t"<<suma<<"evra"<<endl;
cout << "***********kras ispisa iz statistike*******"<<endl;
}
}
void front::pop()
{
int cyklus= 0; // premenna i urcuje kolkaty cyklus sa spracuvava
float pocet, result;
cout << " koliko jedinica prodajes : ";
cin >> pocet;
system("cls");
popis * priv1 = p_inv;
popis * priv2;
priv2 = p_inv;
if(priv1 == NULL)
cout << "nista";
else
{
while(priv1->next != NULL)
priv1 = priv1->next;
result = priv1->pocet - pocet;
if(result < 0)
{
system("cls");
cout << "\n broj jedinica, koje prodajes je veci od broja jedinica u magacinu.\n";
}
else if(result == 0)
{
priv1 =p_inv;
priv1 = priv2->next;
while(priv1->next != NULL)
{
priv2 = priv1;
priv1 = priv1->next;
}
priv2->next = NULL;
delete priv1;
}
else
{
priv1 = p_inv;
while(priv1->next != NULL)
priv1 = priv1->next;
priv1->pocet = result;
}
}
}
//#include "front.h"
//using namespace std;
char menu()
{
char volba;
cout << "\n";
cout << " izaberi operaciju.\n";
cout << "\n";
cout << " <i>nventar\t.........ispis \n";
cout << " <k>upi\t\t.........\n"; //urobene
cout << " <p>rodaj\t......... \n";
cout << " <r>ead\t\t......... nacitaj iz fajla\n";
cout << " <s>tatistics\t......... statistika\n";
cout << " <w>rite\t......... zapisi u fajl\n";
cout << " <c>lear screen\t......... "<<endl;
cout << " <e>xit\t\t......... \n";//urobene
cout << "\n vas izbor: ";
cin >> volba;
return volba;
}
int main()
{
char volba, cena[20], a[20], komad[20];
char akt,i_polozka;
int p_fajl, n;
ifstream fr;
ofstream fw;
front * polozka1 = new front();
front * polozka2 = new front();
front * polozka3 = new front();
front * polozkap = new front();
do{
volba = menu();
switch (volba)
{
case'i':
{
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
}
else
{
cout <<"nastavljamo..."<<endl;
cout <<"robu, pod kojim rednim brojem, hoces na ispis?<1,2,3>";
cin >>i_polozka;
switch(i_polozka)
{
case '1':polozka1->inventar();break;
case '2':polozka2->inventar();break;
case '3':polozka3->inventar();break;
default:cout <<"greska";
}
}
}
break;
case'k':
{
cout <<"koju robu kupujes?<1,2,3>"<<endl;
cout <<"polozka: ";
cin >> a[0];
a[1] = 'K';
cout <<"cena:";
cin >> cena;
cout <<"komada: ";
cin >> komad;
akt = a[0];
switch(akt)
{
case '1': polozka1->push(a[0],atoi(komad), a[1], atof(cena));break;
case '2': polozka2->push(a[0],atoi(komad), a[1], atof(cena));break;
case '3': polozka3->push(a[0],atoi(komad), a[1], atof(cena));break;
default: cout <<"greska";
break;
}
break;
}
break;
case'p':
{
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
}
cout <<"koju robu prodajes?<1,2,3>";
cin >> akt;
switch(akt)
{
case'1':
{
if(polozka1->isPNode()==false)
{
polozka1->pop();
}
}
break;
case'2':
{
if(polozka2->isPNode()==false)
{
polozka2->pop();
}
}
break;
case'3':
{
if(polozka3->isPNode()==false)
{
polozka3->pop();
}
}
break;
default: cout <<"out of range"<<endl;
break;
}
}
break;
case'r':
{
/*if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
break;
}*/
fr.open("inventory.txt");
if (!fr)
{
cout << "nisam otvorio fajl";
fr.close();
break;
}
fr >> p_fajl;
for (n=0; n<p_fajl;n++)
{
fr >>a;
fr >>komad;
fr >>cena;
akt=a[0];
switch(akt)
{
case '1': polozka1->push(a[0],atoi(komad), a[1], atof(cena));break;
case '2': polozka2->push(a[0],atoi(komad), a[1], atof(cena));break;
case '3': polozka3->push(a[0],atoi(komad), a[1], atof(cena));break;
default: cout <<"greska";
break;
}
cout<<uspesno ucitani podatci"<<endl;
} break;
}break;
break;
case's':
{
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout <<"everything is empty";
break;
}
polozka1->stats();
polozka2->stats();
polozka3->stats();
}
break;
case'w':
{
fw.open("inventory.txt");
if (!fw)
{
cout << "greska prilikom otvaranja fajla";
fw.close();
break;
}
if((polozka1->pocetU + polozka2->pocetU + polozka3->pocetU)==0)
{
cout << "fajl je prazan";
}
fw <<polozka1->pocetU + polozka2->pocetU + polozka3->pocetU<<endl;
polozka1->write();
polozka2->write();
polozka3->write();
cout<<"zapisano u fajl inventory.txt";
fw.close();
}
break;
case'c':
system("cls");
default:cout<<"greska"<<endl;
break;
}
} while(volba!='e');
return 0;
}