Advertisement
pieniakoskar

Słownik

Mar 19th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <vector>
  5. #include <string>
  6.  
  7. using namespace std;
  8.  
  9. class CWyrazy
  10. {
  11. public:
  12. char* zrodlo;
  13. char* tlumacz;
  14. public:
  15. CWyrazy(const CWyrazy& w)
  16. {
  17. //zrodlo=strdup(w.zrodlo);
  18. //tlumacz=strdup(w.tlumacz);
  19. zrodlo=new char[strlen(w.zrodlo)+1];
  20. tlumacz=new char[strlen(w.tlumacz)+1];
  21. strcpy(zrodlo, w.zrodlo);
  22. strcpy(tlumacz, w.tlumacz);
  23. }
  24. CWyrazy(char* Zrodlo, char* Tlumacz)
  25. {
  26. zrodlo=new char[strlen(Zrodlo)+1];
  27. strcpy(zrodlo, Zrodlo);
  28. tlumacz=new char[strlen(Tlumacz)+1];
  29. strcpy(tlumacz, Tlumacz);
  30. }
  31. ~CWyrazy()
  32. {
  33. delete[] zrodlo;
  34. delete[] tlumacz;
  35. }
  36. char* getZrodlo()
  37. {
  38. return zrodlo;
  39. }
  40. char* getTlumacz()
  41. {
  42. return tlumacz;
  43. }
  44. };
  45.  
  46. class CSlownik
  47. {
  48. char* zrodlo;
  49. char* docelowy;
  50. public:
  51. vector <CWyrazy> wyrazy;
  52. public:
  53. CSlownik(char* Zrodlo, char* Docelowy)
  54. {
  55. zrodlo=new char[strlen(Zrodlo)+1];
  56. strcpy(zrodlo, Zrodlo);
  57. docelowy=new char[strlen(Docelowy)+1];
  58. strcpy(docelowy, Docelowy);
  59. }
  60. virtual ~CSlownik()
  61. {
  62. delete[] zrodlo;
  63. delete[] docelowy;
  64. }
  65. void Wyswietl()
  66. {
  67. printf("%s -> %s\n", zrodlo, docelowy);
  68. }
  69. virtual void Przetlumacz(char* wyraz)=0;
  70. virtual void Dopisz(char* wyraz1, char* wyraz2)
  71. {
  72. CWyrazy tmp(wyraz1, wyraz2);
  73. wyrazy.push_back(tmp);
  74. }
  75. };
  76.  
  77. class CSlownikPolAngl:public CSlownik
  78. {
  79. public:
  80. CSlownikPolAngl(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
  81. void Przetlumacz(char* wyraz)
  82. {
  83. printf("\t");
  84. if(!strcmp(wyraz, "kot"))
  85. printf("a cat\n");
  86. else if(!strcmp(wyraz, "niespodzianka"))
  87. printf("a surprise\n");
  88. else if(!strcmp(wyraz, "prezent"))
  89. printf("a gift\n");
  90. else
  91. printf("Nie ma takiego wyrazu.");
  92. }
  93. };
  94. class CSlownikPolNiemiecki:public CSlownik
  95. {
  96. public:
  97. CSlownikPolNiemiecki(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
  98. void Przetlumacz(char* wyraz)
  99. {
  100. printf("\t");
  101. if(!strcmp(wyraz, "kot"))
  102. printf("die Katze\n");
  103. else if(!strcmp(wyraz, "niespodzianka"))
  104. printf("die Uebrraschung\n");
  105. else if(!strcmp(wyraz, "prezent"))
  106. printf("der Geschenk\n");
  107. else
  108. printf("Nie ma takiego wyrazu.");
  109. }
  110. };
  111. class CSlownikPolFr:public CSlownik
  112. {
  113. public:
  114. CSlownikPolFr(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
  115. void Przetlumacz(char* wyraz)
  116. {
  117. printf("\t");
  118. if(!strcmp(wyraz, "kot"))
  119. printf("le chat\n");
  120. else if(!strcmp(wyraz, "niespodzianka"))
  121. printf("la surprise\n");
  122. else if(!strcmp(wyraz, "prezent"))
  123. printf("le cadeau\n");
  124. else
  125. printf("Nie ma takiego wyrazu.");
  126. }
  127. };
  128.  
  129. class CSlownikPolX:public CSlownik
  130. {
  131. vector <CWyrazy> wyrazy;
  132. public:
  133. CSlownikPolX(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
  134. void Przetlumacz(char* wyraz)
  135. {
  136. for(int i=0; i<wyrazy.size(); ++i)
  137. {
  138. if(!strcmp(wyrazy[i].zrodlo, wyraz))
  139. {
  140. printf("%s\n", wyrazy[i].tlumacz);
  141. return;
  142. }
  143. }
  144. printf("Nie ma slowa w slowniku.");
  145. }
  146. void Dopisz(char* wyraz1, char* wyraz2)
  147. {
  148. CWyrazy tmp(wyraz1, wyraz2);
  149. wyrazy.push_back(tmp);
  150. }
  151. void Wczytaj()
  152. {
  153. FILE *slownik;
  154. slownik=fopen("nazwa", "r");
  155. fclose(slownik);
  156. }
  157. void Zapisz()
  158. {
  159. FILE *slownik;
  160. slownik=fopen("nazwa", "w+");
  161. for(int i=0; i<wyrazy.size(); ++i)
  162. {
  163. //fprintf(slownik, "%s %s\n", wyrazy[i].zrudlo, wyrazy[i].tlumacz);
  164. }
  165. fclose(slownik);
  166. }
  167. };
  168.  
  169. int main(int argc, char *argv[])
  170. {
  171. string s1="Text";
  172. cout<<s1<<endl;
  173. CSlownik *s[50];
  174. s[0]=new CSlownikPolAngl("Polski", "Angielski");
  175. s[1]=new CSlownikPolNiemiecki("Polski", "Niemiecki");
  176. s[2]=new CSlownikPolFr("Polski", "Fracnuski");
  177. s[3]=new CSlownikPolX("Polski", "x");
  178.  
  179. s[3]->Dopisz("slowo", "word");
  180. s[3]->Dopisz("slowo2", "word2");
  181.  
  182. s[3]->Przetlumacz("slowo");
  183.  
  184.  
  185. for(int i=0; i<4; ++i)
  186. {
  187. s[i]->Wyswietl();
  188. s[i]->Przetlumacz("kot");
  189. s[i]->Przetlumacz("niespodzianka");
  190. s[i]->Przetlumacz("prezent");
  191. }
  192.  
  193. for(int i=0; i<4; ++i)
  194. {
  195. delete s[i];
  196. }
  197. _getch();
  198. return EXIT_SUCCESS;
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement