Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- char crt[]="============================\n";
- enum Odgovori { TACNO, NETACNO };
- void main()
- {
- Odgovori mojOdgovor;
- int unos;
- do
- {
- cout << "Fit je lociran u Mostaru? \n (0-Tacno, 1-Netacno): ";
- cin >> unos;
- mojOdgovor = (Odgovori)unos;
- } while (mojOdgovor != TACNO && mojOdgovor != NETACNO);
- if (mojOdgovor == TACNO)
- cout << "Odgovor je tacan! " << endl;
- else
- cout << "Posjetite www.fit.ba -> O fakultetu - Kontakti" << endl;
- system("PAUSE");
- }
- /////
- #include <iostream>
- using namespace std;
- char crt[] = "===================================\n";
- //RAZLIKA IZMEĐU STRUKTURA I UNIJA
- struct Struktura
- {
- int sClan1;
- float sClan2;
- };
- union Unija
- {
- int uClan1;
- float uClan2;
- };
- void main()
- {
- Struktura s;
- Unija u;
- cout << crt << "\tUNIJA::ISTE ADRESE" << crt;
- cout << "&u.uClan1= " << &u.uClan1 << endl;
- cout << "&u.uClan2= " << &u.uClan2;
- cout << crt << "\tSTRUKTURA::RAZLICITE ADRESE" << crt;
- cout << "&s.sClan1= " << &s.sClan1 << endl;
- cout << "&s.sClan2= " << &s.sClan2 << crt;
- system("PAUSE");
- }
- /////
- #include <iostream>
- using namespace std;
- char crt[] = "\n================================\n";
- union Unija
- {
- int uClan1;
- float uClan2;
- };
- void main()
- {
- Unija u;
- u.uClan1 = 125;
- cout << "u.uClan1= " << u.uClan1 << endl;
- cout << "u.uClan2= " << u.uClan2 << crt;
- u.uClan2 = 32.5;
- cout << "u.uClan1= " << u.uClan1 << endl;
- cout << "u.uClan2= " << u.uClan2 << crt;
- system("PAUSE");
- }
- /////
- #include <iostream>
- using namespace std;
- char crt[] = "\n==================================\n";
- struct Student
- {
- int _brojIndeksa;
- char _imePrezime[30];
- };
- enum TipPodatka {eStudent, eInteger, eBool, eFloat};
- //prefiks 2 znak za clanove enumeracije
- struct Strukutra
- {
- TipPodatka _Tip;
- union
- {
- int _Integer;
- bool _Bool;
- float _Float;
- Student _Student;
- };
- };
- void Ispis(const Strukutra & objekat)
- {
- switch (objekat._Tip)
- {
- case eBool:
- cout << "Bool atribut: " << objekat._Bool << endl; break;
- case eInteger:
- cout << "Integer atribut: " << objekat._Integer << endl; break;
- case eFloat:
- cout << "Float atribut: " << objekat._Float << endl; break;
- case eStudent:
- cout << "Indeks: " << objekat._Student._brojIndeksa;
- cout << " Ime: " << objekat._Student._imePrezime << endl;
- break;
- }
- }
- void Unos(Strukutra & objekat)
- {
- TipPodatka tip;
- int unos;
- do
- {
- cout << "Odaberite tip podatka (1.Student, 2.Integer, 3.Bool, 4.Float): ";
- cin >> unos;
- --unos;
- tip = (TipPodatka)unos;
- } while (tip != eStudent && tip != eInteger && tip != eBool && tip != eFloat);
- objekat._Tip = tip;
- switch (objekat._Tip)
- {
- case eBool:
- cout << "Bool unos (0.False, 1.True): ";
- cin >> objekat._Bool;
- break;
- case eInteger:
- cout << "Integer unos: ";
- cin >> objekat._Integer;
- break;
- case eFloat:
- cout << "Float unos: ";
- cin >> objekat._Float;
- break;
- case eStudent:
- cout << "Student\nBroj indeksa: ";
- cin >> objekat._Student._brojIndeksa;
- cin.ignore();
- cout << "Ime i prezime: ";
- cin.getline(objekat._Student._imePrezime, 30);
- break;
- }
- }
- void main()
- {
- Strukutra objekat;
- int brojac = 4;
- do
- {
- Unos(objekat);
- Ispis(objekat);
- } while (--brojac > 0);
- system("PAUSE");
- }
- /////
- #include <iostream>
- #include <fstream>
- using namespace std;
- char * crt = "\n========================================\n";
- enum NacinStudiranja { REDOVAN, DL };
- enum GodinaStudija { PRVA = 1, DRUGA, TRECA, CETVRTA };
- enum Odgovori { TACNO, NETACNO };
- const int brojPitanja = 5;
- struct Student {
- int _brojIndeksa;
- char _imePrezime[30];
- bool _radioTest;
- NacinStudiranja _nacin;
- GodinaStudija _godina;
- Odgovori _odgovori[brojPitanja];
- };
- void PrikaziPitanje(int rbPitanja) {
- if (rbPitanja == 1)
- cout << crt << "Enumeracije i unije su sinonimi ?" << crt;
- else if (rbPitanja == 2)
- cout << crt << "Moguce je kreirati anonimnu uniju ?" << crt;
- else if (rbPitanja == 3)
- cout << crt << "Svi clanovi unije koriste istu memorijsku lokaciju?" << crt;
- else if (rbPitanja == 4)
- cout << crt << "Svi clanovi strukture koriste istu memorijsku lokaciju? "<<crt;
- else
- cout << crt << "Unija moze biti deklarisana unutar strukture ?" << crt;
- }
- Odgovori GetTacanOdgovor(int rbPitanja) {
- if (rbPitanja == 1)
- return NETACNO;
- if (rbPitanja == 2)
- return TACNO;
- if (rbPitanja == 3)
- return TACNO;
- if (rbPitanja == 4)
- return NETACNO;
- return TACNO;
- }
- int GetUspjehStudenta(Odgovori odgovori[]) {
- int brojacTacnih = 0;
- for (int i = 0; i<brojPitanja; i++)
- if (odgovori[i] == GetTacanOdgovor(i + 1))
- brojacTacnih++;
- return brojacTacnih;
- }
- void PokreniTest(Student & student) {
- int unos;
- Odgovori temp;
- for (int i = 0; i<brojPitanja; i++) {
- do {
- PrikaziPitanje(i + 1);
- cout << "Odgovor (1.Tacno,2.Netacno): ";
- cin >> unos;
- unos--;
- temp = (Odgovori)unos;
- } while (temp != TACNO && temp != NETACNO);
- student._odgovori[i] = temp;
- }
- student._radioTest = true;
- }
- void UnosPodataka(Student * niz, int max) {
- int unos;
- for (int i = 0; i<max; i++) {
- cout << crt << "\t::STUDENT " << i + 1 << "::" << crt;
- cout << "Unesite ime i prezime: ";
- cin.getline(niz[i]._imePrezime, 30);
- cout << "Unesite broj indeksa: ";
- cin >> niz[i]._brojIndeksa;
- cout << "Nacin studiranja (1.Redovan, 2.DL): ";
- cin >> unos;
- niz[i]._nacin = (NacinStudiranja)--unos;
- cout << "Nacin godinu studija (1,2,3,4): ";
- cin >> unos;
- niz[i]._godina = (GodinaStudija)unos;
- cin.ignore();
- niz[i]._radioTest = false;//tek smo kreirali studenta
- //tako da je sigurno da test nije radjen
- }
- }
- void Pretraga(Student * niz, int max) {
- //definisati funkciju(e) koja(e) ce omoguciti pretragu po:
- //1. godini studija
- //2. nacinu studiranja
- //3. rezultatima ostvarenim na testu
- //Nove funkcionalnosti dodati u funkciju PrikaziMeni
- for (int i = 0; i < max; i++)
- {
- int unosGodinaStudija;
- cout << "Unesite godinu studija: ";
- cin >> unosGodinaStudija;
- GodinaStudija godina = (GodinaStudija)unosGodinaStudija;
- int unosNacinStudiranja;
- cout << "Unesite nacin studiranja: ";
- cin >> unosNacinStudiranja;
- NacinStudiranja nacin = (NacinStudiranja)unosNacinStudiranja;
- int rezultat;
- cout << "Unesite minimalni rezultat na testu: ";
- cin >> rezultat;
- int poeni = 0;
- int brojTacnih = GetUspjehStudenta(niz->_odgovori);
- poeni = float(brojTacnih/brojPitanja) * 100;
- bool b1, b2, b3;
- b1 = niz->_godina == godina;
- b2 = niz->_nacin == nacin;
- b3 = poeni >= rezultat;
- if (b1 && b2 && b3)
- cout << niz->_imePrezime << endl;
- }
- }
- int PrikaziMeni() {
- int izbor;
- do {
- cout << crt << "\t::MENI::" << crt;
- cout << "1. Pokreni test" << endl;
- cout << "2. Prikazi rezultate" << endl;
- cout << "3. Kraj rada" << crt;
- cout << "Unesite izbor: ";
- cin >> izbor;
- } while (izbor<1 || izbor>3);
- return izbor;
- }
- int PrikaziStudente(Student * niz, int max) {
- int rb;
- do {
- for (int i = 0; i<max; i++)
- cout << i + 1 << ". " << niz[i]._imePrezime << endl;
- cout << crt << "Unesite redni broj studenta: ";
- cin >> rb;
- } while (rb<1 || rb>max);
- return rb - 1;
- }
- //dodati sljedece funkcionalnosti:
- //1.administratoru omoguciti da unosi pitanja te definise tacne odgovore
- //2.administratoru dati prava da studentu ponovo omoguci polaganje testa
- //3.uvesti username/password na osnovu koga ce se studenti logirati
- //4.odvojiti administratorske funkcije (meni) od korisnickih
- void main() {
- int max, izbor, student;
- cout << "Unesite broj studenata: ";
- cin >> max;
- cin.ignore();
- Student * niz = new Student[max];
- UnosPodataka(niz, max);
- system("cls");
- do {
- izbor = PrikaziMeni();
- if (izbor == 3)
- break;
- student = PrikaziStudente(niz, max);
- //pokusajte pojednostaviti naredni dio koda, te smanjiti brojnepotrebnih provjera
- if (izbor == 1) {
- if (niz[student]._radioTest == false)
- PokreniTest(niz[student]);
- else
- cout << "Student " << niz[student]._imePrezime << " je vec radio test!"<<endl;
- }
- if (izbor == 2) {
- if (niz[student]._radioTest == true) {
- int brojTacnih =
- GetUspjehStudenta(niz[student]._odgovori);
- cout << crt << "Uspjeh studenta"<<brojTacnih<<" / "<<brojPitanja<<" ili "<<(brojTacnih*100.0)/brojPitanja<<"%"<<crt;
- }
- else
- cout << "Student " << niz[student]._imePrezime << " jos uvijek nije radio test!"<<endl;
- }
- system("pause>0");
- system("cls");
- } while (1);
- delete[] niz;
- niz = NULL;
- system("pause");
- }
- /////
- /*U prethodni zadatak implementirati funkciju
- 1. administratoru omoguciti da unosi pitanja te definise tačne odgovore
- 2. administratoru dati prava da studentu ponovo omogući polaganje testa
- 3. uvesti username/password na osnovu koga će se studenti logirati
- 4. odvojiti administratorske funkcije (meni) od korisničkih
- 5. dodati enumeraciju za korisničku ulogu
- */
- #include <iostream>
- #include <fstream>
- using namespace std;
- char * crt = "\n========================================\n";
- enum NacinStudiranja { REDOVAN, DL };
- enum GodinaStudija { PRVA = 1, DRUGA, TRECA, CETVRTA };
- enum Odgovori { TACNO, NETACNO };
- const int brojPitanja = 5;
- const int maxBrojPitanja = 100;
- int brojPitanja1 = 0;
- struct Student {
- int _brojIndeksa;
- char _imePrezime[30];
- bool _radioTest;
- NacinStudiranja _nacin;
- GodinaStudija _godina;
- Odgovori _odgovori[brojPitanja];
- };
- struct Pitanja
- {
- char tekstPitanja[100];
- Odgovori odogovrNaPitanje;
- };
- Pitanja pitanjaDV[maxBrojPitanja];
- void Dodaj(char * tekstPitanja, Odgovori tacanOdgovor)
- {
- Pitanja pitanje;
- strcpy_s(pitanje.tekstPitanja, tekstPitanja);
- pitanje.odogovrNaPitanje = tacanOdgovor;
- pitanjaDV[brojPitanja] = pitanje;
- brojPitanja1++;
- }
- void dodajDefaultPitanja()
- {
- Dodaj("Enumeracije i unije su sinonimi ?", NETACNO);
- Dodaj("Moguce je kreirati anonimnu uniju ?", TACNO);
- Dodaj("Svi clanovi unije koriste istu memorijsku lokaciju?", TACNO);
- Dodaj("Svi clanovi strukture koriste istu memorijsku lokaciju ? ", NETACNO);
- Dodaj("Unija moze biti deklarisana unutar strukture ?", TACNO);
- }
- void PrikaziPitanje(int rbPitanja) {
- /*if (rbPitanja == 1)
- cout << crt << "Enumeracije i unije su sinonimi ?" << crt;
- else if (rbPitanja == 2)
- cout << crt << "Moguce je kreirati anonimnu uniju ?" << crt;
- else if (rbPitanja == 3)
- cout << crt << "Svi clanovi unije koriste istu memorijsku lokaciju?" << crt;
- else if (rbPitanja == 4)
- cout << crt << "Svi clanovi strukture koriste istu memorijsku lokaciju? " << crt;
- else
- cout << crt << "Unija moze biti deklarisana unutar strukture ?" << crt;*/
- cout << pitanjaDV[rbPitanja].tekstPitanja << endl;
- }
- Odgovori GetTacanOdgovor(int rbPitanja) {
- /*if (rbPitanja == 1)
- return NETACNO;
- if (rbPitanja == 2)
- return TACNO;
- if (rbPitanja == 3)
- return TACNO;
- if (rbPitanja == 4)
- return NETACNO;
- return TACNO;*/
- return pitanjaDV[rbPitanja].odogovrNaPitanje;
- }
- int GetUspjehStudenta(Odgovori odgovori[]) {
- int brojacTacnih = 0;
- for (int i = 0; i<brojPitanja; i++)
- if (odgovori[i] == GetTacanOdgovor(i + 1))
- brojacTacnih++;
- return brojacTacnih;
- }
- void PokreniTest(Student & student) {
- int unos;
- Odgovori temp;
- for (int i = 0; i<brojPitanja; i++) {
- do {
- PrikaziPitanje(i + 1);
- cout << "Odgovor (1.Tacno,2.Netacno): ";
- cin >> unos;
- unos--;
- temp = (Odgovori)unos;
- } while (temp != TACNO && temp != NETACNO);
- student._odgovori[i] = temp;
- }
- student._radioTest = true;
- }
- void UnosPodataka(Student * niz, int max) {
- int unos;
- for (int i = 0; i<max; i++) {
- cout << crt << "\t::STUDENT " << i + 1 << "::" << crt;
- cout << "Unesite ime i prezime: ";
- cin.getline(niz[i]._imePrezime, 30);
- cout << "Unesite broj indeksa: ";
- cin >> niz[i]._brojIndeksa;
- cout << "Nacin studiranja (1.Redovan, 2.DL): ";
- cin >> unos;
- niz[i]._nacin = (NacinStudiranja)--unos;
- cout << "Nacin godinu studija (1,2,3,4): ";
- cin >> unos;
- niz[i]._godina = (GodinaStudija)unos;
- cin.ignore();
- niz[i]._radioTest = false;//tek smo kreirali studenta
- //tako da je sigurno da test nije radjen
- }
- }
- void Pretraga(Student * niz, int max) {
- //definisati funkciju(e) koja(e) ce omoguciti pretragu po:
- //1. godini studija
- //2. nacinu studiranja
- //3. rezultatima ostvarenim na testu
- //Nove funkcionalnosti dodati u funkciju PrikaziMeni
- for (int i = 0; i < max; i++)
- {
- int unosGodinaStudija;
- cout << "Unesite godinu studija: ";
- cin >> unosGodinaStudija;
- GodinaStudija godina = (GodinaStudija)unosGodinaStudija;
- int unosNacinStudiranja;
- cout << "Unesite nacin studiranja: ";
- cin >> unosNacinStudiranja;
- NacinStudiranja nacin = (NacinStudiranja)unosNacinStudiranja;
- int rezultat;
- cout << "Unesite minimalni rezultat na testu: ";
- cin >> rezultat;
- int poeni = 0;
- int brojTacnih = GetUspjehStudenta(niz->_odgovori);
- poeni = float(brojTacnih / brojPitanja) * 100;
- bool b1, b2, b3;
- b1 = niz->_godina == godina;
- b2 = niz->_nacin == nacin;
- b3 = poeni >= rezultat;
- if (b1 && b2 && b3)
- cout << niz->_imePrezime << endl;
- }
- }
- int PrikaziMeni() {
- int izbor;
- do {
- cout << crt << "\t::MENI::" << crt;
- cout << "1. Pokreni test" << endl;
- cout << "2. Prikazi rezultate" << endl;
- cout << "3. Dodaj novo pitanje" << crt;
- cout << "4. Kraj rada" << crt;
- cout << "Unesite izbor: ";
- cin >> izbor;
- } while (izbor<1 || izbor>4);
- return izbor;
- }
- int PrikaziStudente(Student * niz, int max) {
- int rb;
- do {
- for (int i = 0; i<max; i++)
- cout << i + 1 << ". " << niz[i]._imePrezime << endl;
- cout << crt << "Unesite redni broj studenta: ";
- cin >> rb;
- } while (rb<1 || rb>max);
- return rb - 1;
- }
- //dodati sljedece funkcionalnosti:
- //1.administratoru omoguciti da unosi pitanja te definise tacne odgovore
- //2.administratoru dati prava da studentu ponovo omoguci polaganje testa
- //3.uvesti username/password na osnovu koga ce se studenti logirati
- //4.odvojiti administratorske funkcije (meni) od korisnickih
- void main() {
- int max, izbor, student;
- cout << "Unesite broj studenata: ";
- cin >> max;
- cin.ignore();
- Student * niz = new Student[max];
- UnosPodataka(niz, max);
- system("cls");
- do {
- izbor = PrikaziMeni();
- if (izbor == 4)
- break;
- student = PrikaziStudente(niz, max);
- //pokusajte pojednostaviti naredni dio koda, te smanjiti brojnepotrebnih provjera
- if (izbor == 1) {
- if (niz[student]._radioTest == false)
- PokreniTest(niz[student]);
- else
- cout << "Student " << niz[student]._imePrezime << " je vec radio test!" << endl;
- }
- if (izbor == 2) {
- if (niz[student]._radioTest == true) {
- int brojTacnih =
- GetUspjehStudenta(niz[student]._odgovori);
- cout << crt << "Uspjeh studenta" << brojTacnih << " / " << brojPitanja << " ili " << (brojTacnih*100.0) / brojPitanja << "%" << crt;
- }
- else
- cout << "Student " << niz[student]._imePrezime << " jos uvijek nije radio test!" << endl;
- }
- if (izbor == 3)
- {
- cout << "tekst pitanja" << endl;
- char p[100];
- cin.ignore();
- cin.getline(p, 100);
- int x;
- cout << "Tacno1, Netacno2" << endl;
- cin >> x;
- Odgovori g = (Odgovori) x;
- Dodaj(p, g);
- }
- system("pause>0");
- system("cls");
- } while (1);
- delete[] niz;
- niz = NULL;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement