Created
January 28, 2013 00:30
-
-
Save jsam/4651691 to your computer and use it in GitHub Desktop.
zamjeni si sve at(i) sa [i] da te ne zbunjuje jer je ista funkcija.....push_back() ti je funkcija s kojom dodajes u listu...i to je to..pretrazivanje radis linearno to ti je najlakse..znaci puknes u petlju i onda pretrazujes element po element..pokazem ti jos sortiranje i to ti je ta ista sablona koja dolazi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <string> | |
#include <vector> | |
#include <fstream> | |
using namespace std; | |
class cstudent | |
{ | |
public: | |
long long mat_broj; | |
string ime_prezime; | |
void upis() | |
{ | |
cout << "Unesite maticni broj:$ "; cin >> mat_broj; | |
cout << "Unesite ime i prezime:$ "; cin >> ime_prezime; | |
} | |
void ispis() | |
{ | |
cout << "Maticni broj: " << mat_broj << endl | |
<< "Ime i prezime: " << ime_prezime << endl << endl; | |
} | |
}; | |
class cprijava | |
{ | |
public: | |
long long sifra; | |
long long mat_broj; | |
string predmet; | |
string rok; | |
void upis() | |
{ | |
cout << "Sifra:$ "; cin >> sifra; | |
cout << "Maticni broj:$ "; cin >> mat_broj; | |
cout << "Predmet:$ "; cin >> predmet; | |
cout << "Rok:$ "; cin >> rok; | |
} | |
void ispis() | |
{ | |
cout << "Sifra: " << sifra << endl | |
<< "Maticni broj: " << mat_broj << endl | |
<< "Predmet: " << predmet << endl | |
<< "Rok: " << rok << endl << endl; | |
} | |
}; | |
int izbornik() | |
{ | |
int izbor = 0; | |
cout << "1. unesi studenta\n" | |
<< "2. ispisi sve studente\n" | |
<< "3. unesi prijavu\n" | |
<< "4. ispisi sve prijave\n" | |
<< "5. ispis svih prijava za zadanog studenta\n" | |
<< "6. ispisi studente sa prijavama\n" | |
<< "9. exit\n"; | |
cin >> izbor; | |
return izbor; | |
} | |
void zapisi_prijave_u_datoteku(vector<cprijava*> prijave) | |
{ | |
fstream dat; | |
dat.open("prijave.dat", fstream::in | fstream::out | fstream::app); | |
for ( int i = 0; i < prijave.size(); ++i ) | |
{ | |
dat << "Sifra: " << prijave.at(i)->sifra << endl | |
<< "Maticni broj: " << prijave.at(i)->mat_broj << endl | |
<< "Predmet: " << prijave.at(i)->predmet << endl | |
<< "Rok: " << prijave.at(i)->rok << endl << endl; | |
} | |
dat.close(); //cout << "ZAPISUJEM U DATOTEKU!" << endl; | |
} | |
int main() | |
{ | |
vector<cstudent*> polje_studenata; | |
vector<cprijava*> polje_prijava; | |
cstudent *cstudent_element; | |
cprijava *cprijava_element; | |
bool student_ne_postoji; | |
while(true) | |
{ | |
switch(izbornik()) | |
{ | |
case 1: | |
cstudent_element = new cstudent; | |
cstudent_element->upis(); | |
polje_studenata.push_back(cstudent_element); | |
break; | |
case 2: | |
for( int i = 0; i < polje_studenata.size(); ++i ) | |
polje_studenata.at(i)->ispis(); | |
break; | |
case 3: | |
cprijava_element = new cprijava; | |
cprijava_element->upis(); | |
// onemoguci dodavanje prijave u listu ako student ne postoji | |
student_ne_postoji = true; | |
for ( int i = 0; i < polje_studenata.size(); ++i ) | |
if ( cprijava_element->mat_broj == polje_studenata.at(i)->mat_broj ) | |
student_ne_postoji = false; | |
if(!student_ne_postoji) | |
{ | |
polje_prijava.push_back(cprijava_element); | |
zapisi_prijave_u_datoteku(polje_prijava); | |
} | |
break; | |
case 4: | |
for( int i = 0; i < polje_prijava.size(); ++i ) | |
polje_prijava.at(i)->ispis(); | |
break; | |
case 5: | |
long long mat_broj_studenta; | |
cout <<"Maticni broj studenta po kojem trazimo prijave: "; cin >> mat_broj_studenta; | |
for ( int i = 0; i < polje_prijava.size(); ++i ) | |
{ | |
if ( polje_prijava.at(i)->mat_broj == mat_broj_studenta ) | |
{ | |
polje_prijava.at(i)->ispis(); | |
} | |
} | |
break; | |
case 6: | |
int broj_prijava; | |
for ( int i = 0; i < polje_studenata.size(); ++i) | |
{ | |
broj_prijava = 0; | |
polje_studenata.at(i)->ispis(); // ispis podatke za tog studenta | |
for ( int j = 0; j < polje_prijava.size(); ++j) // broji koliko prijava ima taj student | |
{ | |
if( polje_studenata.at(i)->mat_broj == polje_prijava.at(j)->mat_broj ) | |
broj_prijava++; | |
} | |
cout << "Ukupan broj prijava: " << broj_prijava << endl; | |
} | |
break; | |
case 9: | |
return 0; | |
} | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment