Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- //Mjerenje proteklog vremena u tisucinkama sekundi
- using namespace std;
- class cpredmeti_zapis {
- public:
- int id_predmeta;
- string naziv;
- string smjer;
- template <typename P>
- void ispis_upis(bool ispis, P pointer, bool samo_naziv = false) {
- if(samo_naziv) {
- cout<<"Naziv predmeta: "<<naziv<<endl;
- return;
- }
- if (ispis) {
- cout<<"\nSifra predmeta: "<<id_predmeta
- <<"\nNaziv: "<<naziv
- <<"\nSmjer: "<<smjer
- <<"\nPokazivac na sljedeci element: "<<pointer<<endl;
- return;
- }
- cout<<"\nSifra predmeta: ";
- cin>>id_predmeta;
- cout<<"Naziv: ";
- cin.ignore();
- getline(cin, naziv);
- cout<<"Smjer: ";
- getline(cin, smjer);
- }
- };
- class cpredmeti {
- cpredmeti_zapis zapis;
- cpredmeti* sljedeci;
- cpredmeti* prethodni;
- public:
- static int brojac_predmeta;
- cpredmeti() {
- sljedeci = NULL;
- prethodni = NULL;
- }
- void dodaj_na_kraj() {
- zapis.ispis_upis(0, 0);
- brojac_predmeta++;
- cpredmeti* zadnji = this;
- cpredmeti* novi = new cpredmeti;
- while (zadnji->sljedeci) zadnji = zadnji->sljedeci;
- novi->zapis = zapis;
- novi->prethodni = zadnji;
- novi->sljedeci = NULL;
- zadnji->sljedeci = novi;
- }
- void ispis() {
- cout<<"\n----------Ispis liste----------\n";
- for (cpredmeti* tekuci = this->sljedeci; tekuci; tekuci = tekuci->sljedeci)
- tekuci->zapis.ispis_upis(true, tekuci->sljedeci, 0);
- }
- bool pretraga(string id_smjera, int id_predmeta, bool prema_sifri = false, bool prema_sifri_predmeta = false) {
- for (cpredmeti* tekuci = this->sljedeci; tekuci; tekuci = tekuci->sljedeci) {
- if(!prema_sifri && tekuci->zapis.smjer == id_smjera) {
- tekuci->zapis.ispis_upis(true, tekuci->sljedeci, 0);
- }
- if(!prema_sifri && (!id_smjera.compare("*"))) {
- tekuci->zapis.ispis_upis(true,tekuci->sljedeci, 0);
- }
- if(prema_sifri_predmeta && prema_sifri && id_predmeta == tekuci->zapis.id_predmeta) {
- tekuci->zapis.ispis_upis(true,tekuci->sljedeci,1);
- return true;
- }
- if ((prema_sifri || prema_sifri_predmeta) && tekuci->zapis.id_predmeta == id_predmeta) return true;
- }
- return false;
- }
- }* ListaPredmeta = NULL;
- class cprijave_zapis {
- public:
- int id_prijave;
- int id_predmeta;
- string id_studenta;
- string rok;
- void ispis_upis(bool ispis = false) {
- if (ispis) {
- cout<<"\nSifra prijave: "<<id_prijave<<"\nSifra predmeta: "<<id_predmeta<<endl;
- ListaPredmeta->pretraga("", id_predmeta, 1, 1); //ispis predmeta
- cout<<"Maticni broj: "<<id_studenta<<"\nRok: "<<rok<<endl;
- return;
- }
- cout<<"\nSifra prijave: ";
- cin>>id_prijave;
- do {
- cout<<"Sifra predmeta: ";
- cin>>id_predmeta;
- if (!ListaPredmeta->pretraga("", id_predmeta, true)) cout<<"Nepostojeci predmet!\n";
- }while (!ListaPredmeta->pretraga("", id_predmeta, true));
- cout<<"Maticni broj studenta: ";
- cin.ignore();
- getline(cin,id_studenta);
- cout<<"Rok: ";
- getline(cin,rok);
- }
- };
- class cprijave {
- public:
- cprijave_zapis *zapis;
- cprijave *sljedeci;
- static int brojac_prijava;
- cprijave() {
- zapis = new cprijave_zapis;
- sljedeci = NULL;
- cout<<"\nKonstruktor..."<<endl;
- }
- void dodaj() {
- zapis->ispis_upis();
- brojac_prijava++;
- cprijave *zadnji = this;
- cprijave *novi = new cprijave;
- while (zadnji->sljedeci)
- zadnji = zadnji->sljedeci;
- zadnji->sljedeci = novi;
- novi->zapis->id_prijave = zapis->id_prijave;
- novi->zapis->id_predmeta = zapis->id_predmeta;
- novi->zapis->id_studenta = zapis->id_studenta;
- novi->zapis->rok = zapis->rok;
- }
- void ispis_prijava() {
- cout<<"\n----------Popis svih prijava----------\n";
- for(cprijave *tekuci = this->sljedeci; tekuci; tekuci = tekuci->sljedeci)
- tekuci->zapis->ispis_upis(true);
- }
- }* ListaPrijava = NULL;
- class cvrijeme{
- private:
- clock_t vrijeme1,vrijeme2;
- double razlika;
- public:
- double pocetak(){
- vrijeme1=clock();
- return (double)vrijeme1;
- };
- double kraj(){
- vrijeme2=clock();
- return (double)vrijeme2;
- };
- double proteklo(){
- razlika=vrijeme2-vrijeme1;
- return razlika;
- };
- };//cvrijeme
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement