![]() Ласло Краус |
Објектно програмирање - колоквијуми Први колоквијум Прва група 25. 4. 2004. |
---|
Пројектовати на језику C++ класу за уређене низове целих бројева. Предвидети:
niz1=niz2
),+niz
),-niz
)niz+=br
),niz-=br
),niz%br
),d<<niz
).Саставити на језику C++ главни програм који:
studentx
(x
је број радне станице за којим се ради). Лозинка на свакој радној станици је student
.N:
(Nastava
on
\\Xs200-2
) у каталогу ObjektnoProg\RSx
(x
је број радне станице за којим се ради).// niz.h #include <iostream.h> #include <stdlib.h> class Niz { int *niz, kap, duz; void kopiraj (const Niz& n); void brisi () { delete [] niz; kap = duz = 0; } public: explicit Niz (int k=10) { niz = new int [kap = k]; duz = 0; } Niz (const Niz& n) { kopiraj (n); } ~Niz () { brisi (); } Niz& operator= (const Niz& n) { if (this != &n) { brisi (); kopiraj (n); } return *this; } int operator+ () const { return duz; } int operator- () const { return kap - duz; } Niz& operator+= (int b); Niz& operator-= (int b); int operator% (int b) const; friend ostream& operator<< (ostream& d, const Niz& n); };(садржај)
// niz.cpp #include "niz.h" void Niz::kopiraj (const Niz& n) { niz = new int [kap = n.kap]; duz = n.duz; for (int i=0; i<duz; i++) niz[i] = n.niz[i]; } Niz& Niz::operator+= (int b) { int i = duz - 1; while (i>=0 && niz[i]>b) { niz[i+1] = niz[i]; i--; } niz[i+1] = b; duz++; return *this; } Niz& Niz::operator-= (int b) { int p, k; for (p=0; p<duz && niz[p]<b; p++); for (k=p; k<duz && niz[k]==b; k++); if (k > p) while (k < duz) niz[p++] = niz[k++]; duz = p; return *this; } int Niz::operator% (int b) const { int p, k; for (p=0; p<duz && niz[p]<b; p++); for (k=p; k<duz && niz[k]==b; k++); return k - p; } ostream& operator<< (ostream& d, const Niz& n) { d << '['; for (int i=0; i<n.duz; i++) { d<<n.niz[i]; if (i < n.duz-1) d << ','; } return d << ']'; }
// nizt.cpp #include "niz.h" #include <iostream.h> int main () { cout << "Kapacitet? "; int k; cin >> k; Niz niz (k); while (-niz) { cout << "Broj? "; int b; cin >> b; niz += b; } cout << "Niz= " << niz << endl; cout << "Trazi se? "; int b; cin >> b; cout << "Ima ga " << (niz % b) << " puta.\n"; cout << "Izostavljeno: " << (niz -= b) << endl; return 0; }
Copyright © 2010, Laslo Kraus
Последња ревизија: 4.10.2010.