Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.77 KB | None | 0 0
  1. Napis========================================
  2. #pragma once
  3. #include <iostream>
  4. #include <string.h>
  5. using namespace std;
  6.  
  7. class Napis
  8. {
  9. private:
  10. char m_pszNapis[40];
  11. public:
  12. Napis();
  13. ~Napis();
  14. const char* Zwroc() const;
  15. void Ustaw(const char* nowy_napis);
  16. void Wypisz() const;
  17. void Wpisz();
  18. int SprawdzNapis(const char* por_napis) const;
  19. };
  20.  
  21. #include "Napis.h"
  22.  
  23.  
  24.  
  25. Napis::Napis()
  26. {
  27. }
  28.  
  29.  
  30. Napis::~Napis()
  31. {
  32. }
  33.  
  34.  
  35. const char* Napis::Zwroc() const
  36. {
  37. return m_pszNapis;
  38. }
  39.  
  40.  
  41. void Napis::Ustaw(const char* nowy_napis)
  42. {
  43. strcpy_s(m_pszNapis, nowy_napis);
  44. }
  45.  
  46. void Napis::Wypisz() const
  47. {
  48. cout << m_pszNapis << endl;
  49. }
  50.  
  51. void Napis::Wpisz()
  52. {
  53. char napis[40];
  54. cout << "Tekst: " << endl;
  55. cin >> napis;
  56. Ustaw(napis);
  57. }
  58.  
  59. int Napis::SprawdzNapis(const char* por_napis) const
  60. {
  61. return strcmp(m_pszNapis, por_napis);
  62. }
  63.  
  64.  
  65. =================== Data
  66. #pragma once
  67. #include <iostream>
  68. using namespace std;
  69.  
  70. class Data
  71. {
  72. private:
  73. int m_nDzien;
  74. int m_nMiesiac;
  75. int m_nRok;
  76. public:
  77. Data();
  78. ~Data();
  79. void Ustaw(int d, int m, int r);
  80. int Dzien() const;
  81. int Miesiac() const;
  82. int Rok() const;
  83. void Wypisz() const;
  84. void Wpisz();
  85. int Porownaj(const Data & wzor) const;
  86. private:
  87. void Koryguj();
  88. };
  89.  
  90. #include "Data.h"
  91.  
  92.  
  93.  
  94.  
  95. Data::Data()
  96. {
  97. m_nDzien = 1;
  98. m_nMiesiac = 1;
  99. m_nRok = 2000;
  100. }
  101.  
  102.  
  103. Data::~Data()
  104. {
  105. }
  106.  
  107. void Data::Ustaw(int d, int m, int r)
  108. {
  109. m_nDzien = d;
  110. m_nMiesiac = m;
  111. m_nRok = r;
  112. Koryguj();
  113. }
  114.  
  115.  
  116. int Data::Dzien() const
  117. {
  118. return this->m_nDzien;
  119. }
  120.  
  121. int Data::Miesiac() const
  122. {
  123. return this->m_nMiesiac;
  124. }
  125.  
  126. int Data::Rok() const
  127. {
  128. return this->m_nRok;
  129. }
  130.  
  131. void Data::Wypisz() const
  132. {
  133. cout << Dzien() << "-" << Miesiac() << "-" << Rok() << endl;
  134. }
  135.  
  136. void Data::Wpisz()
  137. {
  138. cout << "Podaj date: \nDzien: ";
  139. cin >> m_nDzien;
  140. cout << "Miesiac: ";
  141. cin >> m_nMiesiac;
  142. cout << "Rok: ";
  143. cin >> m_nRok;
  144. Koryguj();
  145. }
  146.  
  147. void Data::Koryguj()
  148. {
  149. if (m_nDzien < 1)
  150. m_nDzien = 1;
  151. if (m_nDzien > 29 && m_nMiesiac == 2 && (m_nRok % 4 == 0 && m_nRok % 100 != 0 || m_nRok % 400 == 0))
  152. m_nDzien = 28;
  153. else if (m_nDzien>30)
  154. m_nDzien = 29;
  155. if (m_nMiesiac < 1)
  156. m_nMiesiac = 1;
  157. if (m_nMiesiac > 12)
  158. m_nMiesiac = 12;
  159. if (m_nDzien > 31 && (m_nMiesiac == 1 || m_nMiesiac == 3 || m_nMiesiac == 5 || m_nMiesiac == 6 || m_nMiesiac == 7 || m_nMiesiac == 9 || m_nMiesiac == 11))
  160. m_nDzien = 31;
  161. else if (m_nDzien>30)
  162. m_nDzien = 30;
  163. }
  164.  
  165. int Data::Porownaj(const Data & wzor) const
  166. {
  167. if (wzor.m_nRok > m_nRok)
  168. return 1;
  169. else if (wzor.m_nRok < m_nRok)
  170. return -1;
  171. else if (wzor.m_nMiesiac > m_nMiesiac)
  172. return 1;
  173. else if (wzor.m_nMiesiac < m_nMiesiac)
  174. return -1;
  175. else if (wzor.m_nDzien > m_nDzien)
  176. return 1;
  177. else if (wzor.m_nDzien < m_nDzien)
  178. return -1;
  179. else
  180. return 0;
  181. }
  182.  
  183. ==========================Pracownik
  184. #pragma once
  185. #include "Napis.h"
  186. #include "Data.h"
  187. using namespace std;
  188.  
  189. class Pracownik
  190. {
  191. private:
  192. Napis m_Imie;
  193. Napis m_Nazwisko;
  194. Data m_DataUrodzenia;
  195. public:
  196. Pracownik();
  197. ~Pracownik();
  198. const char* Imie() const;
  199. const char* Nazwisko() const;
  200. void Imie(const char* nowe_imie);
  201. void Nazwisko(const char* nowe_nazwisko);
  202. void DataUrodzenia(int nowy_dzien, int nowy_miesiac, int nowy_rok);
  203. void Wypisz() const;
  204. void Wpisz();
  205. int SprawdzImie(const char* por_imie) const;
  206. int SprawdzNazwisko(const char* por_nazwisko) const;
  207. Pracownik* m_pNastepny;
  208. int Porownaj(const Pracownik& wzorzec) const;
  209. };
  210.  
  211.  
  212. #include "Pracownik.h"
  213.  
  214.  
  215.  
  216. Pracownik::Pracownik()
  217. {
  218. }
  219.  
  220.  
  221. Pracownik::~Pracownik()
  222. {
  223. }
  224.  
  225. const char* Pracownik::Imie() const
  226. {
  227. return this->m_Imie.Zwroc();
  228. }
  229.  
  230. const char* Pracownik::Nazwisko() const
  231. {
  232. return this->m_Nazwisko.Zwroc();
  233. }
  234.  
  235. void Pracownik::Imie(const char* nowe_imie)
  236. {
  237. this->m_Imie.Ustaw(nowe_imie);
  238. }
  239.  
  240. void Pracownik::Nazwisko(const char* nowe_nazwisko)
  241. {
  242. this->m_Nazwisko.Ustaw(nowe_nazwisko);
  243. }
  244.  
  245. void Pracownik::DataUrodzenia(int nowy_dzien, int nowy_miesiac, int nowy_rok)
  246. {
  247. this->m_DataUrodzenia.Ustaw(nowy_dzien, nowy_miesiac, nowy_rok);
  248. }
  249.  
  250. void Pracownik::Wypisz() const
  251. {
  252. this->m_Imie.Wypisz();
  253. this->m_Nazwisko.Wypisz();
  254. this->m_DataUrodzenia.Wypisz();
  255. }
  256.  
  257. void Pracownik::Wpisz()
  258. {
  259. cout << endl << "Dane pracownika:" << endl;
  260. this->m_Imie.Wpisz();
  261. this->m_Nazwisko.Wpisz();
  262. this->m_DataUrodzenia.Wpisz();
  263. }
  264.  
  265. int Pracownik::SprawdzImie(const char* por_imie) const
  266. {
  267. return this->m_Imie.SprawdzNapis(por_imie);
  268. }
  269.  
  270. int Pracownik::SprawdzNazwisko(const char* por_nazwisko) const
  271. {
  272. return this->m_Nazwisko.SprawdzNapis(por_nazwisko);
  273. }
  274.  
  275. int Pracownik::Porownaj(const Pracownik& wzorzec) const
  276. {
  277. if (SprawdzImie(wzorzec.Imie()) == 0 && SprawdzNazwisko(wzorzec.Nazwisko()) == 0 && m_DataUrodzenia.Porownaj(wzorzec.m_DataUrodzenia) == 0)
  278. return 0;
  279. else if (SprawdzNazwisko(wzorzec.Nazwisko()) > 0)
  280. return 1;
  281. else if (SprawdzNazwisko(wzorzec.Nazwisko()) < 0)
  282. return -1;
  283. else if (SprawdzImie(wzorzec.Imie()) > 0)
  284. return 1;
  285. else if (SprawdzImie(wzorzec.Imie()) < 0)
  286. return -1;
  287. else if (m_DataUrodzenia.Porownaj(wzorzec.m_DataUrodzenia) > 0)
  288. return 1;
  289. else if (m_DataUrodzenia.Porownaj(wzorzec.m_DataUrodzenia) < 0)
  290. return -1;
  291. }
  292.  
  293. ================Lista
  294. #pragma once
  295. #include "Pracownik.h"
  296.  
  297. class ListaPracownikow
  298. {
  299. Pracownik* m_pPoczatek;
  300. int m_nLiczbaPracownikow;
  301. public:
  302. ListaPracownikow();
  303. ~ListaPracownikow();
  304. void Dodaj(const Pracownik& p);
  305. void Usun(const Pracownik &wzorzec);
  306. void WypiszPracownikow() const;
  307. const Pracownik* Szukaj(const char* nazwisko, const char* imie) const;
  308. };
  309.  
  310.  
  311. #include "ListaPracownikow.h"
  312.  
  313.  
  314.  
  315. ListaPracownikow::ListaPracownikow()
  316. {
  317. m_pPoczatek = NULL;
  318. m_nLiczbaPracownikow = 0;
  319. }
  320.  
  321.  
  322. ListaPracownikow::~ListaPracownikow()
  323. {
  324. }
  325.  
  326. void ListaPracownikow::Dodaj(const Pracownik &p)
  327. {
  328. Pracownik *nowy = new Pracownik(p);
  329. if (m_nLiczbaPracownikow == 0)
  330. {
  331. m_pPoczatek = nowy;
  332. m_nLiczbaPracownikow++;
  333. }
  334. else
  335. {
  336. Pracownik *tmp1 = m_pPoczatek;
  337. for (int i = 0; i < m_nLiczbaPracownikow; i++)
  338. {
  339. if (tmp1->Porownaj(*nowy) == -1)
  340. {
  341.  
  342. if (tmp1->m_pNastepny)
  343. tmp1 = tmp1->m_pNastepny;
  344. else
  345. {
  346. tmp1->m_pNastepny = nowy;
  347. m_nLiczbaPracownikow++;
  348. break;
  349. }
  350.  
  351. }
  352. else if (tmp1->Porownaj(*nowy) == 1)
  353. {
  354. Pracownik *tmp2 = m_pPoczatek;
  355. if (tmp1 == tmp2)
  356. {
  357. if (!m_pPoczatek->m_pNastepny)
  358. tmp2->m_pNastepny = NULL;
  359. m_pPoczatek = nowy;
  360. nowy->m_pNastepny = tmp1;
  361. m_nLiczbaPracownikow++;
  362. }
  363. else
  364. {
  365. while (tmp2->m_pNastepny != tmp1)
  366. tmp2 = tmp2->m_pNastepny;
  367. nowy->m_pNastepny = tmp1;
  368. tmp2->m_pNastepny = nowy;
  369. m_nLiczbaPracownikow++;
  370. break;
  371. }
  372. break;
  373. }
  374. else
  375. break;
  376. }
  377. }
  378. }
  379.  
  380. void ListaPracownikow::Usun(const Pracownik &wzorzec)
  381. {
  382. Pracownik* tmp = m_pPoczatek;
  383. Pracownik* p = new Pracownik(wzorzec);
  384. if (!tmp->Porownaj(*p))
  385. {
  386. m_pPoczatek = tmp->m_pNastepny;
  387. delete tmp;
  388. m_nLiczbaPracownikow--;
  389. }
  390. else {
  391. while (tmp->m_pNastepny->Porownaj(*p))
  392. {
  393. tmp = tmp->m_pNastepny;
  394. }
  395. Pracownik* usuwany = tmp->m_pNastepny;
  396. tmp->m_pNastepny = tmp->m_pNastepny->m_pNastepny;
  397. delete usuwany;
  398. m_nLiczbaPracownikow--;
  399. }
  400. }
  401.  
  402. void ListaPracownikow::WypiszPracownikow() const
  403. {
  404. cout << "\n=== Pracownicy: ===\n";
  405. Pracownik *tmp = m_pPoczatek;
  406. for (int i = 0; i < m_nLiczbaPracownikow; i++)
  407. {
  408. tmp->Wypisz();
  409. tmp = tmp->m_pNastepny;
  410. }
  411. }
  412.  
  413. const Pracownik* ListaPracownikow::Szukaj(const char* nazwisko, const char* imie) const
  414. {
  415. Pracownik* tmp = m_pPoczatek;
  416. for (int i = 0; i < m_nLiczbaPracownikow; i++)
  417. {
  418. if (tmp->SprawdzNazwisko(nazwisko) == 0 && tmp->SprawdzImie(imie) == 0)
  419. {
  420. return tmp;
  421. break;
  422. }
  423. tmp = tmp->m_pNastepny;
  424. }
  425. return nullptr;
  426. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement