Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <fstream>
- #include <string>
- using namespace std;
- class MojaKlasa {
- char **email;
- int ile;
- int ID;
- public:
- MojaKlasa * nast;
- MojaKlasa(int x);
- MojaKlasa(MojaKlasa& mk);
- ~MojaKlasa();
- int szukaj(int szukana);
- void setemail(char* adres, int idx)
- {
- strcpy(email[idx], adres);
- };
- void setID(int i)
- {
- this->ID = i;
- }
- int getID()
- {
- return ID;
- }
- char* getEmail(int idx)
- {
- return email[idx];
- };
- char** getEmail()
- {
- return email;
- }
- int getIle()
- {
- return ile;
- }
- };
- MojaKlasa::~MojaKlasa()
- {
- delete nast;
- }
- MojaKlasa::MojaKlasa(int x)
- {
- email = new char*[ile = x];
- for (int i = 0; i < ile; i++)
- {
- email[i] = new char[100];
- }
- }
- MojaKlasa::MojaKlasa(MojaKlasa& mk)
- {
- email = new char*[mk.ile];
- ile = mk.ile;
- ID = mk.ID;
- for (int i = 0; i<ile; i++)
- {
- email[i] = new char[100];
- strcpy(email[i], mk.email[i]);
- }
- };
- int MojaKlasa::szukaj(int szukana)
- {
- if (ID == szukana)
- return ID;
- else
- if (nast != NULL)
- return nast->szukaj(szukana);
- else
- return NULL;
- }
- class Wykladowca
- {
- MojaKlasa *glowa;
- MojaKlasa *wsk;
- public:
- Wykladowca();
- Wykladowca(char nazwa_pliku[20]);
- Wykladowca(Wykladowca & wyk);
- ~Wykladowca();
- void dodaj_klase();
- void wypisz();
- void wypisz_element(int ktory);
- int szukaj(int szukana);
- };
- Wykladowca::Wykladowca()
- {
- glowa = NULL;
- wsk = NULL;
- }
- Wykladowca::~Wykladowca()
- {
- delete glowa;
- delete wsk;
- }
- Wykladowca::Wykladowca(char nazwa_pliku[20])
- {
- fstream plik;
- MojaKlasa *nowy = new MojaKlasa(3);
- int i = 0;
- plik.open(nazwa_pliku);
- while (!plik.eof())
- {
- char pom[20];
- plik.getline(pom, sizeof(plik));
- nowy->setemail(pom, i);
- nowy->setID(1);
- i++;
- }
- glowa = wsk = nowy;
- wsk->nast = NULL;
- }
- Wykladowca::Wykladowca(Wykladowca & wyk)
- {
- glowa = wyk.glowa;
- wsk = wyk.wsk;
- }
- void Wykladowca::dodaj_klase()
- {
- MojaKlasa *obiekt = new MojaKlasa(2);
- char klasa[40];
- strcpy(klasa, "kowalski@op.pl");
- obiekt->setemail(klasa, 0);
- strcpy(klasa, "nowak@gamil.com");
- obiekt->setemail(klasa, 1);
- obiekt->setID(2);
- wsk->nast = obiekt;
- wsk = wsk->nast;
- wsk->nast = NULL;
- MojaKlasa *obiekt2 = new MojaKlasa(2);
- strcpy(klasa, "czesiek@op.pl");
- obiekt2->setemail(klasa, 0);
- strcpy(klasa, "wolny@gamil.com");
- obiekt2->setemail(klasa, 1);
- obiekt2->setID(3);
- wsk->nast = obiekt2;
- wsk = wsk->nast;
- wsk->nast = NULL;
- MojaKlasa *obiekt3 = new MojaKlasa(2);
- strcpy(klasa, "androl@op.pl");
- obiekt3->setemail(klasa, 0);
- strcpy(klasa, "michal@gamil.com");
- obiekt3->setemail(klasa, 1);
- obiekt3->setID(4);
- wsk->nast = obiekt3;
- wsk = wsk->nast;
- wsk->nast = NULL;
- MojaKlasa *obiekt4 = new MojaKlasa(2);
- strcpy(klasa, "elo_wojetek@op.pl");
- obiekt4->setemail(klasa, 0);
- strcpy(klasa, "zamykam@gamil.com");
- obiekt4->setemail(klasa, 1);
- obiekt4->setID(5);
- wsk->nast = obiekt4;
- wsk = wsk->nast;
- wsk->nast = NULL;
- }
- void Wykladowca::wypisz()
- {
- wsk = glowa;
- while (wsk != NULL)
- {
- cout << "ID: " << wsk->getID() << endl;
- for (int i = 0; i < 2; i++)
- {
- cout << wsk->getEmail(i) << endl;
- }
- wsk = wsk->nast;
- cout << endl;
- }
- }
- int Wykladowca::szukaj(int szukana)
- {
- wsk = glowa;
- if (wsk->getID() == szukana)
- return wsk->getID();
- else
- if (wsk->nast != NULL)
- return wsk->szukaj(szukana);
- else
- return NULL;
- }
- void Wykladowca::wypisz_element(int ktory)
- {
- wsk = glowa;
- while (wsk != NULL)
- {
- if (wsk->getID() == ktory)
- {
- for (int i = 0; i < wsk->getIle(); i++)
- {
- cout << wsk->getEmail(i) << endl;
- }
- wsk = wsk->nast;
- }
- else
- {
- wsk = wsk->nast;
- }
- }
- }
- int main()
- {
- char nazwa_pliku[20] = "test.txt";
- Wykladowca *wyk1 = new Wykladowca();
- Wykladowca *wyk2 = new Wykladowca(nazwa_pliku);
- Wykladowca *wyk3 = new Wykladowca(*wyk2);
- int pom, id;
- wyk2->dodaj_klase();
- wyk2->wypisz();
- cout << "Podaj ID grupy\n";
- cin >> id;
- pom = wyk2->szukaj(id);
- if (pom != NULL)
- {
- cout << "\nSzukana grupa:\n";
- cout << "Dla ID: " << id << endl;
- wyk2->wypisz_element(pom);
- }
- else
- {
- cout << "Brak takiej grupy o podanym ID\n";
- }
- delete wyk1, wyk2, wyk3;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement