![]() Ласло Краус |
Објектно програмирање - колоквијуми Први колоквијум Прва група 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.