Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <ostream>
- using namespace std;
- class platnosc {
- protected:
- char* nazwa;
- double kwota;
- int day, month, year;
- public:
- platnosc() {
- nazwa = nullptr;
- }
- platnosc(char* n, double k, int d, int m, int y) {
- nazwa = new char[strlen(n + 1)];
- strcpy(nazwa, n);
- kwota = k;
- day = d;
- month = m;
- year = y;
- }
- platnosc(const platnosc &p) {
- nazwa = new char[strlen(p.nazwa + 1)];
- strcpy(nazwa, p.nazwa);
- kwota = p.kwota;
- day = p.day;
- month = p.month;
- year = p.year;
- }
- platnosc& operator=(platnosc const &p) {
- if (this == &p)
- return *this;
- if (nazwa != nullptr)
- delete[] nazwa;
- nazwa = new char[strlen(p.nazwa + 1)];
- strcpy(nazwa, p.nazwa);
- kwota = p.kwota;
- day = p.day;
- month = p.month;
- year = p.year;
- return *this;
- }
- bool operator>(platnosc const &w) {
- if ((year>w.year) || (year == w.year && month>w.month) || (year == w.year && month == w.month && day>w.day)) {
- return true;
- }
- return false;
- }
- friend ostream &operator<<(ostream &output, const platnosc &p);
- };
- class stosp{
- public:
- int szczyt, pojemnosc;
- platnosc* stos;
- //public:
- stosp() {
- stos = nullptr;
- }
- stosp(int x){
- pojemnosc = x;
- stos = new platnosc[pojemnosc];
- szczyt = 0;
- }
- ~stosp() {
- delete[] stos;
- }
- stosp(const stosp &s) {
- szczyt = s.szczyt;
- pojemnosc = s.pojemnosc;
- for (int i = 0; i < szczyt; i++)
- stos[i] = s.stos[i];
- }
- platnosc* operator--() {
- int tmp = szczyt;
- szczyt--;
- return &stos[tmp];
- }
- platnosc* operator++() { // druga wersja --
- platnosc* tmp = &stos[szczyt - 1];
- szczyt--;
- return tmp;
- }
- stosp & operator+=(platnosc*p) {
- szczyt++;
- if (szczyt > pojemnosc) {
- cout << "przekroczono zakres";
- return *this;
- }
- stos[szczyt] = *p;
- return *this;
- }
- platnosc* operator[](int i) {
- if (szczyt < i) {
- cout << "wypierdalaj nie ma";
- return &stos[0];
- }
- return &stos[i];
- }
- friend ostream &operator<<(ostream &output, const platnosc &p);
- };
- class kolejka :public stosp {
- public:
- kolejka()
- {
- stos = nullptr;
- }
- kolejka(int _dl)
- {
- pojemnosc = _dl;
- szczyt = 0;
- stos = new platnosc[pojemnosc];
- }
- kolejka(const kolejka &w)
- {
- pojemnosc = w.pojemnosc;
- szczyt = w.szczyt;
- stos = new platnosc[pojemnosc];
- for (int i = 0; i < szczyt; i++)
- {
- stos[i] = w.stos[i];
- }
- }
- kolejka& operator=(const stosp &s)
- {
- szczyt = s.szczyt;
- pojemnosc = s.pojemnosc;
- stos = new platnosc[pojemnosc];
- platnosc* tmp;
- for (int i = 0; i < szczyt; i++)
- {
- stos[i]= s.stos[i];
- for (int j = 0; j < szczyt; j++)
- {
- if (stos[j] > s.stos[i])
- {
- tmp = &s.stos[i];
- s.stos[i] = stos[j];
- stos[j] = *tmp;
- }
- }
- }
- return *this;
- }
- friend ostream &operator<<(ostream &output, const platnosc &p);
- };
- ostream &operator<<(ostream &output, const platnosc &p) {
- output << "nazwa: " << p.nazwa << endl << "-------------------" << endl << "kwota:" << endl << "-----------------" << endl << "data: " << p.day << "." << p.month << "." << p.year << endl << endl;
- return output;
- }
- int main()
- {
- stosp stosik(10);
- platnosc* tmp1 = new platnosc("Kupa", 110, 3, 13, 2009);
- platnosc* tmp2 = new platnosc("Paluch ssie dzide", 100, 1, 0, 2012);
- platnosc* tmp3 = new platnosc("ABC", 100, 2, 3, 2012);
- platnosc* tmp4 = new platnosc(*tmp2);
- platnosc* tmp5 = new platnosc();
- tmp5 = tmp1;
- // cout << *tmp1;
- // cout << *tmp2;
- // cout << *tmp4;
- // cout << *tmp5;
- stosik += tmp1;
- stosik += tmp2;
- stosik += tmp3;
- stosik += tmp4;
- stosik += tmp5;
- for (int i = 1; i < stosik.szczyt+1; i++)
- cout << i << "<-index"<< endl<< *stosik[i];
- cout << ".................................................." << endl;
- tmp5 = ++stosik;
- for (int i = 1; i < stosik.szczyt+1; i++)
- cout << i << "<-index"<<endl << *stosik[i];
- kolejka czystej;
- cout << ".................................................." << endl;
- czystej = stosik;
- for (int i = 1; i < 5; i++)
- cout << *czystej[i];
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement