Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <string>
- using namespace std;
- ///////////////////////////Osoba_na_uczelni///////////////////////////////
- class Osoba_na_uczelni
- {
- public:
- Osoba_na_uczelni();
- Osoba_na_uczelni(string, string, string);
- Osoba_na_uczelni(Osoba_na_uczelni&);
- virtual ~Osoba_na_uczelni();
- void setImie(string);
- void setNazwisko(string);
- void setEmail(string);
- string getImie() { return imie; }
- string gettNaziwsko() { return nazwisko; }
- string getEmail() { return email; }
- virtual void wypisz();
- Osoba_na_uczelni& operator+=(const Osoba_na_uczelni& rv) {
- imie += rv.imie;
- nazwisko += rv.nazwisko;
- email += rv.email;
- return *this;
- };
- Osoba_na_uczelni *nast;
- protected:
- string imie;
- string nazwisko;
- string email;
- };
- void Osoba_na_uczelni::setImie(string imie) {
- this->imie = imie;
- }
- void Osoba_na_uczelni::setNazwisko(string nazwisko) {
- this->nazwisko = nazwisko;
- }
- void Osoba_na_uczelni::setEmail(string email) {
- this->email = email;
- }
- Osoba_na_uczelni::Osoba_na_uczelni()
- {
- imie = "noName";
- nazwisko = "noLastName";
- email = "empty@mail.com";
- nast = NULL;
- }
- Osoba_na_uczelni::Osoba_na_uczelni(string imie, string nazwisko, string email)
- {
- this->imie = imie;
- this->nazwisko = nazwisko;
- this->email = email;
- nast = NULL;
- }
- Osoba_na_uczelni::Osoba_na_uczelni(Osoba_na_uczelni ©)
- {
- imie = copy.imie;
- nazwisko = copy.nazwisko;
- email = copy.email;
- nast = copy.nast;
- }
- Osoba_na_uczelni::~Osoba_na_uczelni()
- {
- cout << "~Osoba_na_uczelni()" << endl;
- delete nast;
- }
- void Osoba_na_uczelni::wypisz()
- {
- cout << "Osoba: " << imie << " " << nazwisko << " email: " << email << endl;
- }
- class Student : public Osoba_na_uczelni
- {
- public:
- Student();
- Student(string, string, string, int, int);
- Student(Student&);
- ~Student();
- void setID(int);
- void setRok(int);
- int getID() { return ID; }
- int getRok() { return rok; }
- void wypisz();
- Student *nast;
- protected:
- int ID;
- int rok;
- };
- void Student::setID(int ID) {
- if (ID >= 0) this->ID = ID;
- else { this->ID = 1; }
- }
- void Student::setRok(int rok) {
- if (rok >= 1900) this->rok = rok;
- else { this->rok = 0; }
- }
- Student::Student() :Osoba_na_uczelni()
- {
- ID = 1;
- rok = 1980;
- }
- Student::Student(string imie, string nazwisko, string email, int ID, int rok) :Osoba_na_uczelni(imie, nazwisko, email)
- {
- if (ID >= 0) this->ID = ID;
- else { this->ID = 1; }
- if (rok >= 1900) this->rok = rok;
- else { this->rok = 0; }
- }
- Student::Student(Student ©) : Osoba_na_uczelni(copy)
- {
- ID = copy.ID;
- rok = copy.rok;
- }
- Student::~Student()
- {
- cout << "~Student()" << endl;
- }
- void Student::wypisz()
- {
- cout << "Osoba: " << imie << " " << nazwisko << " email: " << email << " ID: " << ID << " rok: " << rok << endl;
- }
- class Pracownik : public Osoba_na_uczelni
- {
- public:
- Pracownik();
- Pracownik(string, string, string, int, char[]);
- Pracownik(Pracownik&);
- ~Pracownik();
- void setLiczba_magistrow(int);
- void setProwadzacy(char[]);
- int getLiczba_magistrow() { return liczba_magistrow; }
- char *getProwadzacy() { return prowadzacy; }
- void wypisz();
- protected:
- int liczba_magistrow;
- char prowadzacy[10];
- };
- void Pracownik::setLiczba_magistrow(int liczba_magistrow)
- {
- if (liczba_magistrow >= 0) this->liczba_magistrow = liczba_magistrow;
- else { this->liczba_magistrow = 1; }
- }
- //do zmiany
- void Pracownik::setProwadzacy(char t[])
- {
- strcpy(prowadzacy, t);
- }
- Pracownik::Pracownik() :Osoba_na_uczelni()
- {
- liczba_magistrow = 1;
- strcpy(prowadzacy, "brak");
- }
- Pracownik::Pracownik(string imie, string nazwisko, string email, int liczba_magistrow, char prowadzacy[]) :Osoba_na_uczelni(imie, nazwisko, email)
- {
- if (liczba_magistrow >= 0) this->liczba_magistrow = liczba_magistrow;
- else { this->liczba_magistrow = 1; }
- strcpy(this->prowadzacy, prowadzacy);
- }
- Pracownik::Pracownik(Pracownik& copy): Osoba_na_uczelni(copy)
- {
- liczba_magistrow = copy.liczba_magistrow;
- strcpy(prowadzacy, copy.prowadzacy);
- }
- Pracownik::~Pracownik()
- {
- cout << "~Pracownik()" << endl;
- }
- void Pracownik::wypisz()
- {
- cout << "Osoba: " << imie << " " << nazwisko << " email: " << email << " Liczba magistrow: " << liczba_magistrow << " rok: " << endl;
- cout << "Liczba prowadzacych:\n";
- for (int i = 0; i < 10; i++)
- {
- cout << prowadzacy << endl;
- }
- }
- int main() {
- ///////////////////////////Osoba_na_uczelni///////////////////////////////
- Osoba_na_uczelni *head_onu = NULL, *wsk_onu = NULL, *wsk_wej;
- Student *wskS = NULL;
- Pracownik *wskP = NULL;
- //tworzenie listy
- /*if (head_onu == NULL)
- {
- head_onu = new Student("Jacek", "Krzynowek", "panjacek@gmail.com", 94015, 1994);
- wsk_onu = head_onu;
- }
- wsk_onu->nast = NULL;
- for (int i = 0; i < 5; i++)
- {
- if (i == 0) {
- //wsk_onu->nast = new Pracownik("A", "B", "C", 1, "wojtek");
- wsk_onu->nast = new Pracownik();
- }
- else if (i == 1)
- {
- wsk_onu->nast = new Osoba_na_uczelni(*head_onu);
- }
- else if (i == 2)
- {
- wsk_onu->nast = new Student();
- }
- else
- {
- wsk_onu->nast = new Osoba_na_uczelni("Krzysiek", "Rozenek", "ratat@golec.com.pl");
- }
- wsk_onu = wsk_onu->nast;
- }*/
- if (head_onu == NULL)
- {
- head_onu = new Osoba_na_uczelni("1", "1", "1");
- wsk_onu = head_onu;
- }
- wsk_onu->nast = NULL;
- for (int i = 0; i < 4; i++)
- {
- if (i == 0) {
- //wsk_onu->nast = new Pracownik("A", "B", "C", 1, "wojtek");
- wsk_onu->nast = new Osoba_na_uczelni("2", "2", "2");
- }
- else if (i == 1)
- {
- wsk_onu->nast = new Osoba_na_uczelni("3", "3", "3");
- }
- else if (i == 2)
- {
- wsk_onu->nast = new Osoba_na_uczelni("4", "4", "4");
- }
- else if (i == 3)
- {
- wsk_onu->nast = new Osoba_na_uczelni("5", "5", "5");
- }
- wsk_onu = wsk_onu->nast;
- }
- wsk_onu = wsk_wej = head_onu;
- while (wsk_onu != NULL) {
- *wsk_wej += *wsk_onu->nast;
- wsk_onu = wsk_onu->nast;
- if(wsk_onu->nast == NULL)
- break;
- }
- //wypisanie listy
- cout << "Wypisanie:\n";
- wsk_onu = head_onu;
- while (wsk_onu != NULL) {
- wsk_onu->wypisz();
- wsk_onu = wsk_onu->nast;
- cout << "\n";
- }
- cout << "\n\n";
- //usuwanie listy
- delete head_onu;
- delete wsk_onu;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement