Kod: |
cout << r3.gledaj() << endl;
cout << r3.gledaj() << endl; cout << r3.premotaj() << endl; cout << r3.premotaj() << endl; |
Kod: |
cout << r.vrati(r3) << endl;
cout << r3.premotaj() << endl; |
Anonymous (napisa): |
ovako,u zadaći imam napraviti klase knjiga i knjižnica, i u klasi knjiga imam funkciju: bool citaj(unsigned int broj_stranice), pa me zanima što ova funkcija točno radi i di mi je definiran broj stranica, tj. gdje da ga definiram ![]() pa ako netko ima sličan problem, ili slučajno zna rješenje...zahvaljujem unaprijed ![]() |
Gino (napisa): | ||||
za grupu film-videoteka
sto bi trebao ispisati sljedeci dio koda (r3 je film)
dakle jasno je da ako nije gledan do tad, prvi put se ispise 1, drugi put 0, i kod prvog premotavanja vratim 1, no sad neznam jel i ovo drugo premotavanje vraca 1, jer je film pogledan (prije) ili 0 jer nije pogledan nakon premotavanja a sto sljedeci (r je videoteka), upitna je zadnja linija
dal to vraca 1 jer je film nekad pogledan, ili vraca 0, jer ga je osoba premotala pa sad nema potrebe, i dali u slucaju da ga osoba nije premotala to vrati 1, ili, ono sto se nadam, nece se pozivat funkcija ako film nije posuden, ili ce u tom slucaju (film nije posuden) morat vratit 0 obja funkcije, gledaj i premotaj |
Kod: |
bool iznajmi(string ime_osobe); |
Tindariel (napisa): | ||
Zna li tko što točno radi funkcija
u grupi s automobilima? |
Kod: |
#include "videoteka.h" void ispisi (vector <film*> v) { int i; for (i=0; i<v.size(); i++) cout<<v[i]->IME<<endl; cout<<endl; } void ispisi (vector <videoteka*> v) { int i; for (i=0; i<v.size(); i++) cout<<v[i]->IME<<endl; cout<<endl; } void ispisi (set <string> v) { set<string>::iterator i; for (i=v.begin(); i!=v.end(); i++) cout<<(*i)<<endl; cout<<endl; } void ispisi (list <film*> v) { list<film*>::iterator i; for (i=v.begin(); i!=v.end(); i++) cout<<(*i)->IME<<endl; cout<<endl; } void ispisi (list <videoteka*> v) { list<videoteka*>::iterator i; for (i=v.begin(); i!=v.end(); i++) cout<<(*i)->IME<<endl; cout<<endl; } void ispisi (videoteka &v) { cout<<v.naziv<<endl; cout<<"Cijena premotavanja: "<<v.NESTO<<", cijena preseljenja: "<<v.NESTO<<endl; cout<<"Trenutno dostupni filmovi:"<<endl; ispisi(v.trenutno_dostupni_filmovi()); } void ispisi (film &f) { cout<<f.naziv<<endl; cout<<"Vlasnistvo videoteke: "<<f.naziv_videoteke()<<endl; cout<<"Posudjen: "; if (NESTO) cout<<"ne, "; else cout<<"da, "; cout<<"pogledan: "; if (NESTO) cout<<"ne, "; else cout<<"da, "; cout<<"premotan: "; if (NESTO) cout<<"ne"<<endl; else cout<<"da"<<endl; if (NESTO) cout<<"Trenutno u posudbi kod: "<< " NEKOG " <<endl; cout<<"Dosadasnji posudjivaci:"<<endl; ispisi(f.osobe_koje_su_posudile_film()); } int main(){ videoteka pula("Pula",10,50),zagreb("Zagreb",5,20),rijeka("Rijeka",15,35); film p1(pula,"p1",60), p2(pula,"p2",65), p3(pula,"p3",55), p4(pula,"p4",100); film r1(rijeka,"r1",5), r2(rijeka,"r2",15), r3(rijeka,"r3",75); film z1(zagreb,"z1",10), z2(zagreb,"z2",10), z3(zagreb,"z3",25), z4(zagreb,"z4",35), z5(zagreb,"z5",40); ispisi(film::svi_filmovi); ispisi(videoteka::sve_videoteke); ispisi(pula); ispisi(r3); cout << pula.posudi(r1,"Gavran") << endl; cout << pula.posudi(p2,"Melkior") << endl; cout << rijeka.posudi(r3,"Sus") << endl; cout << zagreb.posudi(z5,"Mario") << endl; cout << endl; /* STANJE GAVRAN () MELKIOR (P2) P2 SUS (R3) R3 MARIO (Z5) Z5 */ cout << pula.osoba_vraca_film("Gavran") << endl; cout << rijeka.osoba_vraca_film("Melkior") << endl; cout << pula.posudi(p2,"Melkior") << endl; cout << zagreb.posudi(z5,"Gavran") << endl; cout << zagreb.posudi(z4,"Gavran") << endl; cout << endl; /* STANJE GAVRAN (Z4) Z4 MELKIOR (P2) SUS (R3) R3 MARIO (Z5) Z5 */ ispisi(zagreb); cout << z5.gledaj() << endl; cout << rijeka.vrati(z5) << endl; cout << r3.gledaj() << endl; cout << r3.gledaj() << endl; cout << r3.premotaj() << endl; cout << r3.premotaj() << endl; cout << rijeka.vrati(r3) << endl; cout << z4.gledaj() << endl; cout << z4.vrati(pula) << endl; cout << endl; /* STANJE GAVRAN (Z4) MELKIOR (P2) SUS (R3) MARIO (Z5) */ cout << p1.posudi("Gavran") << endl; cout << z1.posudi("Melkior") << endl; cout << r1.posudi("Sus") << endl; cout << r2.posudi("Mario") << endl; cout << endl; /* STANJE GAVRAN (Z4,P1) P1 MELKIOR (P2,Z1) Z1 SUS (R3,R1) R1 MARIO (Z5,R2) R2 */ ispisi(rijeka); cout << z1.naziv_videoteke() << endl; cout << z1.vrati(pula) << endl; cout << zagreb.posudi(z4,"Melkior") << endl; ispisi(z4.osobe_koje_su_posudile_film()); /* STANJE GAVRAN (Z4,P1) P1 MELKIOR (P2,Z1,Z4) Z4 SUS (R3,R1) R1 MARIO (Z5,R2) R2 */ ispisi(film::trenutno_dostupni_filmovi()); ispisi(*film::najposudjivaniji_film()); ispisi(rijeka.filmovi_pogledani("Mario")); ispisi(videoteka::filmovi_pogledani_svuda("Sus")); // to be continued... { film p5(pula,"p5",50); cout << pula.vrati(r1) << " " ; cout << r2.gledaj() << " " ; cout << r2.premotaj() << " " ; cout << r2.vrati(pula) << endl; cout << p5.posudi("Sus") << " " ; cout << r2.posudi("Sus") << endl; } cout << r2.posudi("Sus") << endl; cout << endl; /* STANJE GAVRAN (Z4,P1) P1 MELKIOR (P2,Z1,Z4) Z4 SUS (R3,R1,[P5],R2) R2 MARIO (Z5,R2) */ cout << pula.vrati(p1) << " " ; cout << r2.premotaj() << " " ; cout << r2.gledaj() << " " ; cout << r2.vrati(zagreb) << endl; cout << endl; cout << zagreb.osoba_vraca_film("Nitko") << " " ; cout << rijeka.osoba_vraca_film("Melkior") << " " ; cout << zagreb.posudi(z5,"Mario") << " " ; cout << zagreb.posudi(z4,"Mario") << " " ; cout << pula.posudi(p3,"Mario") << " " ; cout << pula.posudi(p3,"Gavran") << endl; cout << endl; /* STANJE GAVRAN (Z4,P1,P3) P3 MELKIOR (P2,Z1,Z4) SUS (R3,R1,[P5],R2) MARIO (Z5,R2,Z4) Z4 */ cout << film::nadji_film("z2")->posudi("Sus") << " " ; cout << videoteka::nadji_videoteku("Zagreb")->posudi(z3,"Melkior") << "-" ; cout << p3.premotaj() << " " ; cout << p3.gledaj() << " " ; cout << p3.premotaj() << " " ; cout << z3.gledaj() << " " ; cout << z2.premotaj() << "-" ; cout << z3.gledaj() << " " ; cout << z2.premotaj() << " " ; cout << z2.gledaj() << " " ; cout << z2.premotaj() << " " ; cout << z4.gledaj() << endl; cout << endl; cout << z4.vrati(pula) << " " ; cout << pula.vrati(p2) << " " ; cout << pula.vrati(p3) << " " ; cout << rijeka.osoba_vraca_film("Sus") << " " ; cout << zagreb.osoba_vraca_film("Melkior") << endl; cout << endl; /* STANJE GAVRAN (Z4,P1,P3) MELKIOR (P2,Z1,Z4,Z3) SUS (R3,R1,R2,Z2) MARIO (Z5,R2,Z4) */ ispisi(videoteka::nadji_videoteku(z4.naziv_videoteke())->filmovi_pogledani("Gavran")); ispisi(pula.filmovi_pogledani("Sus")); ispisi(videoteka::filmovi_pogledani_svuda("Mario")); ispisi(film::trenutno_dostupni_filmovi()); ispisi(*film::najposudjivaniji_film()); cout << film::nadji_film("r2")->posudi("Gavran") << endl << endl; ispisi(*film::najposudjivaniji_film()); return 0; } |
Citat: |
p1
p2 p3 p4 r1 r2 r3 z1 z2 z3 z4 z5 Pula Zagreb Rijeka Pula Cijena premotavanja: 10, cijena preseljenja: 50 Trenutno dostupni filmovi: p1 p2 p3 p4 r3 Vlasnistvo videoteke: Rijeka Posudjen: ne, pogledan: ne, premotan: da Dosadasnji posudjivaci: 0 1 1 1 0 100 0 0 1 Zagreb Cijena premotavanja: 5, cijena preseljenja: 20 Trenutno dostupni filmovi: z1 z2 z3 1 80 1 0 1 0 75 1 90 1 1 1 1 Rijeka Cijena premotavanja: 15, cijena preseljenja: 35 Trenutno dostupni filmovi: r3 Zagreb 60 1 Gavran Melkior p2 p3 p4 r3 z1 z2 z3 z5 z4 Vlasnistvo videoteke: Zagreb Posudjen: da, pogledan: ne, premotan: da Trenutno u posudbi kod: NEKOG Dosadasnji posudjivaci: Gavran Melkior r2 r1 r3 55 1 1 65 1 0 1 60 0 1 50 0 70 0 1 0 1 1 1-0 1 1 1 0-0 0 1 1 1 90 0 55 45 30 z4 r2 z4 z5 p1 p2 p3 p4 r1 r2 r3 z1 z2 z3 z4 z5 z4 Vlasnistvo videoteke: Zagreb Posudjen: ne, pogledan: da, premotan: ne Dosadasnji posudjivaci: Gavran Mario Melkior 1 r2 Vlasnistvo videoteke: Rijeka Posudjen: da, pogledan: ne, premotan: da Trenutno u posudbi kod: NEKOG Dosadasnji posudjivaci: Gavran Mario Sus |
mycky1111 (napisa): |
primjera radi, sto vraca funcija nadi_videoteku ako ta videoteka ne postoji? ja sam shvatila NULL, al jesam dobro shvatila?! |
mycky1111 (napisa): |
e, zasto imate posebne mainove? |
mycky1111 (napisa): |
zar neciji main za videoteku ne bi trebao radit i na moj program? |
mycky1111 (napisa): |
mislim ime videoteke je ime, ime filma je definirano kao ime_filma |
mycky1111 (napisa): |
mislim, nece oni tipkat 100 mainova? |
mycky1111 (napisa): |
e i, ako ja zelim gledat film, mora li mi gledan bit "ne", mislim mogu li gledat film koji je gledan, i kad premotan film, jer mi moram stavit i gledan "ne" |
Gino (napisa): |
void ispisi (film &f) {
cout<<f.naziv<<endl; ... } |
Kod: |
#include "autokuca.h" #include <iostream> int main() { autokuca *A = new autokuca("Vrdoljak", 200); autokuca *B = new autokuca("Buric", 250); autokuca *C = new autokuca("Dojkic", 220); automobil *p = new automobil(*B, "ZG-524-RB", 100, 12); automobil *q = new automobil(*C, "RI-243-TB", 120, 15); automobil *r = new automobil(*B, "ZG-672-GR", 180, 13); automobil *s = new automobil(*A, "OS-935-AT", 160, 15); automobil *t = new automobil(*A, "VU-106-ZA", 145, 18); automobil *u = new automobil(*C, "ZG-534-IG", 130, 11); automobil *v = new automobil(*C, "ZD-714-PB", 140, 14); automobil *w = new automobil(*A, "BJ-645-GT", 155, 17); automobil *x = new automobil(*A, "ST-702-ME", 160, 15); cout << "Dostupni automobili u autokuci Dojkic: " << endl; vector<automobil*> tren_dost = (autokuca::nadji_autokucu("Dojkic"))->trenutno_dostupni_automobili(); for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it) cout << (*it)->registracija << endl; cout << "Marko iznajmljuje automobil r u autokuci A: " << A->iznajmi(*r, "Marko") << endl; cout << "Marko iznajmljuje automobil r: " << r->iznajmi("Marko") << endl; r->dolij_goriva(200); r->vozi(50); r->vozi(70); cout << "Dostupni automobili u autokuci Buric: " << endl; tren_dost = (autokuca::nadji_autokucu("Buric"))->trenutno_dostupni_automobili(); for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it) cout << (*it)->registracija << endl; cout << "Marko vraća automobil r u autokucu C: " << C->vrati(*r) << endl; cout << "Ivica iznajmljuje automobil s: " << s->iznajmi("Ivica") << endl; cout << "Ivica iznajmljuje automobil t: " << t->iznajmi("Ivica") << endl; p->dolij_goriva(30); p->vozi(50); cout << "Marin iznajmljuje automobil x: " << x->iznajmi("Marin") << endl; cout << "Branko iznajmljuje automobil x: " << x->iznajmi("Branko") << endl; cout << "Iznajmljeni automobili u A: " << endl; map<string, automobil*> iznajmljeni_u_A = A->iznajmljeni_automobili(); for (map<string, automobil*>::iterator it = iznajmljeni_u_A.begin(); it != iznajmljeni_u_A.end(); ++it) cout << (*it).first << " " << (*it).second->registracija << endl; cout << "Sve autokuce: " << endl; for (list<autokuca*>::iterator it = autokuca::sve_autokuce.begin(); it != autokuca::sve_autokuce.end(); ++it) cout << (*it)->ime_autokuce << endl; cout << "Automobil registracije BJ-645-GT nalazi se u autokuci: " << automobil::nadji_automobil("BJ-645-GT")->naziv_autokuce() << endl; cout << "Vraćam x u autokucu A: " << x->vrati(*A) << endl; cout << "Ivan iznajmljuje r: " << r->iznajmi("Ivan") << endl; cout << "Osobe koje su iznajmile automobil r: " << endl; set<string> osobe_r = r->osobe_koje_su_iznajmile_automobil(); for (set<string>::iterator it = osobe_r.begin(); it != osobe_r.end(); ++it) cout << *it << endl; cout << "Popis trenutno dostupnih automobila: " << endl; vector<automobil*> d = automobil::trenutno_dostupni_automobili(); for (vector<automobil*>::iterator it = d.begin(); it != d.end(); ++it) cout << (*it)->registracija << endl; cout << "Vračam s u autokucu B: " << s->vrati(*B) << endl; cout << "Danijel iznajmljuje s: " << s->iznajmi("Danijel") << endl; s->dolij_goriva(80); s->vozi(80); cout << "Danijel vraća s u B: " << B->osoba_vraca_automobil("Danijel") << endl; automobil *najpos = automobil::najposudjivaniji_automobil(); cout << "Najposuđivaniji automobil: " << najpos->registracija << endl; s->dolij_goriva(40); s->vozi(40); najpos = automobil::najposudjivaniji_automobil(); cout << "Najposuđivaniji automobil: " << najpos->registracija << endl; // testiranje destruktora cout << "Obrisan x!" << endl; delete x; cout << "Automobili dostupni u A: " << endl; tren_dost = A->trenutno_dostupni_automobili(); for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it) cout << (*it)->registracija << endl; cout << "Obrisani w, t i s" << endl; delete w; delete t; delete s; cout << "Automobili dostupni u A: " << endl; tren_dost = A->trenutno_dostupni_automobili(); for (vector<automobil*>::iterator it = tren_dost.begin(); it != tren_dost.end(); ++it) cout << (*it)->registracija << endl; cout << "Obrisana autokuca A" << endl; delete A; cout << "Sve autokuce: " << endl; for (list<autokuca*>::iterator it = autokuca::sve_autokuce.begin(); it != autokuca::sve_autokuce.end(); ++it) cout << (*it)->ime_autokuce << endl; return 0; } |
Citat: |
Dostupni automobili u autokuci Dojkic: RI-243-TB ZD-714-PB ZG-534-IG Marko iznajmljuje automobil r u autokuci A: 0 Marko iznajmljuje automobil r: 1 Dostupni automobili u autokuci Buric: ZG-524-RB Marko vraća automobil r u autokucu C: -640 Ivica iznajmljuje automobil s: 1 Ivica iznajmljuje automobil t: 0 Marin iznajmljuje automobil x: 1 Branko iznajmljuje automobil x: 0 Iznajmljeni automobili u A: Ivica OS-935-AT Marin ST-702-ME Sve autokuce: Vrdoljak Buric Dojkic Automobil registracije BJ-645-GT nalazi se u autokuci: Vrdoljak Vraćam x u autokucu A: 160 Ivan iznajmljuje r: 1 Osobe koje su iznajmile automobil r: Ivan Marko Popis trenutno dostupnih automobila: BJ-645-GT RI-243-TB ST-702-ME VU-106-ZA ZD-714-PB ZG-524-RB ZG-534-IG Vračam s u autokucu B: 410 Danijel iznajmljuje s: 1 Danijel vraća s u B: 410 Najposuđivaniji automobil: ZG-672-GR Najposuđivaniji automobil: OS-935-AT Obrisan x! Automobili dostupni u A: BJ-645-GT OS-935-AT VU-106-ZA Obrisani w, t i s Automobili dostupni u A: Obrisana autokuca A Sve autokuce: Buric Dojkic |
Kardinal (napisa): |
Evo jedan primjer maina za autokuce |
Anonymous (napisa): |
ja imam knjižnice, i definitivno mi nije jasno što da radim s ovim stranicama?? kako ću naći najpoderivaniju stranicu,kad ne znam koliko ih ima? jedino,ako ova f-ja ne podere tu stranicu(šala) ![]() ![]() ![]() ![]() |
Tindariel (napisa): |
E, da... na to da automobil i autokuća mogu biti uništeni sam potpuno zaboravila...
Kad automobil može biti uništen? U sudaru? Ili samo tak, sam od sebe, može odlučit crknut? I od kud programu treba doći informacija da je automobil uništen? Autokuća je uništena ako nema ni jednog automobila? Ili se treba još nešto dogodit...? |
Gino (napisa): |
moze bit unisten i bez delete, pogledaj u mom mainu ![]() |
Tindariel (napisa): |
Ali, u svakom slučaju, uništava ga se tek u mainu? Onda se main valjda pobrine da se taj automobil zbriše i iz liste svih automobila, pa ne bi trebalo pazit na uvjet je li taj automobil još živ... Barem se nadam ![]() |
Kardinal (napisa): |
Ne brine se main o njihovom brisanju iz liste, brine se jedna vesela funkcija zastrašujućeg imena koja se poziva pri uništavanju objekata ![]() |
Tindariel (napisa): |
Zar se ne pozivaju destruktori na kraju programa tek? Ili se varam ![]() |
Kardinal (napisa): |
ili na kraju kad se automatski prikolju svi objekti ili kad se pozove delete. Dakle, stavljaš to uklanjanje iz liste u destruktor. |
Kardinal (napisa): |
S obzirom da ne vidim ništa što bi asociralo na uništavanje objekata, pretpostavljam da je kraj programa u pitanju ![]() ![]() |
Kod: |
ispisi(videoteka::filmovi_pogledani_svuda("Sus"));
// to be continued... { film p5(pula,"p5",50); cout << pula.vrati(r1) << " " ; cout << r2.gledaj() << " " ; cout << r2.premotaj() << " " ; cout << r2.vrati(pula) << endl; cout << p5.posudi("Sus") << " " ; cout << r2.posudi("Sus") << endl; } cout << r2.posudi("Sus") << endl; cout << endl; |
Kardinal (napisa): |
Hm, ne znam zbog čega bi osobi koja ne zna tekst zadatka išta od ovog impliciralo da se neki objekt uništava... ![]() |
Gino (napisa): |
jer to nema veze sa textom zadatke film p5 je definiram u onom bloku, i na kraju istog se poziva njegov destruktor |
there is no spoon (napisa): |
imam problem sa shvacanjem zadatka
autokucu imam. nije mi bas najjasnije ovo sa gorivom. imam neke ideje sto bi bilo najlogicnije, ali kako nije precizirano moram pitat dakle, koliko goriva automobil ima na pocetku (pri kreiranju objekta automobil)? pretpostavljam nula sto biva sa funkcijom vozi ako nema dovoljno goriva (opet, pretpostavljam da odvozi koliko moze tj dok gorivo ne dodje do nule) gorivo vrlo vjerojatno ne ide u minus? e sad, u trenutku posudjivanja automobil valjda ima goriva koliko mu je ostalo od prethodnog vozaca (ili autokuca to vrati na nulu ili neki vec broj)? osoba koja posudi automobil ga vozi, vozi, dolije gorivo, vozi, dolije gorivo, vozi. meni nije bitno koliko je on sve skupa dolijevao goriva jer to radi o svom trosku neovisno od autokuce, jel tako? tj., meni je samo bitna razlika u kolicini goriva na pocetku posudbe i pri vracanju? molim da-ove, ili ne-ove s objasnjenjima nakon svakog odlomka hvala |
tmarusca (napisa): |
vidim nitko ne spominje pa moram ja, valjda nije glupo pitanje:/
struct knjiznica struct knjiga unutar struct knjiga je fukncija string naziv_knjiznice kak se to izvodi? |
Milojko (napisa): | ||
ja sam tu funkciju napravio tak da u skup parova ubacujem parove. možd bi to ljepše bilo sa map<int, int>, al dobro. za svaki poziv te funkcije skrolam po skupu i tražim dal je u njemu neki par kojem je prvi element broj_stranice koji tražim. ak ga ima, onda mu sam povećam ovaj drugi element za jedan, ak ga nema, ubacim unutra par (broj_stranice, 1). men opet malo nisu jasne ove funkcije posudi, vrati, u knjizi, i u knjižnici one dvije funkcije vraćanja s gotovo jednakim opisom |
main.cpp | |||
Description: |
|
![]() Download |
|
Filename: | main.cpp | ||
Filesize: | 87.11 KB | ||
Downloaded: | 197 Time(s) |
Kod: |
int osoba_vraca_automobil(string ime_osobe); // vraća cijenu koju osoba treba platiti |
Milojko (napisa): | ||
mislim dabi ta funkcija trebala vratiti ime knjižnice u kojoj se data knjiga nalazi. |
tmarusca (napisa): | ||||
jasno je sto vraca, pitanje je kako to izvesti? |
Kod: |
film A( ... ); ... Netko je posudio film ... A.gledaj(); A.premotaj(); A.premotaj(); |
Kod: |
if(F.size()==0) return F;
for(i=0;i<F.size()-1;++i) for(j=i+1;j<F.size();++j) if (F[i]->ime_filma > F[j]->ime_filma){ film* t=F[i]; F[i]=F[j]; F[j]=t; } |
Citat: |
(...)
ispisi(zagreb); cout << z5.gledaj() << endl; cout << rijeka.vrati(z5) << endl; cout << r3.gledaj() << endl; cout << r3.gledaj() << endl; cout << r3.premotaj() << endl; cout << r3.premotaj() << endl; cout << rijeka.vrati(r3) << endl; cout << z4.gledaj() << endl; cout << z4.vrati(pula) << endl; cout << endl; |
Citat: |
Zagreb Cijena premotavanja: 5, cijena preseljenja: 20 Trenutno dostupni filmovi: z1 z2 z3 1 80 1 0 1 0 75 1 90 |
Gino (napisa): |
premotavanje se desi u videoteci koja je vlasnik, dakle u zagrebu u konkretnom slucaju |
Kod: |
struct film{
videoteka *video; //... film::film(videoteka& v, string ime_filma, unsigned int cijena_vracanja){ video=&v; //... |
Citat: |
kako knjiga može biti unštena dok je posuđena |
Citat: |
Zašto mi kompajler javlja da string (u deklaraciji) nije tip kad rastavim program na .h i .cpp datoteku? |
Tindariel (napisa): |
Zašto mi kompajler javlja da string (u deklaraciji) nije tip kad rastavim program na .h i .cpp datoteku? Inače, kad je sve u jednoj datoteci, nema takvih primjedbi. ![]() |
Anonymous (napisa): |
da, to prođe..ali mi sad javlja greške tipa: undefined reference to `knjiga::sve_knjige' i tako na sve statičke funkcije? |
Kod: |
#include <iostream>
#include <string> #include <list> using namespace std; #include "videoteka.h" void ispisiFilmove(const vector<film*>& f) { for (int i = 0; i<f.size(); ++i) cout << f[i]->ime_filma << endl; cout << endl; } void ispisiSet(const set<string>& ss) { for (set<string>::const_iterator i = ss.begin(); i != ss.end(); ++i) cout << *i << endl; cout << endl; } int main() { videoteka a("videoteka a", 2, 7); film prvi(a, "prvi", 10); film drugi(a, "drugi", 15); { film treci(a, "treci", 11); videoteka b("videoteka b", 1, 5); film cetvrti(b, "cetvrti", 8); cout << a.posudi(cetvrti, "ivo ivic") << endl; // 0; film nije u toj videoteci cout << b.posudi(cetvrti, "ivo ivic") << endl; // 1; ivo ivic posudjuje taj film cout << a.posudi(prvi, "ivo ivic") << endl; // 0; ivo ivic je vec posudio film cout << cetvrti.premotaj() << endl; // 0; film jos nije pogledan cout << cetvrti.gledaj() << endl; // 1 cout << cetvrti.premotaj() << endl; // 1 cout << cetvrti.gledaj() << endl; // 1 cout << a.vrati(cetvrti) << endl; // 16 = 7(preseljenje iz A u B) +8(posudjivanje filma ) + 1(premotavanje u B) cout << a.posudi(prvi, "ivo ivic") << endl; // 1; cout << a.posudi(prvi, "marko markic") << endl; // 0; film je vec posudjen ispisiFilmove(a.trenutno_dostupni_filmovi()); // drugi // treci // ispisiFilmove(film::trenutno_dostupni_filmovi()); // cetvrti // drugi // treci // cout << b.osoba_vraca_film("jozo jozic") << endl; // 0 cout << b.osoba_vraca_film("ivo ivic") << endl; // 15 = 5(preseljenje iz B u A) + 10(posudjivanje filma) videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL v = videoteka::nadji_videoteku("videoteka b"); // v = &b ispisiFilmove(a.filmovi_pogledani("ivo ivic")); // prvi // ispisiFilmove(a.filmovi_pogledani_svuda("ivo ivic")); // cetvrti // prvi // } ispisiFilmove(a.filmovi_pogledani_svuda("ivo ivic")); // prvi // ispisiFilmove(film::trenutno_dostupni_filmovi()); // drugi // prvi // film* f = film::nadji_film("nema ga"); // NULL f = film::nadji_film("prvi"); // f = &prvi; f = film::najposudjivaniji_film(); // f = &prvi; ispisiSet(f.osobe_koje_su_posudile_film()); // ivo ivic // return 0; } |
vinko (napisa): |
Evo maina za videoteku |
vinko (napisa): |
Evo maina za videoteku (na strukturu film dodajte još element string ime_filma): |
Anonymous (napisa): | ||
Biste li mogli staviti i main za autokucu? Hvala! ![]() |
Kod: |
#include "autokuca.h" #include <iostream> #include <string> #include <list> #include <set> #include <map> using namespace std; void ispisiAutomobile(const vector<automobil*>& va) { for (int i = 0; i<va.size(); ++i) cout << va[i]->registracija << endl; cout << endl; } void ispisiTrenutnoIznajmljene(const map<string, automobil*>& msa) { for (map<string, automobil*>::const_iterator i = msa.begin(); i != msa.end(); ++i) cout << i->first << ": " << i->second->registracija << endl; cout << endl; } void ispisiSet(const set<string>& ss) { for (set<string>::const_iterator i = ss.begin(); i != ss.end(); ++i) cout << *i << endl; cout << endl; } int main() { autokuca a("autokuca a", 7); automobil prvi(a, "ZG111AA", 10, 2); automobil drugi(a, "ZG222AA", 15, 2); { automobil treci(a, "ZG333AA", 11, 3); autokuca b("autokuca b", 5); automobil cetvrti(b, "ZG444BB", 8, 3); cout << a.iznajmi(cetvrti, "ivo ivic") << endl; // 0; automobil nije u toj autokuci cout << b.iznajmi(cetvrti, "ivo ivic") << endl; // 1; ivo ivic iznajmljuje taj automobil cout << a.iznajmi(prvi, "ivo ivic") << endl; // 0; ivo ivic je vec iznamio automobil cetvrti.vozi(10); cetvrti.vozi(20); cetvrti.dolij_goriva(15); cout << a.vrati(cetvrti) << endl; // 60 = 7(preseljenje iz A u B) +8(iznajmljivanje) + 45(goriva nedostaje za 15 km) cout << a.iznajmi(prvi, "ivo ivic") << endl; // 1; cout << a.iznajmi(prvi, "marko markic") << endl; // 0; automobil je vec iznajmljen ispisiAutomobile(a.trenutno_dostupni_automobili()); // ZG222AA // ZG333AA // ispisiAutomobile(automobil::trenutno_dostupni_automobili()); // ZG222AA // ZG333AA // ZG444BB // ispisiTrenutnoIznajmljene(a.iznajmljeni_automobili()); // ivo ivic: ZG111AA // cout << b.osoba_vraca_automobil("jozo jozic") << endl; // 0 cout << b.osoba_vraca_automobil("ivo ivic") << endl; // 15 = 5(preseljenje iz B u A) + 10(iznajmljivanje) autokuca *v = autokuca::nadji_autokucu("ove nema"); // NULL v = autokuca::nadji_autokucu("autokuca b"); // v = &b ispisiAutomobile(automobil::trenutno_dostupni_automobili()); // ZG111AA // ZG222AA // ZG333AA // ZG444BB // } ispisiAutomobile(automobil::trenutno_dostupni_automobili()); // ZG111AA // ZG222AA // ispisiSet(prvi.osobe_koje_su_iznajmile_automobil()); // ivo ivic // automobil* f = automobil::nadji_automobil("nema ga"); // NULL f = automobil::nadji_automobil("ZG111AA"); // f = &prvi; f = automobil::najposudjivaniji_automobil(); // f = &prvi; return 0; } |
Gino (napisa): | ||
jel se ocekuje da to tako posaljem, mislim meni se ime filma naziva naziv i za isprobat main rade promijenim vasu funkciju nego svoj kod ![]() |
Kod: |
#include "knjiznica.h"
#include <iostream> #include <string> #include <vector> #include <string> #include <list> using namespace std; void ispisiKnjige(const vector<knjiga*>& f) { for (int i = 0; i<f.size(); ++i) cout << f[i]->ime_knjige << endl; cout << endl; } void ispisiSet(const set<string>& ss) { for (set<string>::const_iterator i = ss.begin(); i != ss.end(); ++i) cout << *i << endl; cout << endl; } int main() { knjiznica a("knjiznica a", 7); knjiga prva(a, "prva", 10); knjiga druga(a, "druga", 15); { knjiga treca(a, "treca", 11); knjiznica b("knjiznica b", 5); knjiga cetvrta(b, "cetvrta", 8); cout << a.posudi(cetvrta, "ivo ivic") << endl; // 0; knjiga nije u toj knjiznici cout << b.posudi(cetvrta, "ivo ivic") << endl; // 1; ivo ivic posudjuje tu knjigu cout << a.posudi(prva, "ivo ivic") << endl; // 0; ivo ivic je vec posudio knjigu cout << cetvrta.citaj(111) << endl; // 1; stranica je citava cout << cetvrta.poderi(111) << endl; // 1; stranica nije bila poderana prije cout << cetvrta.citaj(100) << endl; // 1; stranica je citava cout << cetvrta.citaj(111) << endl; // 0; stranica je poderana cout << cetvrta.poderi(123) << endl; // 1; stranica nije bila poderana prije cout << a.vrati(cetvrta) << endl; // 23 = 7(preseljenje iz A u B) + 16(popravak 2 stranice) cout << a.posudi(prva, "ivo ivic") << endl; // 1; cout << a.posudi(prva, "marko markic") << endl; // 0; knjiga je vec posudjen ispisiKnjige(a.trenutno_dostupne_knjige()); // druga // treca // ispisiKnjige(knjiga::trenutno_dostupne_knjige()); // cetvrta // druga // treca // cout << b.osoba_vraca_knjigu("jozo jozic") << endl; // -1 cout << b.osoba_vraca_knjigu("ivo ivic") << endl; // 5 = 5(preseljenje iz B u A) knjiznica *v = knjiznica::nadji_knjiznicu("ove nema"); // NULL v = knjiznica::nadji_knjiznicu("knjiznica b"); // v = &b ispisiKnjige(a.knjige_procitane("ivo ivic")); // prva // ispisiKnjige(knjiznica::knjige_ostecene_svuda("ivo ivic")); // cetvrta // } ispisiKnjige(knjiznica::knjige_ostecene_svuda("ivo ivic")); // knjiga* f = knjiga::nadji_knjigu("nema je"); // NULL f = knjiga::nadji_knjigu("prva"); // f = &prva; ispisiSet(prva.osobe_koje_su_posudile_knjigu()); // ivo ivic // return 0; } |
Kardinal (napisa): |
Vezano uz autokuće, tek je sad vidljivo što je trebalo radit s gorivom... Ali gospon asistent, takve stvari se pišu u tekstu zadatka, a ne da mi to moramo sami iz mainova objavljenih na dan predaje čupat.... ![]() Hm, hm, i ne znam jel se to čini samo meni ili ste krivo iskomentirali output za autokuću?? Kako Vam nakon zatvaranja bloka može još uvijek postojati automobil treci? Kako Vam istovremenao automobil prvi moze biti i iznajmljen i dostupan???? |
bozidarsevo (napisa): |
koja je to fora da ima beskonačno goriva? zar ne bi bilo nekako bolje tj. stvarnije da auto kada je iznajmljen ima neku količinu goriva? npr. da stanje goriva u trenutku iznajmljivanja bude 20...
do kada će onda bit rok predaje? |
Kod: |
struct film{ ... videoteka* video; film( videoteka& v, unsigned int cijena_vracanja ){ ... } ... }; |
Kod: |
film::film( videoteka& v, ... ) |
Kod: |
struct film { ... videoteka& video; ... film( videoteka &v, ... ); ... }; |
Kod: |
film::film( videoteka& v, ... ){ ... video = v; ... } |
Kod: |
int x; int& rx = x; |
Kod: |
int x; int& rx; |
Kod: |
struct STRUKTURA { tip_1 var_1; // tip_1 i 2 mi mogu biti bilo koji tipovi ( int, double, pointer na nesto...) tip_2 var_2; STRUKTURA( tip_1 x, tip_2 y ); }; |
Kod: |
STRUKTURA( tip_1 x, tip_2 y ){ var_1 = x; var_2 = y; } |
Kod: |
STRUKTURA( tip_1 x, tip_2 y ): var_1( tip_1() ), var_2( tip_2() ) { var_1 = x; var_2 = y; } |
Kod: |
STRUKTURA( tip_1 x, tip_2 y ) :var_1( x ), var_2 (y) {} |
Kod: |
struct film{
... videoteka& video; film( videoteka& v, unsigned int cijena_vracanja ) : video(v){ ... } ... }; |
Anonymous (napisa): |
videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL v = videoteka::nadji_videoteku("videoteka b"); // v = &b zašto meni ništa ne ispisuje?jeli to ima veze s destruktorom,s obzirom da ne znam što da stavim u njega? ![]() |
Anonymous (napisa): |
meni recimo nisu jasna uništavanja objekata? da li to znači nešto vezano uz destruktor, što se uopće treba nalaziti u destuktoru? jel mi trebamo proći kroz listu objekata i onda uništiti onaj s kojim smo upravo radili?
npr.,nisu mi jasne dvije linije u mainu: videoteka *v = videoteka::nadji_videoteku("ove nema"); // NULL v = videoteka::nadji_videoteku("videoteka b"); // v = &b zašto meni ništa ne ispisuje?jeli to ima veze s destruktorom,s obzirom da ne znam što da stavim u njega? ![]() |
there is no spoon (napisa): | ||
meni output vinkovog maina ispada ovakav (drugaciji je od onoga u komentarima koda, ali po nekoj logici bi to trebalo biti tocno)
0 1 0 60 1 0 ZG222AA ZG333AA ZG222AA ZG333AA ZG444BB 0 15 ZG111AA ZG222AA ZG333AA ZG444BB ZG111AA ZG222AA ivo ivic Added after 3 minutes:
nista ti ne ispisuje jer u ova dva retka ni nema nikakvog ispisa. |
Anonymous (napisa): |
ako može još samo jedno pitanje da si to s uništavanjem definitivno razjasnim,netko je već to bio pitao ode na forumu( automobil je bio u pitanju),ali je taj netko i shvatio,pa ako može objašnjenje za nas(mene) koji još uvijek neshvaćamo ...u nekim f-jama je uvjet da je objekt još živ,da li mi trebamo provjeravat jeli objekt još živ? nevazno,automobil, film, knjiga...
ili to jednostavno zanemarimo |
Anonymous (napisa): |
U main-u za videoteku imamo viticaste zagrade koje nam sredinu odjeljuju. Jel mi netko moze rec sta bi nan to tribalo oznacavat?? |
Anonymous (napisa): |
Evo jedno pitanje:
u programu imam jednu globalnu varijablu koja se koristi u strukturama. Kada cijeli program imam u jednom fajlu, kompajlira se bez problema. Ali, kada rastavim program na *.h i na *.cpp kompajler se buni. Ako stavim globalnu varijablu u *.h datoteku, kompajler javlja grešku. ("ime_glob_var undeclared in this scope" ili tako nekako) Ako stavim globalnu varijablu u *.cpp datoteku, opet javlja grešku. Kamo onda staviti globalnu varijablu? |
Kod: |
struct KLASA { ... static list< KLASA* > sve_KLASE; }; |
Kod: |
KLASA::KLASA( ulazni parametri ){ ime = ulazno_ime; par_1 = prvi_ulazni_parametar; par_2 = drugi_ulazni_parametar; // itd... // sada treba provjeriti dal vec postoji u programu neka klasa koja se isto zove kao i ova iterator za listu sve_KLASE; for( odi sa iteratorom po listi sve_KLASE od pocetka do kraja ){ if( ako je ime neke KLASE iz liste sve_KLASE == ulazno_ime ) break; } if( iterator == kraj liste sve_KLASE ){ ubaci u listu pokazivač na ovu klasu ( this pointer ) } // ako smo dosli do kraja liste sa iteratorom to znači da još nema takve klase pa je ubacujemo među "žive" klase } |
Kod: |
KLASA::~KLASA(){
for( odi sa iteratorom po listi sve_KLASE od pocetka do kraja ){ if( ako je ime neke KLASE iz liste sve_KLASE == ime ){ izbaci taj pokazivač iz liste } } } |
Kod: |
int main(){ KLASA A( "PRVA" ); // u static listu sve_KLASE ubacuje se pokazivač na KLASU A KLASA B( "DRUGA" ); // u static listu sve_KLASE ubacuje se pokazivač na KLASU B KLASA C( "PRVA" ); // u static listu sve_KLASE NE ubacuje se pokazivač na KLASU C jer već u programu postoji klasa istog imena // na taj način mi smo odlučili da klasa C nije "živa", dok klase B i A jesu // naravno mi sada možemo raditi u main - u s klasom C međutim pitanje dal će sve funkcije funkcionirati na pravi način jer klasa C nije dio našeg programa // zašto nam treba destruktor? // u main možemo ubaciti blok naredbi!!! { KLASA D( "KLASA S NAJDUZIM IMENOM" ); // D se ubacuje u listu sve_KLASE A.ispisi_ime_klase_s_najduljim_imenom(); // ispisuje se ime klase D } // na kraju bloka poziva se destruktor svih varijabli ( i klasa ) napravljenih unutar bloka, tj. moramo KLASU D izbrisati iz liste sve_KLASE A.ispisi_ime_klase_s_najduljim_imenom(); // sada mora ispisati ime KLASE B ( D više nije "živa" !!! ) return 0; } |
konjina (napisa): |
što radi funkcija knjige_ostecene_svuda.... znači piše ovako....
vraća knjige koje je određena osoba ikad oštetila u svim knjižnicama ( a da još postoje), poredane po imenu knjige.... a da još postoje se odnosi na knjige i knjižnice...ili sam na knjižnice?.... slično i za knjige_pročitane |
Anonymous (napisa): |
ja imam pitanje vezano uz sortiranje objekata, jel se to može raditi klasičnim sortiranjem po npr. imenu i onda kao zamijenjujemo objekte |
Anonymous (napisa): |
to mi je malo čudno? |
Anonymous (napisa): |
i da li se u setu elementi(u ovom slučaju objekti) automatski poredaju po veličini?? |
tmarusca (napisa): |
onda kad ubacujes knjige u set slazu se po kriteriju kojeg sama odaberes (ime) |
Citat: |
f = film::najposudjivaniji_film(); // f = &prvi; ispisiSet(f.osobe_koje_su_posudile_film()); |