Professional Documents
Culture Documents
Provjera 5 Hess
Provjera 5 Hess
struct tindeks{
int rb_zapisa;
int sifra;
};
(slijedeća tri programa su gotovo identična => razlikuju se jedino u par naziva varijabli)
10. Pronađite uz pomoć indeksne datoteke godinu upisa studenata s matičnim
brojem 35000.
struct tstudent {
int mat_br, poz, god_upisa; char ime[35]; //i drugi atributi };
struct tideks {
int mat_br, poz };
void main() {
fstream dat; fstream ind;
tstudent student; tindeks indeks;
By hess © 2006.
bool nadjen=false;
dat.open ("studenti.dat",ios::in|ios::binary);
ind.open ("studenti.ind",ios::in|ios::binary);
while (1) {
ind.read ((char *)&indeks, sizeof(tindeks)); //pretraživanje indeksa
if (ind.eof()) break;
if (indeks.mat_br==35000){ // ako je tel. broj nađen
dat.seekg(indeks.poz);
dat.read ((char *)&student, sizeof(tstudent));
nadjen=true;
cout << "Godina upisa je " << student.god_upisa<< endl;
break;
}//if
}//while
dat.close();
ind.close();
if (!nadjen) cout << "Zapis nije pronadjen!" << endl;
}
11. Pronađite uz pomoć indeksne datoteke naziv robe za šifru robe 32215.
struct troba {
int sifra, poz; char naziv[35]; //i drugi atributi };
struct tideks {
int sifra, poz };
void main() {
fstream dat; fstream ind;
troba roba; tindeks indeks;
bool nadjen=false;
dat.open ("roba.dat",ios::in|ios::binary);
ind.open ("roba.ind",ios::in|ios::binary);
while (1) {
ind.read ((char *)&indeks, sizeof(tindeks)); //pretraživanje indeksa
if (ind.eof()) break;
if (indeks.sifra==32215){ // ako je tel. broj nađen
dat.seekg(indeks.poz);
dat.read ((char *)&roba, sizeof(troba));
nadjen=true;
cout << "Naziv za predmet 32215 je " << roba.naziv << endl;
break;
}//if
}//while
dat.close();
ind.close();
if (!nadjen) cout << "Zapis nije pronadjen!" << endl;
}
By hess © 2006.
12. Pronađite uz pomoć indeksne datoteke naziv predmeta za šifru predmeta 32.
struct tpredmeti {
int sifra, poz; char naziv[35]; //i drugi atributi };
struct tideks {
int sifra, poz };
void main() {
fstream dat; fstream ind;
tpredmeti predmet; tindeks indeks;
bool nadjen=false;
dat.open ("predmeti.dat",ios::in|ios::binary);
ind.open ("predmeti.ind",ios::in|ios::binary);
while (1) {
ind.read ((char *)&indeks, sizeof(tindeks)); //pretraživanje indeksa
if (ind.eof()) break;
if (indeks.sifra==32){ // ako je tel. broj nađen
dat.seekg(indeks.poz);
dat.read ((char *)&predmet, sizeof(tpredmeti));
nadjen=true;
cout << "Naziv za predmet 32 je " << predmet.naziv << endl;
break;
}//if
}//while
dat.close();
ind.close();
if (!nadjen) cout << "Zapis nije pronadjen!" << endl;
}