Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <conio.h>
- #include <fstream>
- #include <cstdlib>
- using namespace std;
- struct dostawca {
- int id;
- string nazwa;
- int nip;
- dostawca *nastepna; // wskaznik na nastêpny element
- dostawca(); // konstruktor
- };
- dostawca::dostawca() {
- nastepna = 0; // konstruktor
- }
- struct lista {
- dostawca *pierwsza; // wskaznik na pocz¹tek listy
- void dodaj_dostawce ();
- void usun_dostawce ();
- void wyswietl_menu ();
- void zam_dostawca();
- lista();
- };
- lista::lista() {
- pierwsza = 0; // konstruktor
- }
- void lista::dodaj_dostawce()
- {
- string nazwa;
- int nip;
- cout<<"nazwa: ";
- getline(cin,nazwa);
- getline(cin,nazwa);
- cout<<"Podaj nip: ";
- cin>>nip;
- dostawca *nowa = new dostawca; // tworzy nowy element listy
- nowa->nazwa = nazwa;
- nowa->nip = nip;
- if (pierwsza==0) // sprawdzamy czy to pierwszy element listy
- {
- // je¿eli tak to nowy element jest teraz poczatkiem listy
- pierwsza = nowa;
- }
- else
- {
- // w przeciwnym wypadku wêdrujemy na koniec listy
- dostawca *temp = pierwsza;
- while (temp->nastepna)
- {
- // znajdujemy wskaŸnik na ostatni element
- temp = temp->nastepna;
- }
- temp->nastepna = nowa; // ostatni element wskazuje na nasz nowy
- nowa->nastepna = 0; // ostatni nie wskazuje na nic
- }
- }
- void lista::wyswietl_menu()
- {
- system("cls");
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- cout<<"================================="<<endl<<"Lista dostawcow"<<endl<<endl;
- // wskaznik na pierszy element listy
- dostawca *temp = pierwsza;
- int a;
- a=1;
- // przewijamy wskazniki na nastepne elementy
- while (temp)
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
- cout <<"id: ";
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<< a;
- temp->id = a;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
- cout<< " nazwa dostawcy: ";
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<< temp->nazwa;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
- cout<<" nip: ";
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<< temp->nip<< endl;
- temp=temp->nastepna;
- a++;
- }
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- cout<<"================================="<<endl;
- }
- void lista::zam_dostawca()
- {
- fstream dostawcy_txt;
- int nr1;
- cout<<"Podaj id dostawcy: ";
- cin>>nr1;
- dostawca *temp = pierwsza;
- int i,j=1;
- while(temp)
- {
- if(nr1==j)
- {
- dostawcy_txt.open("zamowienie.txt",ios::out);
- dostawcy_txt<<"======Zamowienie======\nId dostawcy: "<<temp->id<<endl;
- dostawcy_txt<<"Nazwa dostwcy: "<<temp->nazwa<<endl;
- dostawcy_txt<<"NIP dostawcy: "<<temp->nip<<endl;
- dostawcy_txt.close();
- break;
- }
- temp = temp->nastepna;
- j++;
- }
- }
- void lista::usun_dostawce ()
- {
- int nr;
- cout<<"Podaj id dostawcy do usuniecia: ";
- cin>>nr;
- if (nr==1)
- {
- dostawca *temp = pierwsza;
- pierwsza = temp->nastepna;
- }
- else
- {
- int j = 1;
- dostawca *temp = pierwsza;
- while (temp)
- {
- if ((j+1)==nr) break;
- temp = temp->nastepna;
- j++;
- }
- if (temp->nastepna->nastepna==0)
- temp->nastepna = 0;
- else
- temp->nastepna = temp->nastepna->nastepna;
- }
- }
- struct towar {
- int id;
- string nazwa;
- string nazwisko;
- int ilosc;
- towar *nastepna; // wskaŸnik na nastêpny element
- towar(); // konstruktor
- };
- towar::towar() {
- nastepna = 0; // konstruktor
- }
- struct lista2 {
- towar *pierwsza; // wskaŸnik na pocz¹tek listy
- void dodaj_towar ();
- void usun_towar ();
- void wyswietl_menu2 ();
- void zam_towar();
- lista2();
- };
- lista2::lista2() {
- pierwsza = 0; // konstruktor
- }
- void lista2::dodaj_towar()
- {
- string nazwa;
- int ilosc;
- cout<<"Podaj nazwe: ";
- getline(cin,nazwa);
- getline(cin,nazwa);
- cout<<"Podaj ilosc: ";
- cin>>ilosc;
- towar *nowa = new towar; // tworzy nowy element listy
- nowa->nazwa = nazwa;
- nowa->ilosc = ilosc;
- if (pierwsza==0) // sprawdzamy czy to pierwszy element listy
- {
- // je¿eli tak to nowy element jest teraz pocz¹tkiem listy
- pierwsza = nowa;
- }
- else
- {
- // w przeciwnym wypadku wêdrujemy na koniec listy
- towar *temp = pierwsza;
- while (temp->nastepna)
- {
- // znajdujemy wskaŸnik na ostatni element
- temp = temp->nastepna;
- }
- temp->nastepna = nowa; // ostatni element wskazuje na nasz nowy
- nowa->nastepna = 0; // ostatni nie wskazuje na nic
- }
- }
- void lista2::wyswietl_menu2()
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- cout<<"================================="<<endl<<"Lista towarow"<<endl<<endl;
- // wskaznik na pierszy element listy
- towar *temp = pierwsza;
- //cout<<"Pierwsza z wyswietl: "<<pierwsza<<endl;
- int a;
- a=1;
- // przewijamy wskazniki na nastepne elementy
- while (temp)
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
- cout <<"id: ";
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<< a;
- temp->id = a;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
- cout<< " nazwa towaru: ";
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<< temp->nazwa;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<< temp->nazwisko;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),11);
- cout<<" ilosc: ";
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<< temp->ilosc<< endl;
- temp=temp->nastepna;
- a++;
- }
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
- cout<<"================================="<<endl;
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
- cout<<" Menu"<<endl;
- cout<<"1 - dodaj dostawce"<<endl;
- cout<<"2 - usun dostawce"<<endl;
- cout<<"3 - dodaj towar"<<endl;
- cout<<"4 - usun towar"<<endl;
- cout<<"5 - stworz zamowienie"<<endl;
- cout<<"9 - exit"<<endl;
- }
- void lista2::zam_towar()
- {
- fstream dostawcy_txt;
- int nr1,po;
- dostawcy_txt.open("zamowienie.txt",ios::out|ios::app);
- dostawcy_txt<<"\n\n===Towary==="<<endl;
- dostawcy_txt.close();
- while(TRUE)
- {
- cout<<"id towar: ";
- cin>>nr1;
- towar *temp = pierwsza;
- int i,j=1;
- // zamowienie_txt.open("zam1.txt",ios::out);
- //dostawca *temp2 = pierwsza;
- while(temp)
- {
- if(nr1==j)
- {
- dostawcy_txt.open("zamowienie.txt",ios::out|ios::app);
- //dostawca *temp2 = pierwsza;
- // while (temp2)
- //{
- dostawcy_txt<<"ID towaru: "<<temp->id<<endl;
- dostawcy_txt<<"Nazwa towaru: "<<temp->nazwa<<endl;
- //dostawcy_txt<<"Nazwa towaru2: "<<temp->nazwisko<<endl;
- dostawcy_txt<<"Ilosc towaru: "<<temp->ilosc<<endl<<endl;
- //temp2=temp2->nastepna;
- //}
- dostawcy_txt.close();
- break;
- }
- temp = temp->nastepna;
- j++;
- }
- cout<<"Czy chcesz dodac kolejny towar?(0-nie;1-tak) ";
- cin>>po;
- if(po==0)
- break;
- //int nr1,po;
- //cout<<"Podaj id towaru: ";
- //cin>>nr1;
- //towar_txt.open("dostawa",ios::out|ios::app);
- }
- }
- void lista2::usun_towar()
- {
- int nr;
- cout<<"Podaj id towaru do usuniecia: ";
- cin>>nr;
- if (nr==1)
- {
- towar *temp = pierwsza;
- pierwsza = temp->nastepna; //poczatek listy, 1 el. wskazuje na 2 el. itd..
- }
- if (nr>=2)
- {
- int j = 1;
- towar *temp = pierwsza;
- while (temp)
- {
- // sprawdzamy czy wskaznik jest na osobie n-1 niz usuwana
- if ((j+1)==nr) break;
- // jezeli nie to przewijamy petle do przodu
- temp = temp->nastepna;
- j++;
- }
- if (temp->nastepna->nastepna==0)
- temp->nastepna = 0;
- // jezeli nie byl to ostatni element
- else
- temp->nastepna = temp->nastepna->nastepna;
- }
- }
- int main()
- {
- lista *baza = new lista;
- lista2 *baza2 = new lista2;
- int wybor;
- while (true)
- {
- baza->wyswietl_menu();
- baza2->wyswietl_menu2();
- cin>>wybor;
- switch(wybor)
- {
- case 1:
- baza->dodaj_dostawce();
- break;
- case 2:
- baza->usun_dostawce();
- break;
- case 3:
- baza2->dodaj_towar();
- break;
- case 4:
- baza2->usun_towar();
- break;
- case 5:
- baza->zam_dostawca();
- baza2->zam_towar();
- break;
- case 9:
- delete (baza);
- exit(0);
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement