Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <conio.h>
- #include <vector>
- #include <string>
- using namespace std;
- class CWyrazy
- {
- public:
- char* zrodlo;
- char* tlumacz;
- public:
- CWyrazy(const CWyrazy& w)
- {
- //zrodlo=strdup(w.zrodlo);
- //tlumacz=strdup(w.tlumacz);
- zrodlo=new char[strlen(w.zrodlo)+1];
- tlumacz=new char[strlen(w.tlumacz)+1];
- strcpy(zrodlo, w.zrodlo);
- strcpy(tlumacz, w.tlumacz);
- }
- CWyrazy(char* Zrodlo, char* Tlumacz)
- {
- zrodlo=new char[strlen(Zrodlo)+1];
- strcpy(zrodlo, Zrodlo);
- tlumacz=new char[strlen(Tlumacz)+1];
- strcpy(tlumacz, Tlumacz);
- }
- ~CWyrazy()
- {
- delete[] zrodlo;
- delete[] tlumacz;
- }
- char* getZrodlo()
- {
- return zrodlo;
- }
- char* getTlumacz()
- {
- return tlumacz;
- }
- };
- class CSlownik
- {
- char* zrodlo;
- char* docelowy;
- public:
- vector <CWyrazy> wyrazy;
- public:
- CSlownik(char* Zrodlo, char* Docelowy)
- {
- zrodlo=new char[strlen(Zrodlo)+1];
- strcpy(zrodlo, Zrodlo);
- docelowy=new char[strlen(Docelowy)+1];
- strcpy(docelowy, Docelowy);
- }
- virtual ~CSlownik()
- {
- delete[] zrodlo;
- delete[] docelowy;
- }
- void Wyswietl()
- {
- printf("%s -> %s\n", zrodlo, docelowy);
- }
- virtual void Przetlumacz(char* wyraz)=0;
- virtual void Dopisz(char* wyraz1, char* wyraz2)
- {
- CWyrazy tmp(wyraz1, wyraz2);
- wyrazy.push_back(tmp);
- }
- };
- class CSlownikPolAngl:public CSlownik
- {
- public:
- CSlownikPolAngl(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
- void Przetlumacz(char* wyraz)
- {
- printf("\t");
- if(!strcmp(wyraz, "kot"))
- printf("a cat\n");
- else if(!strcmp(wyraz, "niespodzianka"))
- printf("a surprise\n");
- else if(!strcmp(wyraz, "prezent"))
- printf("a gift\n");
- else
- printf("Nie ma takiego wyrazu.");
- }
- };
- class CSlownikPolNiemiecki:public CSlownik
- {
- public:
- CSlownikPolNiemiecki(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
- void Przetlumacz(char* wyraz)
- {
- printf("\t");
- if(!strcmp(wyraz, "kot"))
- printf("die Katze\n");
- else if(!strcmp(wyraz, "niespodzianka"))
- printf("die Uebrraschung\n");
- else if(!strcmp(wyraz, "prezent"))
- printf("der Geschenk\n");
- else
- printf("Nie ma takiego wyrazu.");
- }
- };
- class CSlownikPolFr:public CSlownik
- {
- public:
- CSlownikPolFr(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
- void Przetlumacz(char* wyraz)
- {
- printf("\t");
- if(!strcmp(wyraz, "kot"))
- printf("le chat\n");
- else if(!strcmp(wyraz, "niespodzianka"))
- printf("la surprise\n");
- else if(!strcmp(wyraz, "prezent"))
- printf("le cadeau\n");
- else
- printf("Nie ma takiego wyrazu.");
- }
- };
- class CSlownikPolX:public CSlownik
- {
- vector <CWyrazy> wyrazy;
- public:
- CSlownikPolX(char* Zrodlo, char* Docelowy):CSlownik(Zrodlo, Docelowy){}
- void Przetlumacz(char* wyraz)
- {
- for(int i=0; i<wyrazy.size(); ++i)
- {
- if(!strcmp(wyrazy[i].zrodlo, wyraz))
- {
- printf("%s\n", wyrazy[i].tlumacz);
- return;
- }
- }
- printf("Nie ma slowa w slowniku.");
- }
- void Dopisz(char* wyraz1, char* wyraz2)
- {
- CWyrazy tmp(wyraz1, wyraz2);
- wyrazy.push_back(tmp);
- }
- void Wczytaj()
- {
- FILE *slownik;
- slownik=fopen("nazwa", "r");
- fclose(slownik);
- }
- void Zapisz()
- {
- FILE *slownik;
- slownik=fopen("nazwa", "w+");
- for(int i=0; i<wyrazy.size(); ++i)
- {
- //fprintf(slownik, "%s %s\n", wyrazy[i].zrudlo, wyrazy[i].tlumacz);
- }
- fclose(slownik);
- }
- };
- int main(int argc, char *argv[])
- {
- string s1="Text";
- cout<<s1<<endl;
- CSlownik *s[50];
- s[0]=new CSlownikPolAngl("Polski", "Angielski");
- s[1]=new CSlownikPolNiemiecki("Polski", "Niemiecki");
- s[2]=new CSlownikPolFr("Polski", "Fracnuski");
- s[3]=new CSlownikPolX("Polski", "x");
- s[3]->Dopisz("slowo", "word");
- s[3]->Dopisz("slowo2", "word2");
- s[3]->Przetlumacz("slowo");
- for(int i=0; i<4; ++i)
- {
- s[i]->Wyswietl();
- s[i]->Przetlumacz("kot");
- s[i]->Przetlumacz("niespodzianka");
- s[i]->Przetlumacz("prezent");
- }
- for(int i=0; i<4; ++i)
- {
- delete s[i];
- }
- _getch();
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement