Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- char crt[] = { "----------------------------------------\n" };
- class Uredjaj {
- protected:
- char _ID[13];
- char * _naziv;
- char * _proizvodjac;
- float _cijena;
- public:
- Uredjaj(char * ID, char * naziv, char * proizvodjac , float cijena){
- strcpy_s(_ID, 13, ID);
- int vel = strlen(naziv) + 1;
- _naziv = new char[vel];
- strcpy_s(_naziv, vel, naziv);
- vel = strlen(proizvodjac) + 1;
- _proizvodjac = new char[vel];
- strcpy_s(_proizvodjac, vel, proizvodjac);
- _cijena = cijena;
- }
- Uredjaj(Uredjaj & obj){
- strcpy_s(_ID, 13, obj._ID);
- int vel = strlen(obj._naziv) + 1;
- _naziv = new char[vel];
- strcpy_s(_naziv, vel, obj._naziv);
- vel = strlen(obj._proizvodjac) + 1;
- _proizvodjac = new char[vel];
- strcpy_s(_proizvodjac, vel, obj._proizvodjac);
- _cijena = obj._cijena;
- }
- virtual ~Uredjaj(){
- cout << "UREDJAJ :: DESTRUKTOR\n";
- delete _naziv;
- delete _proizvodjac;
- _naziv = nullptr;
- _proizvodjac = nullptr;
- }
- virtual void info() = 0;
- /*
- {
- cout << _ID << " / " << _naziv << " / " << _proizvodjac << " / " << _cijena << endl;
- }
- */
- void powerOn(){
- cout << "UKLJUCUJE SE !!!" << endl;
- }
- void powerOff(){
- cout << "ISKLJUCUJE SE !!!" << endl;
- }
- };
- class Printer : virtual public Uredjaj{
- protected:
- int _brzinaPrinta;
- int _brojac = 0;
- public:
- Printer(char * ID = "-", char * naziv = "-", char * proizvodjac = "-", float cijena = 0,int brzinaPrinta = 0):Uredjaj(ID,naziv,proizvodjac,cijena){
- _brzinaPrinta = brzinaPrinta;
- }
- Printer(Printer & obj):Uredjaj(obj){
- _brzinaPrinta = obj._brzinaPrinta;
- _brojac = obj._brojac;
- }
- ~Printer(){
- cout << "PRINTER :: DESTRUKTOR\n";
- }
- void info(){
- cout <<crt<< "PRINTER\n";
- cout << _ID << " / " << _naziv << " / " << _proizvodjac << " / " << _cijena << endl;
- //Uredjaj::info();
- cout << "Brzina printa: " << _brzinaPrinta << endl;
- cout << "Stranica isprintano: " << _brojac << endl;
- }
- void print(int brojStranica){
- cout << crt << "PRINTAM - " << brojStranica <<endl << crt;
- for (int i = 0; i < brojStranica; i++){
- cout << "Printam stranicu: " << i + 1 << endl;
- }
- cout << crt << "OPERACIJA USPJESNO OBAVLJENA!"<<endl << crt;
- _brojac += brojStranica;
- }
- };
- class Skener : virtual public Uredjaj{
- protected:
- int _brzinaScana;
- int _brojac=0;
- public:
- Skener(char * ID = "-", char * naziv = "-", char * proizvodjac = "-", float cijena = 0, int brzinaScana = 0) :Uredjaj(ID, naziv, proizvodjac, cijena){
- _brzinaScana = brzinaScana;
- }
- Skener(Skener & obj) :Uredjaj(obj){
- _brzinaScana = obj._brzinaScana;
- _brojac = obj._brojac;
- }
- ~Skener(){
- cout << "SKENER :: DESTRUKTOR\n";
- }
- void info(){
- cout << crt << "SKENER" << endl;
- cout << _ID << " / " << _naziv << " / " << _proizvodjac << " / " << _cijena << endl;
- //Uredjaj::info();
- cout << "Brzina skeniranja: " << _brzinaScana << endl;
- cout << "Stranica skenirano: " << _brojac << endl;
- }
- void skeniraj(int brojStranica){
- cout << crt << "SKENIRAM- " << brojStranica << endl << crt;
- for (int i = 0; i < brojStranica; i++){
- cout << "Skeniram stranicu: " << i + 1 << endl;
- }
- cout << crt << "OPERACIJA USPJESNO OBAVLJENA!" << endl << crt;
- _brojac += brojStranica;
- }
- };
- class PrinterSkener : public Printer, public Skener{
- public:
- PrinterSkener(char * ID = "-", char * naziv = "-", char * proizvodjac = "-", float cijena = 0, int brzinaPrinta = 0, int brzinaSkeniranja = 0): Uredjaj(ID, naziv, proizvodjac, cijena),Printer(ID, naziv, proizvodjac, cijena, brzinaPrinta), Skener(ID, naziv, proizvodjac, cijena, brzinaSkeniranja){
- }
- ~PrinterSkener(){
- cout << "PRINTER - SKENER :: DESTRUKTOR\n";
- }
- void setCijena(float cijena){
- Printer::_cijena = cijena;
- Skener::_cijena = cijena;
- }
- void info(){
- cout << crt << "PRINTER-SKENER" << endl;
- cout << Printer::_ID << " / " << Printer::_naziv << " / " << Printer::_proizvodjac << " / " << Printer::_cijena << endl;
- //Uredjaj::info();
- cout << "Brzina printa: " << Printer::_brzinaPrinta << endl;
- cout << "Stranica isprintano: " << Printer::_brojac << endl;
- cout << "Brzina skeniranja: " << Skener::_brzinaScana << endl;
- cout << "Stranica skenirano: " << Skener::_brojac << endl;
- }
- };
- int main(){
- /*
- Printer p1("1234FG4A", "LX120","HP",160.95,18);
- p1.powerOn();
- p1.info();
- p1.print(3);
- p1.print(6);
- p1.info();
- p1.powerOff();
- Skener s1("F6G1AG4", "SCX2000", "Toshiba", 349.99, 36);
- s1.powerOn();
- s1.info();
- s1.skeniraj(2);
- s1.skeniraj(5);
- s1.info();
- s1.powerOff();
- */
- Uredjaj * pok1 = new Printer("1234FG4A", "LX120", "HP", 160.95, 18);
- Uredjaj * pok2 = new Skener("F6G1AG4", "SCX2000", "Toshiba", 349.99, 36);
- Uredjaj *niz[4];
- niz[0] = new Printer("1234FG4A", "LX120", "HP", 160.95, 18);
- niz[1] = new Skener("F6G1AG4", "SCX2000", "Toshiba", 349.99, 36);
- niz[2] = new Printer("12G2t1A", "CE120", "Lexmark", 111.95, 12);
- niz[3] = new PrinterSkener("X1GG44G", "ESTUDIO 166","Lenovo", 750, 45, 32);
- PrinterSkener * pok = NULL;
- for (int i = 0; i < 4; i++){
- pok = dynamic_cast<PrinterSkener *>(niz[i]);
- if (pok != NULL){
- pok->skeniraj(i);
- pok->print(i);
- }
- niz[i]->info();
- delete niz[i];
- }
- system("pause > null");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement