Advertisement
dizzy94

lab13_wej

May 30th, 2017
533
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.21 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7.  
  8. ///////////////////////////Osoba_na_uczelni///////////////////////////////
  9. class Osoba_na_uczelni
  10. {
  11. public:
  12.     Osoba_na_uczelni();
  13.     Osoba_na_uczelni(string, string, string);
  14.     Osoba_na_uczelni(Osoba_na_uczelni&);
  15.     virtual ~Osoba_na_uczelni();
  16.  
  17.     void setImie(string);
  18.     void setNazwisko(string);
  19.     void setEmail(string);
  20.     string getImie() { return imie; }
  21.     string gettNaziwsko() { return nazwisko; }
  22.     string getEmail() { return email; }
  23.  
  24.     virtual void wypisz();
  25.     Osoba_na_uczelni& operator+=(const Osoba_na_uczelni& rv) {
  26.         imie += rv.imie;
  27.         nazwisko += rv.nazwisko;
  28.         email += rv.email;
  29.         return *this;
  30.     };
  31.  
  32.     Osoba_na_uczelni *nast;
  33. protected:
  34.     string imie;
  35.     string nazwisko;
  36.     string email;
  37. };
  38.  
  39. void Osoba_na_uczelni::setImie(string imie) {
  40.     this->imie = imie;
  41. }
  42.  
  43. void Osoba_na_uczelni::setNazwisko(string nazwisko) {
  44.     this->nazwisko = nazwisko;
  45. }
  46.  
  47. void Osoba_na_uczelni::setEmail(string email) {
  48.     this->email = email;
  49. }
  50.  
  51.  
  52. Osoba_na_uczelni::Osoba_na_uczelni()
  53. {
  54.     imie = "noName";
  55.     nazwisko = "noLastName";
  56.     email = "empty@mail.com";
  57.     nast = NULL;
  58. }
  59.  
  60. Osoba_na_uczelni::Osoba_na_uczelni(string imie, string nazwisko, string email)
  61. {
  62.     this->imie = imie;
  63.     this->nazwisko = nazwisko;
  64.     this->email = email;
  65.     nast = NULL;
  66. }
  67.  
  68. Osoba_na_uczelni::Osoba_na_uczelni(Osoba_na_uczelni &copy)
  69. {
  70.     imie = copy.imie;
  71.     nazwisko = copy.nazwisko;
  72.     email = copy.email;
  73.     nast = copy.nast;
  74. }
  75.  
  76. Osoba_na_uczelni::~Osoba_na_uczelni()
  77. {
  78.     cout << "~Osoba_na_uczelni()" << endl;
  79.     delete nast;
  80. }
  81.  
  82. void Osoba_na_uczelni::wypisz()
  83. {
  84.     cout << "Osoba: " << imie << " " << nazwisko << " email: " << email << endl;
  85. }
  86.  
  87. class Student : public Osoba_na_uczelni
  88. {
  89. public:
  90.     Student();
  91.     Student(string, string, string, int, int);
  92.     Student(Student&);
  93.     ~Student();
  94.  
  95.     void setID(int);
  96.     void setRok(int);
  97.     int getID() { return ID; }
  98.     int getRok() { return rok; }
  99.  
  100.     void wypisz();
  101.  
  102.     Student *nast;
  103.  
  104. protected:
  105.     int ID;
  106.     int rok;
  107. };
  108.  
  109. void Student::setID(int ID) {
  110.     if (ID >= 0) this->ID = ID;
  111.     else { this->ID = 1; }
  112. }
  113.  
  114. void Student::setRok(int rok) {
  115.     if (rok >= 1900) this->rok = rok;
  116.     else { this->rok = 0; }
  117. }
  118.  
  119. Student::Student() :Osoba_na_uczelni()
  120. {
  121.     ID = 1;
  122.     rok = 1980;
  123. }
  124.  
  125. Student::Student(string imie, string nazwisko, string email, int ID, int rok) :Osoba_na_uczelni(imie, nazwisko, email)
  126. {
  127.     if (ID >= 0) this->ID = ID;
  128.     else { this->ID = 1; }
  129.     if (rok >= 1900) this->rok = rok;
  130.     else { this->rok = 0; }
  131. }
  132.  
  133. Student::Student(Student &copy) : Osoba_na_uczelni(copy)
  134. {
  135.     ID = copy.ID;
  136.     rok = copy.rok;
  137. }
  138. Student::~Student()
  139. {
  140.     cout << "~Student()" << endl;
  141. }
  142.  
  143. void Student::wypisz()
  144. {
  145.     cout << "Osoba: " << imie << " " << nazwisko << " email: " << email << " ID: " << ID << " rok: " << rok << endl;
  146. }
  147.  
  148. class Pracownik : public Osoba_na_uczelni
  149. {
  150. public:
  151.     Pracownik();
  152.     Pracownik(string, string, string, int, char[]);
  153.     Pracownik(Pracownik&);
  154.     ~Pracownik();
  155.  
  156.     void setLiczba_magistrow(int);
  157.     void setProwadzacy(char[]);
  158.     int getLiczba_magistrow() { return liczba_magistrow; }
  159.     char *getProwadzacy() { return prowadzacy; }
  160.  
  161.     void wypisz();
  162.  
  163. protected:
  164.     int liczba_magistrow;
  165.     char prowadzacy[10];
  166. };
  167.  
  168.  
  169. void Pracownik::setLiczba_magistrow(int liczba_magistrow)
  170. {
  171.     if (liczba_magistrow >= 0) this->liczba_magistrow = liczba_magistrow;
  172.     else { this->liczba_magistrow = 1; }
  173. }
  174.  
  175. //do zmiany
  176. void Pracownik::setProwadzacy(char t[])
  177. {
  178.     strcpy(prowadzacy, t);
  179. }
  180.  
  181. Pracownik::Pracownik() :Osoba_na_uczelni()
  182. {
  183.     liczba_magistrow = 1;
  184.     strcpy(prowadzacy, "brak");
  185. }
  186.  
  187. Pracownik::Pracownik(string imie, string nazwisko, string email, int liczba_magistrow, char prowadzacy[]) :Osoba_na_uczelni(imie, nazwisko, email)
  188. {
  189.     if (liczba_magistrow >= 0) this->liczba_magistrow = liczba_magistrow;
  190.     else { this->liczba_magistrow = 1; }
  191.  
  192.     strcpy(this->prowadzacy, prowadzacy);
  193. }
  194.  
  195. Pracownik::Pracownik(Pracownik& copy): Osoba_na_uczelni(copy)
  196. {
  197.     liczba_magistrow = copy.liczba_magistrow;
  198.     strcpy(prowadzacy, copy.prowadzacy);
  199. }
  200.  
  201. Pracownik::~Pracownik()
  202. {
  203.     cout << "~Pracownik()" << endl;
  204. }
  205.  
  206. void Pracownik::wypisz()
  207. {
  208.     cout << "Osoba: " << imie << " " << nazwisko << " email: " << email << " Liczba magistrow: " << liczba_magistrow << " rok: " << endl;
  209.     cout << "Liczba prowadzacych:\n";
  210.     for (int i = 0; i < 10; i++)
  211.     {
  212.         cout << prowadzacy << endl;
  213.     }
  214. }
  215.  
  216.  
  217. int main() {
  218.  
  219.  
  220.     ///////////////////////////Osoba_na_uczelni///////////////////////////////
  221.     Osoba_na_uczelni *head_onu = NULL, *wsk_onu = NULL, *wsk_wej;
  222.     Student *wskS = NULL;
  223.     Pracownik  *wskP = NULL;
  224.     //tworzenie listy
  225.     /*if (head_onu == NULL)
  226.     {
  227.         head_onu = new Student("Jacek", "Krzynowek", "panjacek@gmail.com", 94015, 1994);
  228.         wsk_onu = head_onu;
  229.     }
  230.     wsk_onu->nast = NULL;
  231.     for (int i = 0; i < 5; i++)
  232.     {
  233.         if (i == 0) {
  234.             //wsk_onu->nast = new Pracownik("A", "B", "C", 1, "wojtek");
  235.             wsk_onu->nast = new Pracownik();
  236.         }
  237.         else if (i == 1)
  238.         {
  239.             wsk_onu->nast = new Osoba_na_uczelni(*head_onu);
  240.         }
  241.         else if (i == 2)
  242.         {
  243.             wsk_onu->nast = new Student();
  244.         }
  245.         else
  246.         {
  247.             wsk_onu->nast = new Osoba_na_uczelni("Krzysiek", "Rozenek", "ratat@golec.com.pl");
  248.         }
  249.         wsk_onu = wsk_onu->nast;
  250.     }*/
  251.  
  252.     if (head_onu == NULL)
  253.     {
  254.         head_onu = new Osoba_na_uczelni("1", "1", "1");
  255.         wsk_onu = head_onu;
  256.     }
  257.     wsk_onu->nast = NULL;
  258.     for (int i = 0; i < 4; i++)
  259.     {
  260.         if (i == 0) {
  261.             //wsk_onu->nast = new Pracownik("A", "B", "C", 1, "wojtek");
  262.             wsk_onu->nast = new Osoba_na_uczelni("2", "2", "2");
  263.         }
  264.         else if (i == 1)
  265.         {
  266.             wsk_onu->nast = new Osoba_na_uczelni("3", "3", "3");
  267.         }
  268.         else if (i == 2)
  269.         {
  270.             wsk_onu->nast = new Osoba_na_uczelni("4", "4", "4");
  271.         }
  272.         else if (i == 3)
  273.         {
  274.             wsk_onu->nast = new Osoba_na_uczelni("5", "5", "5");
  275.         }
  276.         wsk_onu = wsk_onu->nast;
  277.     }
  278.  
  279.  
  280.     wsk_onu = wsk_wej = head_onu;
  281.     while (wsk_onu != NULL) {
  282.         *wsk_wej += *wsk_onu->nast;
  283.         wsk_onu = wsk_onu->nast;
  284.         if(wsk_onu->nast == NULL)
  285.             break;
  286.     }
  287.  
  288.     //wypisanie listy
  289.     cout << "Wypisanie:\n";
  290.     wsk_onu = head_onu;
  291.     while (wsk_onu != NULL) {
  292.         wsk_onu->wypisz();
  293.         wsk_onu = wsk_onu->nast;
  294.         cout << "\n";
  295.     }
  296.  
  297.     cout << "\n\n";
  298.     //usuwanie listy
  299.     delete head_onu;
  300.     delete wsk_onu;
  301.  
  302.     return 0;
  303. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement