Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. using namespace std;
  5.  
  6. class WebPage
  7. {
  8. private:
  9. char url[100];
  10. char *sodrzina;//dinamicki alocirana
  11. public:
  12. WebPage(char *url="",char *sodrzina="")
  13. {
  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];
  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->sodrzina,sodrzina);
  34. }
  35. void setSodrzina(char *sodrzina)
  36. {
  37. delete [] this->sodrzina;
  38. this->sodrzina=new char[strlen(sodrzina)+1];
  39. strcpy(this->sodrzina,sodrzina);
  40. }
  41.  
  42. void pecati()
  43. {
  44. cout <<"Url: " << this->url << endl;
  45. cout <<"Sodrzina: " << this->sodrzina << endl;
  46. }
  47. bool proverka(WebPage wp)
  48. {
  49. if(strcmp(this->url,wp.url)==0 && strcmp(this->sodrzina,wp.sodrzina)==0)
  50. return true;
  51.  
  52. return false;
  53. }
  54. // WebPage &operator = (WebPage &wp)
  55. //{
  56. //if(this=!wp)
  57. //{
  58. //strcpy(this->url,wp.url);
  59. //delete[] this->sodrzina;
  60. //this->sodrzina=new char sodrzina[strlen(wp.sodrzina)+1];
  61. //strcpy(this->sodrzina,sodrzina);
  62. //}
  63. //return *this;
  64. //}
  65.  
  66. ~WebPage()
  67. {
  68. delete[] this->sodrzina;
  69. }
  70. };
  71.  
  72. class WebServer
  73. {
  74. private:
  75. char ime[30];
  76. WebPage *wps;//dinamicki alocirano pole od klasata WebPage
  77. int n;
  78. public:
  79. WebServer(char *ime="",WebPage *wps=0,int n=0)
  80. {
  81. strcpy(this->ime,ime);
  82. this->wps=new WebPage[n];
  83. for(int i=0; i<n; i++)
  84. {
  85. this->wps[i]=WebPage(wps[i]);
  86. }
  87. this->n=n;
  88. }
  89. WebServer(const WebServer &ws)
  90. {
  91. strcpy(this->ime,ws.ime);
  92. this->wps=new WebPage[ws.n];
  93. for(int i=0; i<ws.n; i++)
  94. {
  95. this->wps[i]=WebPage(ws.wps[i]);
  96. }
  97. this->n=ws.n;
  98. }
  99.  
  100. char *getIme()
  101. {
  102. return this->ime;
  103. }
  104. WebPage *getWps()
  105. {
  106. return this->wps;
  107. }
  108. int getN()
  109. {
  110. return this->n;
  111. }
  112. void setIme(char *ime)
  113. {
  114. strcpy(this->ime,ime);
  115. }
  116. void setWps(WebPage *wps,int n)
  117. {
  118. delete [] this->wps;
  119. this->wps=new WebPage[n];
  120. for(int i=0; i<n; i++)
  121. {
  122. this->wps[i].setUrl(wps[i].getUrl());
  123. this->wps[i].setSodrzina(wps[i].getSodrzina());
  124. }
  125. }
  126. void setN(int n)
  127. {
  128. this->n=n;
  129. }
  130.  
  131. void dodadi(WebPage wp)
  132. {
  133. WebPage *temp;
  134. temp = new WebPage[this->n];
  135. for(int i=0;i<this->n;i++)
  136. {
  137. temp[i] = WebPage(this->wps[i]);
  138. }
  139.  
  140. delete [] this->wps;
  141.  
  142. this->wps = new WebPage[this->n + 1];
  143. for(int i=0;i<this->n;i++)
  144. {
  145. this->wps[i] = WebPage(temp[i]);
  146. }
  147. this->wps[n] = WebPage(wp);
  148. n++;
  149. delete [] temp;
  150. }
  151.  
  152. void izbrisi(WebPage wp)
  153. {
  154. WebPage *temp;
  155. temp = new WebPage[this->n-1];
  156. int j=0;
  157. for(int i=0;i<this->n;i++)
  158. {
  159. if(this->wps[i].proverka(wp))
  160. continue;
  161. temp[j] = WebPage(this->wps[i]);
  162. j++;
  163. }
  164.  
  165. delete [] this->wps;
  166.  
  167. this->wps = new WebPage[this->n - 1];
  168. for(int i=0;i< n-1;i++)
  169. {
  170. this->wps[i] = WebPage(temp[i]);
  171. }
  172. n--;
  173. delete [] temp;
  174. }
  175. void pecati()
  176. {
  177. for(int i=0;i<this->n;i++)
  178. this->wps[i].pecati();
  179. }
  180.  
  181. void pecatiStraniciSoUrlNad(int threshold)
  182. {
  183. for(int i=0;i<this->n;i++)
  184. if(strlen(this->wps[i].getUrl())>threshold)
  185. this->wps[i].pecati();
  186. }
  187.  
  188. ~WebServer()
  189. {
  190. delete[] this->wps;
  191. }
  192. };
  193.  
  194. int main()
  195. {
  196. int n;
  197. char url[100], sodrzina[100], ime[100];
  198.  
  199. cout << "Vnesete broj na WebStranici vo serverot: ";
  200. cin >> n;
  201. WebPage stranici[n];
  202.  
  203. for(int i=0;i<n;i++)
  204. {
  205. cout << endl << "Vnesete URL za " << i << "-ta stranica: ";
  206. cin >> url;
  207. cout << endl << "Vnesete SODRZINA za " << i << "-ta stranica: ";
  208. cin >> sodrzina;
  209. stranici[i] = WebPage(url,sodrzina);
  210. }
  211.  
  212. cout << endl << "Vnesete ime za WebServerot: ";
  213. cin >> ime;
  214.  
  215. WebServer ws(ime, stranici, n);
  216. //ws.pecati();
  217.  
  218. int opc;
  219. while(1)
  220. {
  221. cout << endl << "Izberi opcija(1 - dodadi web strana, 2 - izbrisi web strana, 3 - ispecati stranici, 4 - ispecati stranici so Url nad, 5 - prekin): ";
  222. cin >> opc;
  223.  
  224. if(opc==1)
  225. {
  226. cout << endl << "Vnesi URL za stranicata sto sakas da ja dodades: ";
  227. cin >> url;
  228. cout << endl << "Vnesi SODRZINA za stranicata sto sakas da ja dodades: ";
  229. cin >> sodrzina;
  230. WebPage stranicaZaDodavanje(url,sodrzina);
  231. ws.dodadi(stranicaZaDodavanje);
  232. }else
  233. if(opc==2)
  234. {
  235. cout << endl << "Vnesi URL za stranicata sto sakas da ja izbrises: ";
  236. cin >> url;
  237. cout << endl << "Vnesi SODRZINA za stranicata sto sakas da ja izbrises: ";
  238. cin >> sodrzina;
  239. WebPage stranicaZaBrisenje(url,sodrzina);
  240. ws.izbrisi(stranicaZaBrisenje);
  241. }else
  242. if(opc==3)
  243. {
  244. ws.pecati();
  245. }else
  246. if(opc==4)
  247. {
  248. int threshold;
  249. cout << endl << "Vnesete threshold: ";
  250. cin >> threshold;
  251. ws.pecatiStraniciSoUrlNad(threshold);
  252. }else
  253. if(opc==5)
  254. {
  255. break;
  256. }
  257. }
  258. return 0;
  259. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement