Advertisement
dizzy94

wejsciowka_lab11

May 16th, 2017
644
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.33 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <fstream>
  6. #include <string>
  7.  
  8. using namespace std;
  9.  
  10. class MojaKlasa {
  11.     char **email;
  12.     int ile;
  13.     int ID;
  14. public:
  15.     MojaKlasa * nast;
  16.     MojaKlasa(int x);
  17.     MojaKlasa(MojaKlasa& mk);
  18.     ~MojaKlasa();
  19.     int szukaj(int szukana);
  20.     void setemail(char* adres, int idx)
  21.     {
  22.         strcpy(email[idx], adres);
  23.     };
  24.  
  25.     void setID(int i)
  26.     {
  27.         this->ID = i;
  28.     }
  29.     int getID()
  30.     {
  31.         return ID;
  32.     }
  33.  
  34.     char* getEmail(int idx)
  35.     {
  36.         return email[idx];
  37.     };
  38.  
  39.     char** getEmail()
  40.     {
  41.         return email;
  42.     }
  43.     int getIle()
  44.     {
  45.         return ile;
  46.     }
  47. };
  48.  
  49. MojaKlasa::~MojaKlasa()
  50. {
  51.     delete nast;
  52. }
  53.  
  54. MojaKlasa::MojaKlasa(int x)
  55. {
  56.     email = new char*[ile = x];
  57.     for (int i = 0; i < ile; i++)
  58.     {
  59.         email[i] = new char[100];
  60.     }
  61. }
  62.  
  63.  
  64. MojaKlasa::MojaKlasa(MojaKlasa& mk)
  65. {
  66.     email = new char*[mk.ile];
  67.     ile = mk.ile;
  68.     ID = mk.ID;
  69.     for (int i = 0; i<ile; i++)
  70.     {
  71.         email[i] = new char[100];
  72.         strcpy(email[i], mk.email[i]);
  73.     }
  74. };
  75.  
  76. int MojaKlasa::szukaj(int szukana)
  77. {
  78.     if (ID == szukana)
  79.         return ID;
  80.     else
  81.         if (nast != NULL)
  82.             return nast->szukaj(szukana);
  83.         else
  84.             return NULL;
  85. }
  86.  
  87. class Wykladowca
  88. {
  89.     MojaKlasa *glowa;
  90.     MojaKlasa *wsk;
  91. public:
  92.     Wykladowca();
  93.     Wykladowca(char nazwa_pliku[20]);
  94.     Wykladowca(Wykladowca & wyk);
  95.     ~Wykladowca();
  96.     void dodaj_klase();
  97.     void wypisz();
  98.     void wypisz_element(int ktory);
  99.     int szukaj(int szukana);
  100.  
  101. };
  102.  
  103. Wykladowca::Wykladowca()
  104. {
  105.     glowa = NULL;
  106.     wsk = NULL;
  107. }
  108.  
  109. Wykladowca::~Wykladowca()
  110. {
  111.     delete glowa;
  112.     delete wsk;
  113. }
  114.  
  115. Wykladowca::Wykladowca(char nazwa_pliku[20])
  116. {
  117.     fstream plik;
  118.     MojaKlasa *nowy = new MojaKlasa(3);
  119.     int i = 0;
  120.     plik.open(nazwa_pliku);
  121.  
  122.     while (!plik.eof())
  123.     {
  124.         char pom[20];
  125.         plik.getline(pom, sizeof(plik));
  126.         nowy->setemail(pom, i);
  127.         nowy->setID(1);
  128.         i++;
  129.     }
  130.  
  131.     glowa = wsk = nowy;
  132.     wsk->nast = NULL;
  133.  
  134.  
  135. }
  136.  
  137. Wykladowca::Wykladowca(Wykladowca & wyk)
  138. {
  139.     glowa = wyk.glowa;
  140.     wsk = wyk.wsk;
  141. }
  142.  
  143. void Wykladowca::dodaj_klase()
  144. {
  145.     MojaKlasa *obiekt = new MojaKlasa(2);
  146.     char klasa[40];
  147.  
  148.     strcpy(klasa, "kowalski@op.pl");
  149.     obiekt->setemail(klasa, 0);
  150.  
  151.     strcpy(klasa, "nowak@gamil.com");
  152.     obiekt->setemail(klasa, 1);
  153.     obiekt->setID(2);
  154.  
  155.     wsk->nast = obiekt;
  156.     wsk = wsk->nast;
  157.     wsk->nast = NULL;
  158.  
  159.     MojaKlasa *obiekt2 = new MojaKlasa(2);
  160.  
  161.     strcpy(klasa, "czesiek@op.pl");
  162.     obiekt2->setemail(klasa, 0);
  163.  
  164.     strcpy(klasa, "wolny@gamil.com");
  165.     obiekt2->setemail(klasa, 1);
  166.     obiekt2->setID(3);
  167.  
  168.     wsk->nast = obiekt2;
  169.     wsk = wsk->nast;
  170.     wsk->nast = NULL;
  171.  
  172.     MojaKlasa *obiekt3 = new MojaKlasa(2);
  173.  
  174.     strcpy(klasa, "androl@op.pl");
  175.     obiekt3->setemail(klasa, 0);
  176.  
  177.     strcpy(klasa, "michal@gamil.com");
  178.     obiekt3->setemail(klasa, 1);
  179.     obiekt3->setID(4);
  180.  
  181.     wsk->nast = obiekt3;
  182.     wsk = wsk->nast;
  183.     wsk->nast = NULL;
  184.  
  185.     MojaKlasa *obiekt4 = new MojaKlasa(2);
  186.  
  187.     strcpy(klasa, "elo_wojetek@op.pl");
  188.     obiekt4->setemail(klasa, 0);
  189.  
  190.     strcpy(klasa, "zamykam@gamil.com");
  191.     obiekt4->setemail(klasa, 1);
  192.     obiekt4->setID(5);
  193.  
  194.     wsk->nast = obiekt4;
  195.     wsk = wsk->nast;
  196.     wsk->nast = NULL;
  197. }
  198.  
  199. void Wykladowca::wypisz()
  200. {
  201.     wsk = glowa;
  202.     while (wsk != NULL)
  203.     {
  204.         cout << "ID: " << wsk->getID() << endl;
  205.         for (int i = 0; i < 2; i++)
  206.         {
  207.             cout << wsk->getEmail(i) << endl;
  208.         }
  209.         wsk = wsk->nast;
  210.         cout << endl;
  211.     }
  212. }
  213.  
  214. int Wykladowca::szukaj(int szukana)
  215. {
  216.     wsk = glowa;
  217.     if (wsk->getID() == szukana)
  218.         return wsk->getID();
  219.     else
  220.         if (wsk->nast != NULL)
  221.             return wsk->szukaj(szukana);
  222.         else
  223.             return NULL;
  224. }
  225.  
  226. void Wykladowca::wypisz_element(int ktory)
  227. {
  228.     wsk = glowa;
  229.     while (wsk != NULL)
  230.     {
  231.         if (wsk->getID() == ktory)
  232.         {
  233.             for (int i = 0; i < wsk->getIle(); i++)
  234.             {
  235.                 cout << wsk->getEmail(i) << endl;
  236.             }
  237.             wsk = wsk->nast;
  238.         }
  239.         else
  240.         {
  241.             wsk = wsk->nast;
  242.         }
  243.     }
  244. }
  245.  
  246.  
  247. int main()
  248. {
  249.     char nazwa_pliku[20] = "test.txt";
  250.  
  251.     Wykladowca *wyk1 = new Wykladowca();
  252.     Wykladowca *wyk2 = new Wykladowca(nazwa_pliku);
  253.     Wykladowca *wyk3 = new Wykladowca(*wyk2);
  254.    
  255.     int pom, id;
  256.  
  257.     wyk2->dodaj_klase();
  258.     wyk2->wypisz();
  259.  
  260.     cout << "Podaj ID grupy\n";
  261.     cin >> id;
  262.  
  263.     pom = wyk2->szukaj(id);
  264.     if (pom != NULL)
  265.     {
  266.         cout << "\nSzukana grupa:\n";
  267.         cout << "Dla ID: " << id << endl;
  268.         wyk2->wypisz_element(pom);
  269.     }
  270.     else
  271.     {
  272.         cout << "Brak takiej grupy o podanym ID\n";
  273.     }
  274.  
  275.     delete wyk1, wyk2, wyk3;
  276.  
  277.     return 0;
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement