Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- using namespace std;
- class WebPage
- {
- private:
- char url[100];
- char *sodrzina;//dinamicki alocirana
- public:
- WebPage(char *url="",char *sodrzina="")
- {
- 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];
- strcpy(this->sodrzina,wp.sodrzina);
- }
- char *getUrl()
- {
- return this->url;
- }
- char *getSodrzina()
- {
- return this->sodrzina;
- }
- void setUrl(char *url)
- {
- strcpy(this->sodrzina,sodrzina);
- }
- void setSodrzina(char *sodrzina)
- {
- delete [] this->sodrzina;
- this->sodrzina=new char[strlen(sodrzina)+1];
- strcpy(this->sodrzina,sodrzina);
- }
- void pecati()
- {
- cout <<"Url: " << this->url << endl;
- cout <<"Sodrzina: " << this->sodrzina << endl;
- }
- bool proverka(WebPage wp)
- {
- if(strcmp(this->url,wp.url)==0 && strcmp(this->sodrzina,wp.sodrzina)==0)
- return true;
- return false;
- }
- // WebPage &operator = (WebPage &wp)
- //{
- //if(this=!wp)
- //{
- //strcpy(this->url,wp.url);
- //delete[] this->sodrzina;
- //this->sodrzina=new char sodrzina[strlen(wp.sodrzina)+1];
- //strcpy(this->sodrzina,sodrzina);
- //}
- //return *this;
- //}
- ~WebPage()
- {
- delete[] this->sodrzina;
- }
- };
- class WebServer
- {
- private:
- char ime[30];
- WebPage *wps;//dinamicki alocirano pole od klasata WebPage
- int n;
- public:
- WebServer(char *ime="",WebPage *wps=0,int n=0)
- {
- strcpy(this->ime,ime);
- this->wps=new WebPage[n];
- for(int i=0; i<n; i++)
- {
- this->wps[i]=WebPage(wps[i]);
- }
- this->n=n;
- }
- WebServer(const WebServer &ws)
- {
- strcpy(this->ime,ws.ime);
- this->wps=new WebPage[ws.n];
- for(int i=0; i<ws.n; i++)
- {
- this->wps[i]=WebPage(ws.wps[i]);
- }
- this->n=ws.n;
- }
- char *getIme()
- {
- return this->ime;
- }
- WebPage *getWps()
- {
- return this->wps;
- }
- int getN()
- {
- return this->n;
- }
- void setIme(char *ime)
- {
- strcpy(this->ime,ime);
- }
- void setWps(WebPage *wps,int n)
- {
- delete [] this->wps;
- this->wps=new WebPage[n];
- for(int i=0; i<n; i++)
- {
- this->wps[i].setUrl(wps[i].getUrl());
- this->wps[i].setSodrzina(wps[i].getSodrzina());
- }
- }
- void setN(int n)
- {
- this->n=n;
- }
- void dodadi(WebPage wp)
- {
- WebPage *temp;
- temp = new WebPage[this->n];
- for(int i=0;i<this->n;i++)
- {
- temp[i] = WebPage(this->wps[i]);
- }
- delete [] this->wps;
- this->wps = new WebPage[this->n + 1];
- for(int i=0;i<this->n;i++)
- {
- this->wps[i] = WebPage(temp[i]);
- }
- this->wps[n] = WebPage(wp);
- n++;
- delete [] temp;
- }
- void izbrisi(WebPage wp)
- {
- WebPage *temp;
- temp = new WebPage[this->n-1];
- int j=0;
- for(int i=0;i<this->n;i++)
- {
- if(this->wps[i].proverka(wp))
- continue;
- temp[j] = WebPage(this->wps[i]);
- j++;
- }
- delete [] this->wps;
- this->wps = new WebPage[this->n - 1];
- for(int i=0;i< n-1;i++)
- {
- this->wps[i] = WebPage(temp[i]);
- }
- n--;
- delete [] temp;
- }
- void pecati()
- {
- for(int i=0;i<this->n;i++)
- this->wps[i].pecati();
- }
- void pecatiStraniciSoUrlNad(int threshold)
- {
- for(int i=0;i<this->n;i++)
- if(strlen(this->wps[i].getUrl())>threshold)
- this->wps[i].pecati();
- }
- ~WebServer()
- {
- delete[] this->wps;
- }
- };
- 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();
- 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