Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cstdio>
- using namespace std;
- class WebPage
- {
- private:
- char url[100];
- char *sodrzina;
- public:
- WebPage(char *url="", char *sodrzina="")
- {
- strcpy(this->url, url);
- this-> sodrzina = new char[strlen(sodrzina)+1];
- strcpy(this->sodrzina, sodrzina);
- }
- WebPage(const WebPage &wp)
- {
- strcpy(this->url, wp.url);
- this-> sodrzina = new char[strlen(wp.sodrzina)+1]; // imam delete[] this->sodrzina pred ovoj red
- strcpy(this->sodrzina, wp.sodrzina);
- }
- char *getUrl()
- {
- return this->url;
- }
- char *getSodrzina()
- {
- return this->sodrzina;
- }
- void setUrl(char *url)
- {
- strcpy(this->url, url);
- }
- void setSodrzina(char *sodrzina)
- {
- this->sodrzina = new char[strlen(sodrzina)+1]; // imam delete[] this->sodrzina pred ovoj red
- strcpy(this->sodrzina,sodrzina);
- }
- bool proverka(WebPage wp)
- {
- if(strcmp(this->url,wp.url)==0 && strcmp(this->sodrzina,wp.sodrzina)==0)
- return true;
- return false;
- }
- void pecati()
- {
- cout << "URL: " << this->url << endl;
- cout << "SODRZINA: " << this->sodrzina << endl;
- }
- };
- class WebServer
- {
- private:
- char ime[30];
- WebPage *wps;
- int count;
- public:
- WebServer(char *ime="", WebPage *wps=0, int count=0)
- {
- strcpy(this->ime, ime);
- this->wps = new WebPage[count];
- for(int i=0; i<count; i++)
- {
- this->wps[i] = WebPage(wps[i]);
- }
- this->count = count;// ova dodeluvanje go pravam posle strcpy
- }
- WebServer(const WebServer &ws)
- {
- strcpy(this->ime, ws.ime);
- this->wps = new WebPage[ws.count];
- for(int i=0; i<count; i++)
- {
- this->wps[i] = WebPage(ws.wps[i]);
- }
- this->count = ws.count; // ova dodeluvanje go pravam posle strcpy
- }
- void dodadi(WebPage wp)
- {
- WebPage *tmp;
- tmp = new WebPage[this->count];
- for(int i=0; i<this->count; i++)
- {
- tmp[i] = WebPage(this->wps[i]);
- }
- delete [] this->wps;
- this->wps = new WebPage[this->count + 1];
- for(int i=0; i<this->count; i++)
- {
- this->wps[i] = WebPage(tmp[i]);
- }
- this->wps[count] = WebPage(wp);
- count++;
- delete [] tmp;
- }
- void izbrisi(WebPage wp)
- {
- WebPage *tmp;
- tmp = new WebPage[this->count-1];
- int j=0;
- for(int i=0; i<this->count; i++)
- {
- if(this->wps[i].proverka(wp))
- continue;
- tmp[j] = WebPage(this->wps[i]);
- j++;
- }
- delete [] this->wps;
- this->wps = new WebPage[this->count - 1];
- for(int i=0; i< count-1; i++)
- {
- this->wps[i] = WebPage(tmp[i]);
- }
- count--;
- delete [] tmp;
- }
- void pecati()
- {
- for(int i=0; i<this->count; i++)
- this->wps[i].pecati();
- }
- void pecatiStraniciSoUrlNad(int threshold)
- {
- for(int i=0; i<this->count; i++)
- if(strlen(this->wps[i].getUrl())>threshold)
- this->wps[i].pecati();
- }
- };
- int main()
- {
- int n;
- char url[100], sodrzina[100], ime[100];
- cout << "Vnesete broj na WebStranici vo serverot: ";
- cin >> n;
- WebPage stranici[n];
- for(int i=0; i<n; i++)
- {
- cout << endl << "Vnesete URL za " << i << "-ta stranica: ";
- cin >> url;
- cout << endl << "Vnesete SODRZINA za " << i << "-ta stranica: ";
- cin >> sodrzina;
- stranici[i] = WebPage(url,sodrzina);
- }
- cout << endl << "Vnesete ime za WebServerot: ";
- cin >> ime;
- WebServer ws(ime, stranici, n);
- ws.pecati(); // opciite si gi povikuvam sekoja posebno i pecatam posle dodadi i izbrisi
- int opc;
- while(1)
- {
- cout << endl << "Izberi opcija(1 - dodadi web strana, 2 - izbrisi web strana, 3 - ispecati stranici, 4 - ispecati stranici so Url nad, 5 - prekin): ";
- cin >> opc;
- if(opc==1)
- {
- cout << endl << "Vnesi URL za stranicata sto sakas da ja dodades: ";
- cin >> url;
- cout << endl << "Vnesi SODRZINA za stranicata sto sakas da ja dodades: ";
- cin >> sodrzina;
- WebPage stranicaZaDodavanje(url,sodrzina);
- ws.dodadi(stranicaZaDodavanje);
- }
- else if(opc==2)
- {
- cout << endl << "Vnesi URL za stranicata sto sakas da ja izbrises: ";
- cin >> url;
- cout << endl << "Vnesi SODRZINA za stranicata sto sakas da ja izbrises: ";
- cin >> sodrzina;
- WebPage stranicaZaBrisenje(url,sodrzina);
- ws.izbrisi(stranicaZaBrisenje);
- }
- else if(opc==3)
- {
- ws.pecati();
- }
- else if(opc==4)
- {
- int threshold;
- cout << endl << "Vnesete threshold: ";
- cin >> threshold;
- ws.pecatiStraniciSoUrlNad(threshold);
- }
- else if(opc==5)
- {
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement