Guest User

Untitled

a guest
May 27th, 2018
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. #if !defined( _RIESENIE_H_ )
  7. #define _RIESENIE_H_
  8.  
  9. #include <fstream>
  10. #include <sstream>
  11. #include <vector>
  12. #include <set>
  13. #include <map>
  14.  
  15. using namespace std;
  16.  
  17. bool DUMMY_BOOL = true;
  18. int DUMMY_INT = 0;
  19. string DUMMY_STRING = "";
  20.  
  21. //1.uloha
  22. class SLOVNIK{
  23. map<string, string> slova; // slovenske slovo,preklad
  24.  
  25.  
  26. public:
  27. int pocetSlov();
  28. bool vlozSlovoPlusPreklady(const string &vstup);
  29. bool pridajSlovo(const string &slovo, const string &preklad);
  30. bool skontrolujPreklad(const string &slovo, const string &preklad);
  31. int pocetPrekladov(const string &slovo);
  32. //2.uloha
  33. bool nacitajZoSuboru(const string &menoSuboru);
  34. //3.uloha
  35. void vytvorOpacnySlovnik(const SLOVNIK &slovnik);
  36. //4.uloha
  37. const string usporiadanyZoznamPrekladov(const string &slovo);
  38. const string usporiadanyZoznamSlov();
  39. //5.uloha
  40. void nacitajDvaSlovniky(const SLOVNIK &s1, const SLOVNIK &s2);
  41. };
  42.  
  43.  
  44. string zamenCharaktery(const string &vstup, const char co, const char za){
  45.  
  46. string vystup = "";
  47. for (int i=0;i<vstup.length();i++)
  48. {
  49. vystup += (vstup[i] == co) ? za : vstup[i];
  50. }
  51.  
  52. return vystup;
  53.  
  54. }
  55. unsigned int spocitajVyskytCharakteru(const string &vstup, const char co){
  56. int pocet = 0;
  57. for (int i=0;i<vstup.length();i++)
  58. {
  59. if (vstup[i]== co)
  60. {
  61. pocet++;
  62. }
  63. }
  64.  
  65. return pocet;
  66. }
  67. //1.uloha
  68. int SLOVNIK::pocetSlov(){
  69. map<string,string>::iterator it;
  70. int pocet=0;
  71. for (it = slova.begin(); it != slova.end(); it++)
  72.  
  73. {
  74. pocet++;
  75.  
  76.  
  77.  
  78.  
  79.  
  80. }
  81. return pocet;
  82. }
  83.  
  84.  
  85. bool SLOVNIK::vlozSlovoPlusPreklady(const string &vstup0){
  86. string skslovo,preklady;
  87. size_t found,pos;
  88.  
  89. found=vstup0.find("=");
  90. if (found!=string::npos and found<(vstup0.length()-1))
  91. {
  92. skslovo=vstup0.substr(0,found);
  93. preklady=vstup0.substr(found+1);
  94. preklady=zamenCharaktery(preklady,' ','_');
  95. preklady=zamenCharaktery(preklady,',',' ');
  96.  
  97. //cout << skslovo << " " <<preklady <<endl;
  98. istringstream ist(preklady);
  99. string buf;
  100. while (ist >> buf)
  101. {
  102. pridajSlovo(skslovo,zamenCharaktery(buf,'_',' '));
  103. }
  104. return true;
  105. }
  106. return false;
  107. }
  108.  
  109. bool SLOVNIK::pridajSlovo(const string &slovo, const string &preklad){
  110. if (slovo == "" or preklad == "")
  111. {
  112. return false;
  113. }
  114. if (skontrolujPreklad(slovo,preklad))
  115. {
  116. return false;
  117. }
  118.  
  119.  
  120. map<string, string>::iterator it;
  121. it=slova.find(slovo);
  122.  
  123. if(it == slova.end() )
  124. {
  125. slova.insert(pair<string,string>(slovo, preklad));
  126. return true;
  127. }else
  128. {
  129. it->second = it->second +','+preklad;
  130. return true;
  131. }
  132.  
  133.  
  134.  
  135. }
  136.  
  137. bool SLOVNIK::skontrolujPreklad(const string &slovo, const string &preklad){
  138. if (preklad == "" ){
  139. return false;
  140. }
  141. map<string, string>::iterator it;
  142. it=slova.find(slovo);
  143.  
  144. if(it == slova.end() )
  145. {
  146. return false;
  147. }else
  148. {
  149.  
  150. size_t found;
  151. found=it->second.find(preklad);
  152. if (found!=string::npos)
  153. {
  154.  
  155. return true;
  156. }else
  157. {
  158. return false;
  159.  
  160. }
  161.  
  162. }
  163.  
  164.  
  165. }
  166. int SLOVNIK::pocetPrekladov(const string &slovo) {
  167. return DUMMY_INT;
  168. }
  169.  
  170. const string SLOVNIK::usporiadanyZoznamPrekladov(const string &slovo){
  171. return DUMMY_STRING;
  172. }
  173.  
  174. bool SLOVNIK::nacitajZoSuboru(const string &menoSuboru){
  175. return DUMMY_BOOL;
  176. }
  177.  
  178. void SLOVNIK::vytvorOpacnySlovnik(const SLOVNIK &s){
  179. }
  180.  
  181. const string SLOVNIK::usporiadanyZoznamSlov(){
  182. return DUMMY_STRING;
  183. }
  184.  
  185. void SLOVNIK::nacitajDvaSlovniky(const SLOVNIK &s1, const SLOVNIK &s2){
  186. }
  187.  
  188. #endif
Add Comment
Please, Sign In to add comment