Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <iostream>
- #include <iomanip>
- #include <cstring>
- #include <cctype>
- using namespace std;
- string nazwa_pliku;
- ofstream output(nazwa_pliku.c_str());
- //A - na grafie projektu
- class pojazd{
- int liczba_kol;
- protected:
- string rejestracja;
- public:
- pojazd() {};
- ~pojazd() {};
- pojazd *poprz;
- pojazd *nast;
- char nazwa[20];
- pojazd(int l_kol, string rejestr) : liczba_kol(l_kol), rejestracja(rejestr) {}
- void wyswietl()
- {
- cout<<"Liczba kol: "<<liczba_kol<<endl;
- cout<<"Rejestracja: "<<rejestracja<<endl;
- }
- void Modyfikuj_pojazd()
- {
- cout<<"Podaj nazwe obiektu:"<<endl;
- cin>>nazwa;
- cout<<"Jaka liczbe kol ma posiadac pojazd?"<<endl;
- cin>>liczba_kol;
- cout<<"Jaka rejestracje ma posiadac pojazd"<<endl;
- cin>>rejestracja;
- }
- void zapis_pojazd(FILE *pFile)
- {
- fprintf(pFile,"\n%s\n%d\n%s", nazwa, liczba_kol, rejestracja.c_str());
- }
- void czytaj_pojazd(FILE *pFile)
- {
- fscanf(pFile,"\n%s\n%d\n%s", nazwa, liczba_kol, rejestracja.c_str());
- }
- };
- //B - na grafie projektu
- class jednoslady : public pojazd{
- int liczba_swiatel;
- protected:
- string kolor;
- public:
- jednoslady() {};
- ~jednoslady() {};
- jednoslady(int l_kol1, string rejestr1, int l_swiatel, string kol) : pojazd(l_kol1, rejestr1), liczba_swiatel(l_swiatel), kolor(kol) {}
- void wyswietl1()
- {
- wyswietl();
- cout<<"Liczba swiatel: "<<liczba_swiatel<<endl;
- cout<<"Kolor: "<<kolor<<endl;
- }
- void Modyfikuj_jednoslady()
- {
- Modyfikuj_pojazd();
- cout<<"Jaka liczbe swiatel ma miec pojazd"<<endl;
- cin>>liczba_swiatel;
- cout<<"Jaki kolor ma miec pojazd"<<endl;
- cin>>kolor;
- }
- void zapis_jednoslady(FILE *pFile)
- {
- zapis_pojazd(pFile);
- fprintf(pFile,"\n%d\n%s", liczba_swiatel, kolor.c_str());
- }
- void czytaj_jednoslad(FILE *pFile)
- {
- czytaj_pojazd(pFile);
- fscanf(pFile,"\n%d\n%s", liczba_swiatel, kolor.c_str());
- }
- };
- //D(pochodna B)- na grafie projektu
- class rowery : public jednoslady{
- int liczba_przerzutek;
- protected:
- string rodzaj_hamulcow;
- public:
- rowery() {};
- ~rowery() {};
- rowery(int l_kol2, string rejestr2, int l_swiatel1, string kol1, int l_przerzutek, string r_ham) :
- jednoslady(l_kol2, rejestr2, l_swiatel1, kol1), liczba_przerzutek(l_przerzutek), rodzaj_hamulcow(r_ham) {}
- void wyswietl2()
- {
- wyswietl1();
- cout<<"Liczba przerzutek: "<<liczba_przerzutek<<endl;
- cout<<"Rodzaj hamulcow: "<<rodzaj_hamulcow<<endl;
- }
- void Modyfikuj_rower()
- {
- Modyfikuj_jednoslady();
- cout<<"Jaka liczbe przerzutek ma miec pojazd"<<endl;
- cin>>liczba_przerzutek;
- cout<<"Jaki rodzaj hamulcow ma miec pojazd"<<endl;
- cin>>rodzaj_hamulcow;
- }
- void zapis_rowery(FILE *pFile)
- {
- zapis_jednoslady(pFile);
- fprintf(pFile,"\n%d\n%s", liczba_przerzutek, rodzaj_hamulcow.c_str());
- }
- void czytaj_rower(FILE *pFile)
- {
- czytaj_jednoslad(pFile);
- fscanf(pFile,"\n%d\n%s", liczba_przerzutek, rodzaj_hamulcow.c_str());
- }
- };
- //E(pochodna B)- na grafie projektu
- class motory : public jednoslady{
- int liczba_biegow;
- protected:
- int max_predkosc;
- public:
- motory() {};
- ~motory() {};
- motory(int l_kol3, string rejestr3, int l_swiatel2, string kol2, int l_bieg, int m_predkosc) :
- jednoslady(l_kol3, rejestr3, l_swiatel2, kol2), liczba_biegow(l_bieg), max_predkosc(m_predkosc) {}
- void wyswietl3()
- {
- wyswietl1();
- cout<<"Liczba biegow: "<<liczba_biegow<<endl;
- cout<<"Maxymalna predkosc: "<<max_predkosc<<endl;
- }
- void Modyfikuj_motor()
- {
- Modyfikuj_jednoslady();
- cout<<"Jaka liczbe biegow ma posiadac pojazd?"<<endl;
- cin>>liczba_biegow;
- cout<<"Jaka maksymalna predkosc ma posiadac pojazd"<<endl;
- cin>>max_predkosc;
- }
- void zapis_motory(FILE *pFile)
- {
- zapis_jednoslady(pFile);
- fprintf(pFile,"\n%d\n%d", liczba_biegow, max_predkosc);
- }
- void czytaj_motor(FILE *pFile)
- {
- czytaj_jednoslad(pFile);
- fscanf(pFile,"\n%d\n%d", liczba_biegow, max_predkosc);
- }
- };
- //C - na grafie projektu
- class inne : public pojazd{
- int waga;
- protected:
- int liczba_siedzen;
- public:
- inne() {};
- ~inne() {};
- inne(int l_kol4, string rejestr4, int wag, int l_siedzen) : pojazd(l_kol4, rejestr4), waga(wag), liczba_siedzen(l_siedzen) {}
- void wyswietl4()
- {
- wyswietl();
- cout<<"Waga: "<<waga<<endl;
- cout<<"Liczba siedzen: "<<liczba_siedzen<<endl;
- }
- void Modyfikuj_inne()
- {
- Modyfikuj_pojazd();
- cout<<"Jaka wage ma posiadac pojazd?"<<endl;
- cin>>waga;
- cout<<"Jaka liczbe siedzen ma posiadac pojazd"<<endl;
- cin>>liczba_siedzen;
- }
- void zapis_inne(FILE *pFile)
- {
- zapis_pojazd(pFile);
- fprintf(pFile,"\n%d\n%d", waga, liczba_siedzen);
- }
- void czytaj_inne(FILE *pFile)
- {
- czytaj_pojazd(pFile);
- fscanf(pFile,"\n%d\n%d", waga, liczba_siedzen);
- }
- };
- //F(pochodna C)- na grafie projektu
- class samochody : public inne{
- int ilosc_drzwi;
- protected:
- string marka_samochodu;
- public:
- samochody() {};
- ~samochody() {};
- samochody(int l_kol5, string rejestr5, int wag1, int l_siedzen1, int il_drzwi, string m_sam) : inne(l_kol5, rejestr5, wag1, l_siedzen1),
- ilosc_drzwi(il_drzwi), marka_samochodu(m_sam) {}
- void wyswietl5()
- {
- wyswietl4();
- cout<<"Ilosc drzwi: "<<ilosc_drzwi<<endl;
- cout<<"Marka samochodu: "<<marka_samochodu<<endl;
- }
- void Modyfikuj_samochody()
- {
- Modyfikuj_inne();
- cout<<"Jaka ilosc drzwi ma posiadac pojazd?"<<endl;
- cin>>ilosc_drzwi;
- cout<<"Jaka marke samochodu posiadac pojazd"<<endl;
- cin>>marka_samochodu;
- }
- void zapis_samochody(FILE *pFile)
- {
- zapis_inne(pFile);
- fprintf(pFile,"\n%d\n%s", ilosc_drzwi, marka_samochodu.c_str());
- }
- void czytaj_samochod(FILE *pFile)
- {
- czytaj_inne(pFile);
- fscanf(pFile,"\n%d\n%s", ilosc_drzwi, marka_samochodu.c_str());
- }
- };
- //G(pochodna C)- na grafie projektu
- class pojazdy_plywajace : public inne {
- int wypornosc;
- protected:
- int ilosc_turbin;
- public:
- pojazdy_plywajace() {};
- ~pojazdy_plywajace() {};
- pojazdy_plywajace(int l_kol6, string rejestr6, int wag2, int l_siedzen2,int wypor, int il_trb) : inne(l_kol6, rejestr6, wag2, l_siedzen2),
- wypornosc(wypor), ilosc_turbin(il_trb) {}
- void wyswietl6()
- {
- wyswietl4();
- cout<<"Wypornosc: "<<wypornosc<<endl;
- cout<<"Ilosc turbin: "<<ilosc_turbin<<endl;
- }
- void Modyfikuj_pojazdy_plywajace()
- {
- Modyfikuj_inne();
- cout<<"Jaka wypornosc ma posiadac pojazd?"<<endl;
- cin>>wypornosc;
- cout<<"Jaka ilosc turbin ma posiadac pojazd"<<endl;
- cin>>ilosc_turbin;
- }
- void zapis_plywajace(FILE *pFile)
- {
- zapis_inne(pFile);
- fprintf(pFile,"\n%d\n%d", wypornosc, ilosc_turbin);
- }
- void czytaj_plywajace(FILE *pFile)
- {
- czytaj_inne(pFile);
- fscanf(pFile,"\n%d\n%d", wypornosc, ilosc_turbin);
- }
- };
- //J(pochodna G)- na grafie projektu
- class kajaki : public pojazdy_plywajace {
- int ilosc_miejsc;
- protected:
- string rodzaj_wiosel;
- public:
- kajaki() {};
- ~kajaki() {};
- kajaki(int l_kol7, string rejestr7, int wag3, int l_siedzen3, int wypor1, int il_trb1, int il_msc, string r_wsl) :
- pojazdy_plywajace(l_kol7, rejestr7, wag3, l_siedzen3, wypor1, il_trb1), ilosc_miejsc(il_msc), rodzaj_wiosel(r_wsl) {}
- void wyswietl7()
- {
- wyswietl6();
- cout<<"Ilosc miejsc: "<<ilosc_miejsc<<endl;
- cout<<"Rodzaj wiosel: "<<rodzaj_wiosel<<endl;
- }
- void Modyfikuj_kajak()
- {
- Modyfikuj_pojazdy_plywajace();
- cout<<"Jaka ilosc miejsc ma posiadac pojazd?"<<endl;
- cin>>ilosc_miejsc;
- cout<<"Jaki rodzaj wiosel ma posiadac pojazd"<<endl;
- cin>>rodzaj_wiosel;
- }
- void zapis_kajaki(FILE *pFile)
- {
- zapis_plywajace(pFile);
- fprintf(pFile,"\n%d\n%s", ilosc_miejsc, rodzaj_wiosel.c_str());
- }
- void czytaj_kajak(FILE *pFile)
- {
- czytaj_plywajace(pFile);
- fscanf(pFile,"\n%d\n%s", ilosc_miejsc, rodzaj_wiosel.c_str());
- }
- };
- //K(pochodna C)- na grafie projektu
- class lotniskowce : public pojazdy_plywajace {
- int dlugosc;
- protected:
- int pasy_startowe;
- public:
- lotniskowce() {};
- ~lotniskowce() {};
- lotniskowce(int l_kol8, string rejestr8, int wag4, int l_siedzen4, int wypor2, int il_trb2, int dl, int p_st) :
- pojazdy_plywajace(l_kol8, rejestr8, wag4, l_siedzen4, wypor2, il_trb2), dlugosc(dl), pasy_startowe(p_st) {}
- void wyswietl8()
- {
- wyswietl6();
- cout<<"Dlugosc: "<<dlugosc<<endl;
- cout<<"Pasy startowe: "<<pasy_startowe<<endl;
- }
- void Modyfikuj_lotniskowiec()
- {
- Modyfikuj_pojazdy_plywajace();
- cout<<"Jaka dlugosc ma posiadac pojazd?"<<endl;
- cin>>dlugosc;
- cout<<"Ile pasow startowych ma posiadac pojazd"<<endl;
- cin>>pasy_startowe;
- }
- void zapis_lotniskowce(FILE *pFile)
- {
- zapis_plywajace(pFile);
- fprintf(pFile,"\n%d\n%d", dlugosc, pasy_startowe);
- }
- void czytaj_lotniskowce(FILE *pFile)
- {
- czytaj_plywajace(pFile);
- fscanf(pFile,"\n%d\n%d", dlugosc, pasy_startowe);
- }
- };
- //I(pochodna F) - na grafie projektu
- class osobowe : public samochody {
- int poduszki_pow;
- protected:
- int ilosc_wycieraczek;
- public:
- osobowe() {};
- ~osobowe() {};
- osobowe(int l_kol9, string rejestr9, int wag5, int l_siedzen5 ,int il_drzwi1, string m_sam1, int pod_pow, int il_wyc) :
- samochody(l_kol9, rejestr9, wag5, l_siedzen5, il_drzwi1, m_sam1), poduszki_pow(pod_pow), ilosc_wycieraczek(il_wyc) {}
- void wyswietl9()
- {
- wyswietl5();
- cout<<"Poduszki powietrzne: "<<poduszki_pow<<endl;
- cout<<"Ilosc wycieraczek: "<<ilosc_wycieraczek<<endl;
- }
- void Modyfikuj_osobowe()
- {
- Modyfikuj_samochody();
- cout<<"Ile poduszek powietrznych ma posiadac pojazd?"<<endl;
- cin>>poduszki_pow;
- cout<<"Ile wycieraczek ma posiadac pojazd"<<endl;
- cin>>ilosc_wycieraczek;
- }
- void zapis_osobowe(FILE *pFile)
- {
- zapis_samochody(pFile);
- fprintf(pFile,"\n%d\n%d", poduszki_pow, ilosc_wycieraczek);
- }
- void czytaj_osobowe(FILE *pFile)
- {
- czytaj_samochod(pFile);
- fscanf(pFile,"\n%d\n%d", poduszki_pow, ilosc_wycieraczek);
- }
- };
- //M(pochodna I) - na grafie projektu
- class terenowe : public osobowe {
- int cena;
- protected:
- string naped;
- public:
- terenowe() {};
- ~terenowe() {};
- terenowe(int l_kol10, string rejestr10, int wag6, int l_siedzen6, int il_drzwi2, string m_sam2, int pod_pow1, int il_wyc1, int cen, string nap) :
- osobowe(l_kol10, rejestr10, wag6, l_siedzen6, il_drzwi2, m_sam2, pod_pow1, il_wyc1),cena(cen), naped(nap) {}
- void wyswietl10()
- {
- wyswietl9();
- cout<<"Cena: "<<cena<<endl;
- cout<<"Naped: "<<naped<<endl;
- }
- void Modyfikuj_terenowke()
- {
- Modyfikuj_osobowe();
- cout<<"Jaka cene ma posiadac pojazd?"<<endl;
- cin>>cena;
- cout<<"Jaki naped ma posiadac pojazd"<<endl;
- cin>>naped;
- }
- void zapis_terenowe(FILE *pFile)
- {
- zapis_osobowe(pFile);
- fprintf(pFile,"\n%d\n%s", cena, naped.c_str());
- }
- void czytaj_terenowke(FILE *pFile)
- {
- czytaj_osobowe(pFile);
- fscanf(pFile,"\n%d\n%s", cena, naped.c_str());
- }
- };
- //L(pochodna I) - na grafie projektu
- class kabriolety : public osobowe {
- int pojemnosc_baku;
- protected:
- string rodzaj_swiatel;
- public:
- kabriolety() {};
- ~kabriolety() {};
- kabriolety(int l_kol11, string rejestr11, int wag7, int l_siedzen7, int il_drzwi3, string m_sam3, int pod_pow2, int il_wyc2, int p_baku, string r_swia) :
- osobowe(l_kol11, rejestr11, wag7, l_siedzen7, il_drzwi3, m_sam3, pod_pow2, il_wyc2), pojemnosc_baku(p_baku), rodzaj_swiatel(r_swia) {}
- void wyswietl11()
- {
- wyswietl9();
- cout<<"Pojemnosc baku: "<<pojemnosc_baku<<endl;
- cout<<"Rodzaj swiatel: "<<rodzaj_swiatel<<endl;
- }
- void Modyfikuj_kabriolet()
- {
- Modyfikuj_osobowe();
- cout<<"Jaka pojemnosc baku ma posiadac pojazd?"<<endl;
- cin>>pojemnosc_baku;
- cout<<"Jaki rodzaj swiatel ma posiadac pojazd"<<endl;
- cin>>rodzaj_swiatel;
- }
- void zapis_kabriolety(FILE *pFile)
- {
- zapis_osobowe(pFile);
- fprintf(pFile,"\n%d\n%s", pojemnosc_baku, rodzaj_swiatel.c_str());
- }
- void czytaj_kabriolet(FILE *pFile)
- {
- czytaj_osobowe(pFile);
- fscanf(pFile,"\n%d\n%s", pojemnosc_baku, rodzaj_swiatel.c_str());
- }
- };
- template<class pnt>
- pnt* Dodawanie(pnt *first, pnt *last)
- {
- pnt *tmp=first;
- if(first==NULL)
- {
- first=new pnt;
- return first;
- }
- else
- {
- while(tmp->nast!=NULL)
- {tmp=(pnt *)tmp->nast;}
- last=new pnt;
- tmp->nast=last;
- last->poprz=tmp;
- return last;
- }
- }
- pojazd *current=NULL;
- pojazd *A_first=NULL;
- pojazd *A_last=NULL;
- jednoslady *B_first=NULL;
- jednoslady *B_last=NULL;
- inne *C_first=NULL;
- inne *C_last=NULL;
- rowery *D_first=NULL;
- rowery *D_last=NULL;
- motory *E_first=NULL;
- motory *E_last=NULL;
- samochody *F_first=NULL;
- samochody *F_last=NULL;
- pojazdy_plywajace *G_first=NULL;
- pojazdy_plywajace *G_last=NULL;
- kajaki *J_first=NULL;
- kajaki *J_last=NULL;
- lotniskowce *K_first=NULL;
- lotniskowce *K_last=NULL;
- osobowe *I_first=NULL;
- osobowe *I_last=NULL;
- kabriolety *L_first=NULL;
- kabriolety *L_last=NULL;
- terenowe *M_first=NULL;
- terenowe *M_last=NULL;
- template <class pnt>
- int pokaz_obiekt(pnt *tmp)
- {
- char szukana[20];
- cout<<"Podaj nazwe obiektu ktory chcesz znalezc"<<endl;
- cin>>szukana;
- while(strcmp(szukana, tmp->nazwa)!=0)
- {
- tmp=tmp->nast;
- if(tmp==NULL)
- {
- cout<<"Nie ma takiego obiektu!"<<endl;
- return 0;
- }
- }
- if(current==A_first)
- {
- tmp->wyswietl();
- }
- else if(current==B_first)
- {
- jednoslady *wyp=(jednoslady*)tmp;
- wyp->wyswietl1();
- }
- else if(current==C_first)
- {
- inne *wyp=(inne*)tmp;
- wyp->wyswietl4();
- }
- else if(current==D_first)
- {
- rowery *wyp=(rowery*)tmp;
- wyp->wyswietl2();
- }
- else if(current==E_first)
- {
- motory *wyp=(motory*)tmp;
- wyp->wyswietl3();
- }
- else if(current==F_first)
- {
- samochody *wyp=(samochody*)tmp;
- wyp->wyswietl5();
- }
- else if(current==G_first)
- {
- pojazdy_plywajace *wyp=(pojazdy_plywajace*)tmp;
- wyp->wyswietl6();
- }
- else if(current==J_first)
- {
- kajaki *wyp=(kajaki*)tmp;
- wyp->wyswietl7();
- }
- else if(current==K_first)
- {
- lotniskowce *wyp=(lotniskowce*)tmp;
- wyp->wyswietl8();
- }
- else if(current==I_first)
- {
- osobowe *wyp=(osobowe*)tmp;
- wyp->wyswietl9();
- }
- else if(current==L_first)
- {
- kabriolety *wyp=(kabriolety*)tmp;
- wyp->wyswietl11();
- }
- else if(current==M_first)
- {
- terenowe *wyp=(terenowe*)tmp;
- wyp->wyswietl10();
- }
- cout<<endl;
- }
- template <class pnt>
- int Pokaz_Liste(pnt *tmp)
- {
- tmp=current;
- cout<<"Lista obiektow:"<<endl;
- while(tmp!=NULL)
- {
- cout<<tmp->nazwa<<endl;
- tmp=tmp->nast;
- }
- }
- template <class pnt>
- int Usun_obiekt(pnt *tmp)
- {
- char nazwaobiektu[20];
- cout<<"Podaj nazwe obiektu ktory chcesz usunac"<<endl;
- cin>>nazwaobiektu;
- while(strcmp(nazwaobiektu, tmp->nazwa)!=0)
- {
- tmp=tmp->nast;
- if(tmp==NULL){break;}
- }
- if(tmp==NULL)
- {
- cout<<"Nie ma takiego obiektu!"<<endl;
- return 0;
- }
- if(tmp->nast==NULL && tmp->poprz==NULL)
- {
- cout<<"Nie mozna usunac liscia!"<<endl;
- return 0;
- }
- //SRODEK
- else if(tmp->nast!=NULL && tmp->poprz!=NULL)
- {
- (tmp->poprz)->nast=tmp->nast;
- (tmp->nast)->poprz=tmp->poprz;
- delete tmp;
- }
- //1 ELEM
- else if(tmp->poprz==NULL&& tmp->nast!=NULL)
- {
- if(current==D_first)
- {
- D_first=(rowery*)tmp->nast;
- current=D_first;
- delete tmp;
- D_first->poprz=NULL;
- }
- else if(current==E_first)
- {
- E_first=(motory*)tmp->nast;
- current=E_first;
- delete tmp;
- E_first->poprz=NULL;
- }
- else if(current==J_first)
- {
- J_first=(kajaki*)tmp->nast;
- current=J_first;
- delete tmp;
- J_first->poprz=NULL;
- }
- else if(current==K_first)
- {
- K_first=(lotniskowce*)tmp->nast;
- current=K_first;
- delete tmp;
- K_first->poprz=NULL;
- }
- else if(current==L_first)
- {
- L_first=(kabriolety*)tmp->nast;
- current=L_first;
- delete tmp;
- L_first->poprz=NULL;
- }
- else if(current==M_first)
- {
- M_first=(terenowe*)tmp->nast;
- current=M_first;
- delete tmp;
- M_first->poprz=NULL;
- }
- }
- //LAST ELEM
- else if(tmp->nast==NULL && tmp->poprz!=NULL)
- {
- if(current==D_first)
- {
- D_last=(rowery*)tmp->poprz;
- delete tmp;
- D_last->nast=NULL;
- }
- else if(current==E_first)
- {
- E_last=(motory*)tmp->poprz;
- delete tmp;
- E_last->nast=NULL;
- }
- else if(current==J_first)
- {
- J_last=(kajaki*)tmp->poprz;
- delete tmp;
- J_last->nast=NULL;
- }
- else if(current==K_first)
- {
- K_last=(lotniskowce*)tmp->poprz;
- delete tmp;
- K_last->nast=NULL;
- }
- else if(current==L_first)
- {
- L_last=(kabriolety*)tmp->poprz;
- delete tmp;
- L_last->nast=NULL;
- }
- else if(current==M_first)
- {
- M_last=(terenowe*)tmp->poprz;
- delete tmp;
- M_last->nast=NULL;
- }
- }
- cout<<"Usunieto"<<endl;
- }
- template <class pnt>
- int zmien_obiekt(pnt *tmp)
- {
- char nazwaobiektu[20];
- cout<<"Podaj nazwe obiektu ktory chcesz zmienic"<<endl;
- cin>>nazwaobiektu;
- while(strcmp(nazwaobiektu, tmp->nazwa)!=0)
- {
- tmp=tmp->nast;
- if(tmp==NULL)
- {
- cout<<"Nie ma takiego obiektu!"<<endl;
- return 0;
- }
- }
- if(current==D_first)
- {
- cout<<"Wpisz nowe wartosci dla obiektu: "<<endl;
- rowery *wyp=(rowery*)tmp;
- wyp->Modyfikuj_rower();
- }
- else if(current==E_first)
- {
- cout<<"Wpisz nowe wartosci dla obiektu: "<<endl;
- motory *wyp=(motory*)tmp;
- wyp->Modyfikuj_motor();
- }
- else if(current==J_first)
- {
- cout<<"Wpisz nowe wartosci dla obiektu: "<<endl;
- kajaki *wyp=(kajaki*)tmp;
- wyp->Modyfikuj_kajak();
- }
- else if(current==K_first)
- {
- cout<<"Wpisz nowe wartosci dla obiektu: "<<endl;
- lotniskowce *wyp=(lotniskowce*)tmp;
- wyp->Modyfikuj_lotniskowiec();
- }
- else if(current==L_first)
- {
- cout<<"Wpisz nowe wartosci dla obiektu: "<<endl;
- kabriolety *wyp=(kabriolety*)tmp;
- wyp->Modyfikuj_kabriolet();
- }
- else if(current==M_first)
- {
- cout<<"Wpisz nowe wartosci dla obiektu: "<<endl;
- terenowe *wyp=(terenowe*)tmp;
- wyp->Modyfikuj_terenowke();
- }
- }
- template <class pnt>
- pnt* Zapisz_plik(pnt *tmp)
- {
- char naswa[20];
- cout<<"Podaj nazwe pliku (z dopiskiem .txt)"<<endl;
- cin>>naswa;
- FILE *pFile;
- pFile=fopen(naswa, "w+");
- if(current==D_first)
- {
- if(D_first->nast!=NULL)
- {
- D_first=(rowery*)D_first->nast;
- while(D_first)
- {
- // fprintf(pFile, "Rowery");
- D_first->zapis_rowery(pFile);
- D_first=(rowery*)D_first->nast;
- }
- }
- D_first=(rowery*)tmp;}
- else if(current==E_first)
- {
- tmp=(motory*)E_first;
- E_first->zapis_motory(pFile);
- if(E_first->nast!=NULL)
- {
- E_first=(motory*)E_first->nast;
- while(E_first)
- {
- // fprintf(pFile, "Motory");
- E_first->zapis_motory(pFile);
- E_first=(motory*)E_first->nast;
- }
- }
- E_first=(motory*)tmp;}
- else if(current==K_first)
- {
- tmp=(lotniskowce*)K_first;
- K_first->zapis_lotniskowce(pFile);
- if(K_first->nast!=NULL)
- {
- K_first=(lotniskowce*)K_first->nast;
- while(K_first)
- {
- // fprintf(pFile, "Lotniskowce");
- K_first->zapis_lotniskowce(pFile);
- K_first=(lotniskowce*)K_first->nast;
- }
- }
- K_first=(lotniskowce*)tmp;}
- else if(current==J_first)
- {
- tmp=(kajaki*)J_first;
- J_first->zapis_kajaki(pFile);
- if(J_first->nast!=NULL)
- {
- J_first=(kajaki*)J_first->nast;
- while(J_first)
- {
- // fprintf(pFile, "Kajaki");
- J_first->zapis_kajaki(pFile);
- J_first=(kajaki*)J_first->nast;
- }
- }
- J_first=(kajaki*)tmp;}
- else if(current==L_first)
- {
- tmp=(kabriolety*)L_first;
- L_first->zapis_kabriolety(pFile);
- if(L_first->nast!=NULL)
- {
- L_first=(kabriolety*)L_first->nast;
- while(L_first)
- {
- //fprintf(pFile, "Kabriolety");
- L_first->zapis_kabriolety(pFile);
- L_first=(kabriolety*)L_first->nast;
- }
- }
- L_first=(kabriolety*)tmp;}
- else if(current==M_first)
- {
- tmp=(terenowe*)M_first;
- M_first->zapis_terenowe(pFile);
- if(M_first->nast!=NULL)
- {
- M_first=(terenowe*)M_first->nast;
- while(M_first)
- {
- //fprintf(pFile, "Terenowe");
- M_first->zapis_terenowe(pFile);
- M_first=(terenowe*)L_first->nast;
- }
- }
- }
- fclose(pFile);
- cout<<"Zapisano"<<endl<<endl;
- }
- template <class pnt>
- pnt* odczytaj_plik(pnt *tmp)
- {
- char naswa[20];
- cout<<"Podaj nazwe pliku z dopiskiem .txt"<<endl;
- cin>>naswa;
- FILE *pFile;
- pFile=fopen(naswa, "r");
- if(pFile==NULL)
- {
- cout<<"Nie ma takiego pliku!"<<endl;
- return 0;
- }
- while(1)
- {
- if( (current=D_first)||(current=D_last) )
- {
- if(D_first==NULL)
- {
- D_first=Dodawanie(D_first, D_last);
- D_first->czytaj_rower(pFile);
- }
- else
- {
- D_last=Dodawanie(D_first, D_last);
- D_last->czytaj_rower(pFile);
- }
- }
- else if( (current=E_first)||(current=E_last) )
- {
- if(E_first==NULL)
- {
- E_first=Dodawanie(E_first, E_last);
- E_first->czytaj_motor(pFile);
- }
- else
- {
- E_last=Dodawanie(E_first, E_last);
- E_last->czytaj_motor(pFile);
- }
- }
- else if( (current=J_first) ||(current=J_last) )
- {
- if(J_first==NULL)
- {
- J_first=Dodawanie(J_first, J_last);
- J_first->czytaj_kajak(pFile);
- }
- else
- {
- J_last=Dodawanie(J_first, J_last);
- J_last->czytaj_kajak(pFile);
- }
- }
- else if( (current=K_first)||(current=K_last) )
- {
- if(K_first==NULL)
- {
- K_first=Dodawanie(K_first, K_last);
- K_first->czytaj_lotniskowce(pFile);
- }
- else
- {
- K_last=Dodawanie(K_first, K_last);
- K_last->czytaj_lotniskowce(pFile);
- }
- }
- else if(current=L_first||current=L_last)
- {
- if(L_first==NULL)
- {
- L_first=Dodawanie(L_first, L_last);
- L_first->czytaj_kabriolet(pFile);
- }
- else
- {
- L_last=Dodawanie(L_first, L_last);
- L_last->czytaj_kabriolet(pFile);
- }
- }
- else if(current=M_first||current=M_last)
- {
- if(M_first==NULL)
- {
- M_first=Dodawanie(M_first, M_last);
- M_first->czytaj_terenowke(pFile);
- }
- else
- {
- M_last=Dodawanie(M_first, M_last);
- M_last->czytaj_terenowke(pFile);
- }
- }
- fclose(pFile);
- }
- }
- int main()
- {
- int opcja=0;
- char zmiana;
- char nazwana[20];
- char sym[10];
- A_first=Dodawanie(A_first, A_last);
- B_first=Dodawanie(B_first, B_last);
- C_first=Dodawanie(C_first, C_last);
- D_first=Dodawanie(D_first, D_last);
- E_first=Dodawanie(E_first, E_last);
- F_first=Dodawanie(F_first, F_last);
- G_first=Dodawanie(G_first, G_last);
- I_first=Dodawanie(I_first, I_last);
- J_first=Dodawanie(J_first, J_last);
- K_first=Dodawanie(K_first, K_last);
- L_first=Dodawanie(L_first, L_last);
- M_first=Dodawanie(M_first, M_last);
- cout<<endl;
- A:cout<<"---MENU---"<<endl;
- cout<<"1.CD-zmiana wezla"<<endl;
- cout<<"2.MO-tworzenie obiektu"<<endl;
- cout<<"3.DO-usuwanie obiektu"<<endl;
- cout<<"4.MDO-modyfikacja obiektu"<<endl;
- cout<<"5.DIR-lista obiektow"<<endl;
- cout<<"6.SHOW-wyswietl szczegolowo obiekt"<<endl;
- cout<<"7.SAVE-zapis do pliku"<<endl;
- cout<<"8.READ-czytanie z programu"<<endl;
- cout<<"9.TREE-wyswietla schemat dziedziczenia klas"<<endl;
- cout<<"10.END-koniec programu"<<endl;
- cout<<endl<<endl;
- cout<<"Wybierz nazwe polecenia ktorego chcesz uzyc:"<<endl;
- cin>>sym;
- char CD[]="CD";
- char MO[]="MO";
- char DO[]="DO";
- char MDO[]="MDO";
- char DIR[]="DIR";
- char SHOW[]="SHOW";
- char SAVE[]="SAVE";
- char TREE[]="TREE";
- char READ[]="READ";
- char END[]="END";
- while(1)
- {
- B: if (strcmp(sym, CD)==0)
- opcja=1;
- else if (strcmp(sym, MO)==0)
- opcja=2;
- else if (strcmp(sym, DO)==0)
- opcja=3;
- else if (strcmp(sym, MDO)==0)
- opcja=4;
- else if (strcmp(sym, DIR)==0)
- opcja=5;
- else if (strcmp(sym, SHOW)==0)
- opcja=6;
- else if (strcmp(sym, SAVE)==0)
- opcja=7;
- else if (strcmp(sym, READ)==0)
- opcja= 8;
- else if (strcmp(sym, TREE)==0)
- opcja= 9;
- else if (strcmp(sym, END)==0)
- opcja=10;
- else
- {cout<<"Podaj poprawna nazwe polecenia"<<endl;
- goto A;}
- cout<<endl;
- while(1)
- {
- switch(opcja)
- {
- case 1:
- cout<<"Podaj znak wezla w ktorym chcesz utworzyc obiekt z mozliwych lisci:\n";
- cout<<"D-rowery\n";
- cout<<"E-motory\n";
- cout<<"J-kajaki\n";
- cout<<"K-lotniskowce\n";
- cout<<"L-kabriolety\n";
- cout<<"M-terenowe\n";
- cout<<endl;
- cout<<"Twoj wybor: ";
- cin>>zmiana;
- cout<<endl;
- if(zmiana=='d'||zmiana=='D')
- {
- current=D_first;
- }
- else if(zmiana=='e'||zmiana=='E')
- {
- current=E_first;
- }
- else if(zmiana=='j'||zmiana=='J')
- {
- current=J_first;
- }
- else if(zmiana=='k'||zmiana=='K')
- {
- current=K_first;
- }
- else if(zmiana=='l'||zmiana=='L')
- {
- current=L_first;
- }
- else if(zmiana=='m'||zmiana=='M')
- {
- current=M_first;
- }
- goto A;
- break;
- case 2:
- if(current==D_first)
- {
- D_last=Dodawanie(D_first, D_last);
- D_last->Modyfikuj_rower();
- }
- else if(current==E_first)
- {
- E_last=Dodawanie(E_first, E_last);
- E_last->Modyfikuj_motor();
- }
- else if(current==J_first)
- {
- J_last=Dodawanie(J_first, J_last);
- J_last->Modyfikuj_kajak();
- }
- else if(current==K_first)
- {
- K_last=Dodawanie(K_first, K_last);
- K_last->Modyfikuj_lotniskowiec();
- }
- else if(current==L_first)
- {
- L_last=Dodawanie(L_first,L_last);
- L_last->Modyfikuj_kabriolet();
- }
- else if(current==M_first)
- {
- M_last=Dodawanie(M_first,M_last);
- M_last->Modyfikuj_terenowke();
- }
- goto A;
- break;
- case 3:
- Usun_obiekt(current);
- goto A;
- break;
- case 4:
- zmien_obiekt(current);
- goto A;
- break;
- case 5:
- Pokaz_Liste(current);
- goto A;
- break;
- case 6:
- pokaz_obiekt(current);
- goto A;
- break;
- case 7:
- Zapisz_plik(current);
- goto A;
- break;
- case 8:
- odczytaj_plik(current);
- goto A;
- break;
- case 9:
- cout<<"Drzewko projektu"<<endl;
- cout<<endl<<endl;
- cout<<"\t\tV-----------|Pojazd|--------------V"<<endl;
- cout<<"\t\tV\t\t\t\t V"<<endl;
- cout<<"\tV-|Jednoslady|-V"<<"\t\t V----|Inne|---------V"<<endl;
- cout<<"\tV\t V\t\t V\t V"<<endl;
- cout<<" |Rowery|"<<"\t |Motory|"<<"\t |Samochody|"<<"\t|Pojazdy Plywajace|"<<endl;
- cout<<"\t\t\t\t\t V V V"<<endl;
- cout<<"\t\t\t\t V-|Osobowe|-V"<<" |Kajaki| |Lotniskowce|"<<endl;
- cout<<"\t\t\t\t V V"<<endl;
- cout<<"\t\t\t |Terenowe| |Kabriolety|"<<endl<<endl<<endl;
- goto A;
- break;
- case 10:
- return 0;
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement