Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- class tVrstaRobe {
- public:
- static size_t brojac;
- int
- id,
- godinaProizvodnje;
- char roba[25];
- void unos() {
- int identifikator;
- do {
- cout << "Identifikator: "; cin>>identifikator;
- } while(!(identifikator >= 100 && identifikator <= 999));
- id = identifikator;
- cout << "Roba: "; cin>>roba;
- cout << "Godina proizvodnje: "; cin>>godinaProizvodnje;
- }
- void ispis() {
- cout << "Identifikator: " << id << endl <<
- "Roba: " << roba << endl <<
- "Godina proizvodnje: " << godinaProizvodnje << endl;
- }
- };
- tVrstaRobe Aroba[50];
- size_t tVrstaRobe::brojac=0;
- class tRoba {
- public:
- int
- redniBroj,
- id;
- char
- dobavljac[25],
- primjedba[25];
- bool unos() {
- cout << "Identifikator: "; cin>>id;
- bool pronaden = false;
- for(size_t i=0;i<tVrstaRobe::brojac;i++) {
- if(Aroba[i].id == id) {
- pronaden=true;
- break;
- }
- }
- if(!pronaden) {
- cout << "Ne postoji vrsta robe s tim identifikatorom. " << endl;
- return 0;
- }
- cout << "Redni broj robe: "; cin>>redniBroj;
- cout << "Dobavljač: "; cin>>dobavljac;
- cout << "Primjedba: "; cin>>primjedba;
- return 1;
- }
- void ispis() {
- cout << "Identifikator: " << id << endl <<
- "Redni broj robe: " << redniBroj << endl <<
- "Dobavljač: " << dobavljac << endl <<
- "Primjedba: " << primjedba << endl;
- }
- };
- void unosVrsteRobe() {
- Aroba[tVrstaRobe::brojac++].unos();
- }
- void ispisVrstaRobe() {
- for(size_t i=0;i<tVrstaRobe::brojac;i++)
- Aroba[i].ispis();
- }
- void unosRobe() {
- ofstream dat("datoteka.dat", ios::binary | ios::app);
- tRoba zapis;
- if(zapis.unos())
- dat.write((char*)&zapis, sizeof(zapis));
- dat.close();
- }
- void ispisZadaneRobe() {
- int identifikator;
- tRoba zapis;
- cout << "Identifikator: "; cin>>identifikator;
- ifstream dat("datoteka.dat",ios::binary);
- while(dat.read((char*)&zapis,sizeof(zapis))) {
- if(zapis.id == identifikator) {
- zapis.ispis();
- }
- }
- dat.close();
- }
- void statistika() {
- cout << "Broj vrsta robe: " << tVrstaRobe::brojac << endl;
- ifstream dat("datoteka.dat",ios::binary);
- int brojacRoba = 0;
- int zbrojRoba = 0;
- tRoba zapis;
- while(dat.read((char*)&zapis, sizeof(zapis))) {
- zbrojRoba += zapis.id;
- brojacRoba++;
- }
- dat.close();
- cout << "Broj robe: " << brojacRoba << endl;
- cout << "Aritmeticka sredina id-a robe: " << (float)zbrojRoba / brojacRoba << endl;
- }
- void ispisiPoKljucu() {
- int identifikator;
- cout << "Identifikator: "; cin>>identifikator;
- int pronadenaVrstaRobe=false;
- for(size_t i=0;i<tVrstaRobe::brojac;i++) {
- if(identifikator==Aroba[i].id) {
- pronadenaVrstaRobe=true;
- cout << "Vrsta robe------" << endl;
- Aroba[i].ispis();
- ifstream dat("datoteka.dat",ios::binary);
- tRoba zapis;
- bool pronadenaRoba = false;
- while(dat.read((char*)&zapis,sizeof(zapis))) {
- if(identifikator == zapis.id) {
- pronadenaRoba = true;
- cout << "Roba------" << endl;
- zapis.ispis();
- break;
- }
- }
- dat.close();
- if(!pronadenaRoba)
- cout << "Nema robe s tim identifikatorom." << endl;
- }
- }
- if(!pronadenaVrstaRobe)
- cout << "Nema vrste robe s tim identifikatorom. " << endl;
- }
- void ispisVrsteRobaSRobom() {
- for(size_t i=0;i<tVrstaRobe::brojac;i++) {
- ifstream dat("datoteka.dat",ios::binary);
- tRoba zapis;
- while(dat.read((char*)&zapis,sizeof(zapis))) {
- if(Aroba[i].id == zapis.id) {
- Aroba[i].ispis();
- break;
- }
- }
- dat.close();
- }
- }
- int main() {
- ofstream dat("datoteka.dat");
- dat.close();
- int unos;
- do {
- cout << "1. Upis vrste robe" << endl <<
- "2. Ispis vrsta roba" << endl <<
- "3. Upis robe" << endl <<
- "4. Ispis zadane robe preko id-a" << endl <<
- "5. Ukupan elemenata obje strukture, arit. sredina identifikatora iz robe" << endl <<
- "6. Ispisi po identifikatoru" << endl <<
- "7. Ispis vrste roba koje imaju robu" << endl <<
- "9. Izlaz" << endl;
- cin>>unos;
- switch(unos) {
- case 1:
- unosVrsteRobe();
- break;
- case 2:
- ispisVrstaRobe();
- break;
- case 3:
- unosRobe();
- break;
- case 4:
- ispisZadaneRobe();
- break;
- case 5:
- statistika();
- break;
- case 6:
- ispisiPoKljucu();
- break;
- case 7:
- ispisVrsteRobaSRobom();
- break;
- }
- } while(unos!=9);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement