Advertisement
MissFrosi

Web_Razliki_Domasno

Mar 29th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cstdio>
  4. using namespace std;
  5. class WebPage
  6. {
  7. private:
  8. char url[100];
  9. char *sodrzina;
  10. public:
  11. WebPage(char *url="", char *sodrzina="")
  12. {
  13. strcpy(this->url, url);
  14. this-> sodrzina = new char[strlen(sodrzina)+1];
  15. strcpy(this->sodrzina, sodrzina);
  16. }
  17. WebPage(const WebPage &wp)
  18. {
  19. strcpy(this->url, wp.url);
  20. this-> sodrzina = new char[strlen(wp.sodrzina)+1]; // imam delete[] this->sodrzina pred ovoj red
  21. strcpy(this->sodrzina, wp.sodrzina);
  22. }
  23. char *getUrl()
  24. {
  25. return this->url;
  26. }
  27. char *getSodrzina()
  28. {
  29. return this->sodrzina;
  30. }
  31. void setUrl(char *url)
  32. {
  33. strcpy(this->url, url);
  34. }
  35. void setSodrzina(char *sodrzina)
  36. {
  37. this->sodrzina = new char[strlen(sodrzina)+1]; // imam delete[] this->sodrzina pred ovoj red
  38. strcpy(this->sodrzina,sodrzina);
  39. }
  40. bool proverka(WebPage wp)
  41. {
  42. if(strcmp(this->url,wp.url)==0 && strcmp(this->sodrzina,wp.sodrzina)==0)
  43. return true;
  44. return false;
  45. }
  46. void pecati()
  47. {
  48. cout << "URL: " << this->url << endl;
  49. cout << "SODRZINA: " << this->sodrzina << endl;
  50. }
  51. };
  52. class WebServer
  53. {
  54. private:
  55. char ime[30];
  56. WebPage *wps;
  57. int count;
  58. public:
  59. WebServer(char *ime="", WebPage *wps=0, int count=0)
  60. {
  61. strcpy(this->ime, ime);
  62. this->wps = new WebPage[count];
  63. for(int i=0; i<count; i++)
  64. {
  65. this->wps[i] = WebPage(wps[i]);
  66. }
  67. this->count = count;// ova dodeluvanje go pravam posle strcpy
  68. }
  69. WebServer(const WebServer &ws)
  70. {
  71. strcpy(this->ime, ws.ime);
  72. this->wps = new WebPage[ws.count];
  73. for(int i=0; i<count; i++)
  74. {
  75. this->wps[i] = WebPage(ws.wps[i]);
  76. }
  77. this->count = ws.count; // ova dodeluvanje go pravam posle strcpy
  78. }
  79. void dodadi(WebPage wp)
  80. {
  81. WebPage *tmp;
  82. tmp = new WebPage[this->count];
  83. for(int i=0; i<this->count; i++)
  84. {
  85. tmp[i] = WebPage(this->wps[i]);
  86. }
  87. delete [] this->wps;
  88. this->wps = new WebPage[this->count + 1];
  89. for(int i=0; i<this->count; i++)
  90. {
  91. this->wps[i] = WebPage(tmp[i]);
  92. }
  93. this->wps[count] = WebPage(wp);
  94. count++;
  95. delete [] tmp;
  96. }
  97. void izbrisi(WebPage wp)
  98. {
  99. WebPage *tmp;
  100. tmp = new WebPage[this->count-1];
  101. int j=0;
  102. for(int i=0; i<this->count; i++)
  103. {
  104. if(this->wps[i].proverka(wp))
  105. continue;
  106. tmp[j] = WebPage(this->wps[i]);
  107. j++;
  108. }
  109. delete [] this->wps;
  110. this->wps = new WebPage[this->count - 1];
  111. for(int i=0; i< count-1; i++)
  112. {
  113. this->wps[i] = WebPage(tmp[i]);
  114. }
  115. count--;
  116. delete [] tmp;
  117. }
  118. void pecati()
  119. {
  120. for(int i=0; i<this->count; i++)
  121. this->wps[i].pecati();
  122. }
  123. void pecatiStraniciSoUrlNad(int threshold)
  124. {
  125. for(int i=0; i<this->count; i++)
  126. if(strlen(this->wps[i].getUrl())>threshold)
  127. this->wps[i].pecati();
  128. }
  129. };
  130. int main()
  131. {
  132. int n;
  133. char url[100], sodrzina[100], ime[100];
  134. cout << "Vnesete broj na WebStranici vo serverot: ";
  135. cin >> n;
  136. WebPage stranici[n];
  137. for(int i=0; i<n; i++)
  138. {
  139. cout << endl << "Vnesete URL za " << i << "-ta stranica: ";
  140. cin >> url;
  141. cout << endl << "Vnesete SODRZINA za " << i << "-ta stranica: ";
  142. cin >> sodrzina;
  143. stranici[i] = WebPage(url,sodrzina);
  144. }
  145. cout << endl << "Vnesete ime za WebServerot: ";
  146. cin >> ime;
  147. WebServer ws(ime, stranici, n);
  148. ws.pecati(); // opciite si gi povikuvam sekoja posebno i pecatam posle dodadi i izbrisi
  149. int opc;
  150. while(1)
  151. {
  152. cout << endl << "Izberi opcija(1 - dodadi web strana, 2 - izbrisi web strana, 3 - ispecati stranici, 4 - ispecati stranici so Url nad, 5 - prekin): ";
  153. cin >> opc;
  154. if(opc==1)
  155. {
  156. cout << endl << "Vnesi URL za stranicata sto sakas da ja dodades: ";
  157. cin >> url;
  158. cout << endl << "Vnesi SODRZINA za stranicata sto sakas da ja dodades: ";
  159. cin >> sodrzina;
  160. WebPage stranicaZaDodavanje(url,sodrzina);
  161. ws.dodadi(stranicaZaDodavanje);
  162. }
  163. else if(opc==2)
  164. {
  165. cout << endl << "Vnesi URL za stranicata sto sakas da ja izbrises: ";
  166. cin >> url;
  167. cout << endl << "Vnesi SODRZINA za stranicata sto sakas da ja izbrises: ";
  168. cin >> sodrzina;
  169. WebPage stranicaZaBrisenje(url,sodrzina);
  170. ws.izbrisi(stranicaZaBrisenje);
  171. }
  172. else if(opc==3)
  173. {
  174. ws.pecati();
  175. }
  176. else if(opc==4)
  177. {
  178. int threshold;
  179. cout << endl << "Vnesete threshold: ";
  180. cin >> threshold;
  181. ws.pecatiStraniciSoUrlNad(threshold);
  182. }
  183. else if(opc==5)
  184. {
  185. break;
  186. }
  187. }
  188. return 0;
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement