Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- char crt[] = { "----------------------------------------\n" };
- class Ucesnik {
- int _id;
- char * _imePrezime;
- char * _datumPrijave;
- public:
- // defaultni konstruktor
- Ucesnik(){
- _id = 0;
- _imePrezime = new char[3];
- strcpy_s(_imePrezime, 3, "--");
- _datumPrijave = new char[3];
- strcpy_s(_datumPrijave, 3,"--");
- }
- // konstruktor
- Ucesnik(int id, char * imePrezime, char * datumPrijave){
- _id = id;
- int vel = strlen(imePrezime) + 1;
- _imePrezime = new char[vel];
- strcpy_s(_imePrezime, vel, imePrezime);
- vel = strlen(datumPrijave) + 1;
- _datumPrijave = new char[vel];
- strcpy_s(_datumPrijave, vel, datumPrijave);
- }
- // konstruktor kopije
- Ucesnik(Ucesnik & org){
- _id = org._id;
- int vel = strlen(org._imePrezime) + 1;
- _imePrezime = new char[vel];
- strcpy_s(_imePrezime, vel,org._imePrezime);
- vel = strlen(org._datumPrijave) + 1;
- _datumPrijave = new char[vel];
- strcpy_s(_datumPrijave, vel, org._datumPrijave);
- }
- // destruktor
- ~Ucesnik(){
- delete[]_imePrezime;
- delete[]_datumPrijave;
- _imePrezime = nullptr;
- _datumPrijave = nullptr;
- }
- // geteri
- int getBrojIndexa()const{
- return _id;
- }
- friend ostream & operator <<(ostream & COUT, Ucesnik & org);
- Ucesnik & operator = (Ucesnik & org){
- if (this!=&org){
- _id = org._id;
- delete[] _imePrezime;
- _imePrezime = nullptr;
- int vel = strlen(org._imePrezime) + 1;
- _imePrezime = new char[vel];
- strcpy_s(_imePrezime, vel, org._imePrezime);
- delete[] _datumPrijave;
- _datumPrijave = nullptr;
- vel = strlen(org._datumPrijave) + 1;
- _datumPrijave = new char[vel];
- strcpy_s(_datumPrijave, vel, org._datumPrijave);
- }
- return *this;
- }
- bool operator == (Ucesnik & org){
- if (this == &org) return true;
- if (_id == org._id) return true;
- return false;
- }
- };
- class Seminar {
- char * _periodOdrzavanja;
- char _mjestoOdrzavanja[50];
- int _kotizacija;
- int _brojPrijavljenih;
- Ucesnik _prijavljeni[100];
- public:
- // konstruktor + defaultni
- Seminar(char * periodOdrzavanja = "------", char * mjestoOdrzavanja = "------", int kotizacija = 0){
- int vel = strlen(periodOdrzavanja) + 1;
- _periodOdrzavanja = new char[vel];
- strcpy_s(_periodOdrzavanja, vel, periodOdrzavanja);
- strcpy_s(_mjestoOdrzavanja, 50, mjestoOdrzavanja);
- _kotizacija = kotizacija;
- _brojPrijavljenih = 0;
- }
- // konstruktor kopije
- Seminar(Seminar & org){
- int vel = strlen(org._periodOdrzavanja) + 1;
- _periodOdrzavanja = new char[vel];
- strcpy_s(_periodOdrzavanja, vel, org._periodOdrzavanja);
- strcpy_s(_mjestoOdrzavanja, 50, org._mjestoOdrzavanja);
- _kotizacija = org._kotizacija;
- _brojPrijavljenih = 0;
- }
- // destruktor
- ~Seminar(){
- delete[]_periodOdrzavanja;
- _periodOdrzavanja = nullptr;
- }
- // dodaj ucesnika ako nisu sva mjesta zauzeta i ako nije vec prijavljen
- Seminar & operator += (Ucesnik & dodajme){
- if (_brojPrijavljenih < 100){
- for (int i = 0; i < _brojPrijavljenih; i++){
- if (_prijavljeni[_brojPrijavljenih].getBrojIndexa() == dodajme.getBrojIndexa())
- return *this;
- }
- _prijavljeni[_brojPrijavljenih] = dodajme;
- _brojPrijavljenih++;
- }
- return *this;
- }
- // fukncija otkazuje ucesnika na osnovu primljenog idbroja
- void otkaziUcesnika(int id){
- for (int i = 0; i < _brojPrijavljenih; i++){
- if (_prijavljeni[i].getBrojIndexa() == id){
- for (int j = i; j < _brojPrijavljenih-1; j++){
- _prijavljeni[j] = _prijavljeni[j+1];
- }
- cout << "Ucesnik sa ID brojem: " << id << " je uspjesno otkazan."<<endl;
- _brojPrijavljenih--;
- }
- }
- }
- // funkcija treba da sumu svih izvrsenih uplata za seminar
- int getSumUplate(){
- return _brojPrijavljenih * _kotizacija;
- }
- //operator <<
- friend ostream & operator << (ostream & COUT, Seminar & seminar);
- };
- ostream & operator <<(ostream & COUT, Ucesnik & org){
- COUT << org._id << " " << org._imePrezime << " " << org._datumPrijave << endl;
- return COUT;
- }
- ostream & operator << (ostream & COUT, Seminar & seminar){
- COUT << crt;
- COUT << "Period odrzavanja: " << seminar._periodOdrzavanja << endl;
- COUT << "Mjesto odrzavanja: " << seminar._mjestoOdrzavanja << endl;
- COUT << "Kotizacija: " << seminar._kotizacija << endl;
- COUT << "Broj prijavljenih: " << seminar._brojPrijavljenih << endl;
- if (seminar._brojPrijavljenih != 0) COUT << " :: LISTA PRIJAVLJENIH :: " << endl;
- for (int i = 0; i < seminar._brojPrijavljenih; i++){
- cout <<seminar._prijavljeni[i];
- }
- COUT << crt;
- return COUT;
- }
- int main(){
- // klasa ucesnik i testiranje operatora <<i =
- Ucesnik a;
- Ucesnik b(1, "Nedim Fejzic", "10.04.1995");
- Ucesnik c(2, "Leme Kum", "1.1.1900");
- Ucesnik d(3, "Faja Sadrvan", "1.1.1901");
- Ucesnik e(4, "Nesam Skolovala", "1.1.1902");
- // skinuti komentar ispod
- /*
- cout << a << b;
- cout << "a = b" << endl;
- a = b;
- cout << a << b;
- */
- // klasa seminar, dodati ucesnike na seminar, ispisati seminar, ukloniti ucesnika iz seminara, dobiti sumu uplata
- Seminar s("10.04.2015","Gorazde",50);
- s += b;
- s += c;
- s += d;
- s += e;
- cout << s;
- cout << s.getSumUplate()<<endl;
- // skinuti komentar ispod - otkazivanje rezervacije
- /*
- cout << "Kojeg korisnika zelite otkazati: ID BROJ?:" << endl;
- int ide;
- cin >> ide;
- s.otkaziUcesnika(ide);
- cout << s;
- cout << s.getSumUplate()<<endl;
- */
- system("pause >null");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement