![]() Ласло Краус |
Објектно програмирање - колоквијуми Први колоквијум Друга група 25. 4. 2004. |
---|
Пројектовати на језику C++ класу за скупове целих бројева. Предвидети:
skup1=skup2
),+skup
),skup%br
),skup+=br
),skup1+skup2
),skup(i)
),d<<skup
).Саставити на језику C++ главни програм који:
studentx
(x
је број радне станице за којим се ради). Лозинка на свакој радној станици је student
.N:
(Nastava
on
\\Xs200-2
) у каталогу ObjektnoProg\RSx
(x
је број радне станице за којим се ради).// skup.h #include <iostream.h> #include <stdlib.h> class Skup { int *niz, duz; void kopiraj (const Skup& s); void brisi () { delete [] niz; niz = 0; duz = 0; } public: Skup () { niz = 0; duz = 0; } Skup (const Skup& s) {kopiraj(s);} ~Skup () { brisi (); } Skup& operator= (const Skup& s) { if (this != &s) { brisi (); kopiraj (s); } return *this; } int operator+ () const { return duz; } bool operator% (int b) const; Skup& operator+= (int b); friend Skup operator+ (const Skup& s1, const Skup& s2); int operator() (int i) { if (i<0 || i>=duz) exit (1); return niz[i]; } friend ostream& operator<< (ostream& d, const Skup& s); };(садржај)
// skup.cpp #include "skup.h" void Skup::kopiraj (const Skup& s) { niz = new int [duz = s.duz]; for (int i=0; i<duz; i++) niz[i] = s.niz[i]; } bool Skup::operator% (int b) const { for (int i=0; i<duz; i++) if (niz[i] == b) return true; return false; } Skup& Skup::operator+= (int b) { if (! (*this % b)) { int *n = new int [duz+1]; for (int i=0; i<duz; i++) n[i] = niz[i]; n[duz++] = b; delete [] niz; niz = n; } return *this; } Skup operator+ (const Skup& s1, const Skup& s2) { Skup s (s1); for (int i=0; i<s2.duz; s+=s2.niz[i++]); return s; } ostream& operator<< (ostream& d, const Skup& s) { d << '{'; for (int i=0; i<s.duz; i++) { if (i > 0) d << ','; d << s.niz[i]; } return d << '}'; }
// skupt.cpp #include "skup.h" #include <iostream.h> int main () { Skup s1, s2; int n, i; cout << "n1? "; cin >> n; cout << "niz1? "; for (i=0; i<n; i++) { int b; cin >> b; s1 += b; } cout << "n2? "; cin >> n; cout << "niz2? "; for (i=0; i<n; i++) { int b; cin >> b; s2 += b; } cout << "s1 = " << s1 << endl; cout << "s2 = " << s2 << endl; Skup s3 (s1+s2); cout << "s3 = " << s3 << endl; double sr = 0; for (i=0; i<+s3; sr+=s3(i++)); if (+s3) sr /= +s3; cout << "Sr. vr.= " << sr << endl; return 0; }
Copyright © 2010, Laslo Kraus
Последња ревизија: 4.10.2010.