#include <iostream>
#include <cstring>
#include <list>
using namespace std;
struct przesylka
{
int numer_przesylki;
char adresat[70];
char dzielnica[30];
char towar[30];
int ciezar;
int wartosc;
};
class KURIER
{
public:
char NR[30];
int LAD;
list <przesylka> PACZKI;
int IleElementow;
KURIER();
KURIER(char *numer, int lad)
{
strcpy(NR,numer);
LAD=lad;
IleElementow=0;
}
przesylka TworzPrzesylke(int NUMER, char *ADRESAT, char *DZIELNICA, char *TOWAR, int CIEZAR, int WARTOSC)
{
przesylka nowa;
nowa.numer_przesylki=NUMER;
strcpy(nowa.adresat,ADRESAT);
strcpy(nowa.dzielnica,DZIELNICA);
strcpy(nowa.towar,TOWAR);
nowa.ciezar=CIEZAR;
nowa.wartosc=WARTOSC;
return nowa;
}
virtual void WLO_Z(przesylka paczka)//wkladanie przesylki
{
try
{
if(IleElementow>=LAD) throw 0;
PACZKI.push_back(paczka);
IleElementow++;
}
catch (int nr)
{
if(nr==0)
cout<<"Nie moge zaladowac, samochod jest pelen"<<endl;
}
}
void WYL_P(int ident)//wyladowanie wskazanej identyfikatorem paczki
{
bool CzyZrobione=0;
try
{
for(list<przesylka>::iterator it=PACZKI.begin(); it!=PACZKI.end(); it++)
{
if(it->numer_przesylki==ident)
{
PACZKI.pop_back();
CzyZrobione=1;
break;
}
}
if(CzyZrobione==0)throw 0;
IleElementow-=CzyZrobione;
}
catch (int nr)
{
if(nr==0)cout<<"Nie ma takiej paczki"<<endl;
}
}
bool CzyToSamo(char *a,char *b)
{
for(int i=0;i<strlen(a);i++)
{
if(a[i]!=b[i])return 0;
}
return 1;
}
//O TA FUNKCJE MI CHODZI!!!
void WYL_D(char *dzielnica)//wyladowanie wszystkich z tej samej dzielnicy
{
try
{
int IleWypakowalo=0;
// for(list<przesylka>::iterator it=PACZKI.begin(); it!=PACZKI.end(); it++)
// {
// if(CzyToSamo(dzielnica,(*it).dzielnica)==1)
// {
// it = PACZKI.erase(it);
// IleWypakowalo++;
// }
// }
list<przesylka>::iterator it = PACZKI.begin();
while(it != PACZKI.end()) {
if (CzyToSamo(dzielnica, it->dzielnica)) {
it = PACZKI.erase(it);
IleWypakowalo++;
} else {
++it;
}
}
if(IleWypakowalo==0) throw 0;
cout<<"Wypakowalem "<<IleWypakowalo<<" paczek"<<endl;
IleElementow-=IleWypakowalo;
}
catch(int nr)
{
if(nr==0)cout<<"Nie ma takiej dzielnicy, nic nie wypakowalem"<<endl;
}
}
void Wyswietl()
{
int numer=1;
try
{
if(IleElementow==0)throw 0;
cout<<"Wyswietlam przesylki: "<<endl;
for(list<przesylka>::iterator it=PACZKI.begin(); it!=PACZKI.end(); it++)
{
cout<<numer<<": "<<(*it).numer_przesylki<<" "<<(*it).adresat<<" "<<(*it).dzielnica<<" "<<(*it).towar<<" masa: "<<(*it).ciezar<<" wart: "<<(*it).wartosc<<endl;
numer++;
}
}
catch (int nr)
{
if(nr==0)cout<<"Samochod jest pusty, nie mam co wyswietlic"<<endl;
}
}
};
int main()
{
//TworzPrzesylke(int NUMER, char *ADRESAT, char *DZIELNICA, char *TOWAR, int CIEZAR, int WARTOSC)
KURIER a("PO654SU",3);
przesylka p1,p2,p3,p4,p5,p6,p7,p8,p9;
p1=a.TworzPrzesylke(1,"Nowak","Wilda","stol",10,500);
p2=a.TworzPrzesylke(2,"Kowalski","Wilda","krzeslo",5,100);
p3=a.TworzPrzesylke(3,"Inne","Wilda","komputer",20,5000);
p4=a.TworzPrzesylke(4,"Zenon","Grunwald","monitor",3,1000);
p5=a.TworzPrzesylke(5,"Jan","Grunwald","monitor",3,66);
p6=a.TworzPrzesylke(6,"Krzysiek","Wilda","monitor",3,3000);
p7=a.TworzPrzesylke(7,"Adam","Grunwald","monitor",3,1010);
p8=a.TworzPrzesylke(7,"Adam","Wilda","monitor",3,1010);
cout<<"Wyswietlam na poczatek"<<endl;
a.Wyswietl();
cout<<"pakuje 1"<<endl;
a.WLO_Z(p1);
cout<<"pakuje 2"<<endl;
a.WLO_Z(p2);
cout<<"pakuje 3"<<endl;
a.WLO_Z(p3);
cout<<"pakuje 4"<<endl;
a.WLO_Z(p4);
cout<<"wyswietlam"<<endl;
a.Wyswietl();
cout<<"wypakowuje 2"<<endl;
a.WYL_P(2);
a.Wyswietl();
cout<<"Wypakowuje wilde"<<endl;
a.WYL_D("Wilda");
a.Wyswietl();
cout<<endl<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAgICAgICAgCiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8bGlzdD4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCnN0cnVjdCBwcnplc3lsa2EKewogICAgICAgIGludCBudW1lcl9wcnplc3lsa2k7CiAgICAgICAgY2hhciBhZHJlc2F0WzcwXTsKICAgICAgICBjaGFyIGR6aWVsbmljYVszMF07CiAgICAgICAgY2hhciB0b3dhclszMF07CiAgICAgICAgaW50IGNpZXphcjsKICAgICAgICBpbnQgd2FydG9zYzsKfTsKIApjbGFzcyBLVVJJRVIKewpwdWJsaWM6CiAgICAgICAgY2hhciBOUlszMF07CiAgICAgICAgaW50IExBRDsKICAgICAgICBsaXN0IDxwcnplc3lsa2E+IFBBQ1pLSTsKICAgICAgICBpbnQgSWxlRWxlbWVudG93OwogICAgICAgIEtVUklFUigpOwogICAgICAgIEtVUklFUihjaGFyICpudW1lciwgaW50IGxhZCkKICAgICAgICB7CiAgICAgICAgICAgICAgICBzdHJjcHkoTlIsbnVtZXIpOwogICAgICAgICAgICAgICAgTEFEPWxhZDsKICAgICAgICAgICAgICAgIElsZUVsZW1lbnRvdz0wOwogICAgICAgIH0KIAogICAgICAgIHByemVzeWxrYSBUd29yelByemVzeWxrZShpbnQgTlVNRVIsIGNoYXIgKkFEUkVTQVQsIGNoYXIgKkRaSUVMTklDQSwgY2hhciAqVE9XQVIsIGludCBDSUVaQVIsIGludCBXQVJUT1NDKQogICAgICAgIHsKICAgICAgICAgICAgICAgIHByemVzeWxrYSBub3dhOwogICAgICAgICAgICAgICAgbm93YS5udW1lcl9wcnplc3lsa2k9TlVNRVI7CiAgICAgICAgICAgICAgICBzdHJjcHkobm93YS5hZHJlc2F0LEFEUkVTQVQpOwogICAgICAgICAgICAgICAgc3RyY3B5KG5vd2EuZHppZWxuaWNhLERaSUVMTklDQSk7CiAgICAgICAgICAgICAgICBzdHJjcHkobm93YS50b3dhcixUT1dBUik7CiAgICAgICAgICAgICAgICBub3dhLmNpZXphcj1DSUVaQVI7CiAgICAgICAgICAgICAgICBub3dhLndhcnRvc2M9V0FSVE9TQzsKICAgICAgICAgICAgICAgIHJldHVybiBub3dhOwogICAgICAgIH0KIAogICAgICAgIHZpcnR1YWwgdm9pZCBXTE9fWihwcnplc3lsa2EgcGFjemthKS8vd2tsYWRhbmllIHByemVzeWxraQogICAgICAgIHsKICAgICAgICAgICAgICAgIHRyeQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihJbGVFbGVtZW50b3c+PUxBRCkgdGhyb3cgMDsKIAogCiAgICAgICAgICAgICAgICAgICAgICAgIFBBQ1pLSS5wdXNoX2JhY2socGFjemthKTsKICAgICAgICAgICAgICAgICAgICAgICAgSWxlRWxlbWVudG93Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCAoaW50IG5yKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihucj09MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDwiTmllIG1vZ2UgemFsYWRvd2FjLCBzYW1vY2hvZCBqZXN0IHBlbGVuIjw8ZW5kbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAKICAgICAgICB2b2lkIFdZTF9QKGludCBpZGVudCkvL3d5bGFkb3dhbmllIHdza2F6YW5laiBpZGVudHlmaWthdG9yZW0gcGFjemtpCiAgICAgICAgewogICAgICAgICAgICAgICAgYm9vbCBDenlacm9iaW9uZT0wOwogICAgICAgICAgICAgICAgdHJ5CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihsaXN0PHByemVzeWxrYT46Oml0ZXJhdG9yIGl0PVBBQ1pLSS5iZWdpbigpOyBpdCE9UEFDWktJLmVuZCgpOyBpdCsrKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaXQtPm51bWVyX3ByemVzeWxraT09aWRlbnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFDWktJLnBvcF9iYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDenlacm9iaW9uZT0xOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKEN6eVpyb2Jpb25lPT0wKXRocm93IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIElsZUVsZW1lbnRvdy09Q3p5WnJvYmlvbmU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCAoaW50IG5yKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihucj09MCljb3V0PDwiTmllIG1hIHRha2llaiBwYWN6a2kiPDxlbmRsOwogICAgICAgICAgICAgICAgfQogCiAgICAgICAgfQogCiAgICAgICAgYm9vbCBDenlUb1NhbW8oY2hhciAqYSxjaGFyICpiKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8c3RybGVuKGEpO2krKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoYVtpXSE9YltpXSlyZXR1cm4gMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KIAogCi8vTyBUQSBGVU5LQ0pFIE1JIENIT0RaSSEhIQogICAgICAgIHZvaWQgV1lMX0QoY2hhciAqZHppZWxuaWNhKS8vd3lsYWRvd2FuaWUgd3N6eXN0a2ljaCB6IHRlaiBzYW1laiBkemllbG5pY3kKICAgICAgICB7CiAgICAgICAgICAgICAgICB0cnkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IElsZVd5cGFrb3dhbG89MDsKLy8gICAgICAgICAgICAgICAgICAgICAgICBmb3IobGlzdDxwcnplc3lsa2E+OjppdGVyYXRvciBpdD1QQUNaS0kuYmVnaW4oKTsgaXQhPVBBQ1pLSS5lbmQoKTsgaXQrKykKLy8gICAgICAgICAgICAgICAgICAgICAgICB7Ci8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihDenlUb1NhbW8oZHppZWxuaWNhLCgqaXQpLmR6aWVsbmljYSk9PTEpCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ID0gUEFDWktJLmVyYXNlKGl0KTsKLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWxlV3lwYWtvd2FsbysrOwovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQovLyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbGlzdDxwcnplc3lsa2E+OjppdGVyYXRvciBpdCA9IFBBQ1pLSS5iZWdpbigpOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShpdCAhPSBQQUNaS0kuZW5kKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQ3p5VG9TYW1vKGR6aWVsbmljYSwgaXQtPmR6aWVsbmljYSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ID0gUEFDWktJLmVyYXNlKGl0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElsZVd5cGFrb3dhbG8rKzsKICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgKytpdDsKICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgIAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKElsZVd5cGFrb3dhbG89PTApIHRocm93IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJXeXBha293YWxlbSAiPDxJbGVXeXBha293YWxvPDwiIHBhY3playI8PGVuZGw7CiAgICAgICAgICAgICAgICAgICAgICAgIElsZUVsZW1lbnRvdy09SWxlV3lwYWtvd2FsbzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoKGludCBucikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobnI9PTApY291dDw8Ik5pZSBtYSB0YWtpZWogZHppZWxuaWN5LCBuaWMgbmllIHd5cGFrb3dhbGVtIjw8ZW5kbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAKIAogCiAgICAgICAgdm9pZCBXeXN3aWV0bCgpCiAgICAgICAgewogICAgICAgICAgICAgICAgaW50IG51bWVyPTE7CiAgICAgICAgICAgICAgICB0cnkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoSWxlRWxlbWVudG93PT0wKXRocm93IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJXeXN3aWV0bGFtIHByemVzeWxraTogIjw8ZW5kbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IobGlzdDxwcnplc3lsa2E+OjppdGVyYXRvciBpdD1QQUNaS0kuYmVnaW4oKTsgaXQhPVBBQ1pLSS5lbmQoKTsgaXQrKykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDxudW1lcjw8IjogIjw8KCppdCkubnVtZXJfcHJ6ZXN5bGtpPDwiICI8PCgqaXQpLmFkcmVzYXQ8PCIgIjw8KCppdCkuZHppZWxuaWNhPDwiICI8PCgqaXQpLnRvd2FyPDwiIG1hc2E6ICI8PCgqaXQpLmNpZXphcjw8IiB3YXJ0OiAiPDwoKml0KS53YXJ0b3NjPDxlbmRsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtZXIrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCAoaW50IG5yKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihucj09MCljb3V0PDwiU2Ftb2Nob2QgamVzdCBwdXN0eSwgbmllIG1hbSBjbyB3eXN3aWV0bGljIjw8ZW5kbDsKICAgICAgICAgICAgICAgIH0KIAogICAgICAgIH0KIAp9OwogCmludCBtYWluKCkKewogICAgICAgIC8vVHdvcnpQcnplc3lsa2UoaW50IE5VTUVSLCBjaGFyICpBRFJFU0FULCBjaGFyICpEWklFTE5JQ0EsIGNoYXIgKlRPV0FSLCBpbnQgQ0lFWkFSLCBpbnQgV0FSVE9TQykKICAgICAgICBLVVJJRVIgYSgiUE82NTRTVSIsMyk7CiAgICAgICAgcHJ6ZXN5bGthIHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5OwogICAgICAgIHAxPWEuVHdvcnpQcnplc3lsa2UoMSwiTm93YWsiLCJXaWxkYSIsInN0b2wiLDEwLDUwMCk7CiAgICAgICAgcDI9YS5Ud29yelByemVzeWxrZSgyLCJLb3dhbHNraSIsIldpbGRhIiwia3J6ZXNsbyIsNSwxMDApOwogICAgICAgIHAzPWEuVHdvcnpQcnplc3lsa2UoMywiSW5uZSIsIldpbGRhIiwia29tcHV0ZXIiLDIwLDUwMDApOwogICAgICAgIHA0PWEuVHdvcnpQcnplc3lsa2UoNCwiWmVub24iLCJHcnVud2FsZCIsIm1vbml0b3IiLDMsMTAwMCk7CiAgICAgICAgcDU9YS5Ud29yelByemVzeWxrZSg1LCJKYW4iLCJHcnVud2FsZCIsIm1vbml0b3IiLDMsNjYpOwogICAgICAgIHA2PWEuVHdvcnpQcnplc3lsa2UoNiwiS3J6eXNpZWsiLCJXaWxkYSIsIm1vbml0b3IiLDMsMzAwMCk7CiAgICAgICAgcDc9YS5Ud29yelByemVzeWxrZSg3LCJBZGFtIiwiR3J1bndhbGQiLCJtb25pdG9yIiwzLDEwMTApOwogICAgICAgIHA4PWEuVHdvcnpQcnplc3lsa2UoNywiQWRhbSIsIldpbGRhIiwibW9uaXRvciIsMywxMDEwKTsKIAogICAgICAgIGNvdXQ8PCJXeXN3aWV0bGFtIG5hIHBvY3phdGVrIjw8ZW5kbDsKICAgICAgICBhLld5c3dpZXRsKCk7CiAgICAgICAgY291dDw8InBha3VqZSAxIjw8ZW5kbDsKICAgICAgICBhLldMT19aKHAxKTsKICAgICAgICBjb3V0PDwicGFrdWplIDIiPDxlbmRsOwogICAgICAgIGEuV0xPX1oocDIpOwogICAgICAgIGNvdXQ8PCJwYWt1amUgMyI8PGVuZGw7CiAgICAgICAgYS5XTE9fWihwMyk7CiAgICAgICAgY291dDw8InBha3VqZSA0Ijw8ZW5kbDsKICAgICAgICBhLldMT19aKHA0KTsKICAgICAgICBjb3V0PDwid3lzd2lldGxhbSI8PGVuZGw7CiAgICAgICAgYS5XeXN3aWV0bCgpOwogICAgICAgIGNvdXQ8PCJ3eXBha293dWplIDIiPDxlbmRsOwogICAgICAgIGEuV1lMX1AoMik7CiAgICAgICAgYS5XeXN3aWV0bCgpOwogICAgICAgIGNvdXQ8PCJXeXBha293dWplIHdpbGRlIjw8ZW5kbDsKICAgICAgICBhLldZTF9EKCJXaWxkYSIpOwogICAgICAgIGEuV3lzd2lldGwoKTsKIAogICAgICAgIGNvdXQ8PGVuZGw8PGVuZGw7CiAgICAgICAgcmV0dXJuIDA7Cn0=