- #include <iostream>
- #include <fstream>
- #include <string>
- #include <sstream>
- #include <cstdlib>
- #include <stdlib.h>
- using namespace std;
- struct bankomaty
- {
- string numer;
- int region;
- string miejscowosc;
- int czydziala;
- int dziesiatki;
- int dwudziestki;
- int piecdziesiatki;
- int setki;
- int dwusetki;
- };
- void lokujPamiec1D(bankomaty*&tab, int n)
- {
- tab=new bankomaty[n];
- }
- void usunTablice1D(bankomaty *&tab)
- {
- delete [] tab;
- }
- void wyswietl1D(bankomaty* tab, int n)
- {
- for(int i=0; i<n; i++)
- {
- cout<<"Numer: "<<tab[i].numer<<endl;
- cout<<"Region: "<<tab[i].region<<endl;
- cout<<"Miejscowosc: "<<tab[i].miejscowosc<<endl;
- cout<<"Czy dziala: ";
- if(tab[i].czydziala==1)
- {
- cout<<"Tak."<<endl;
- }
- else if(tab[i].czydziala==0)
- {
- cout<<"Nie."<<endl;
- }
- cout<<"Ilosc dziesiatek: "<<tab[i].dziesiatki<<endl;
- cout<<"Ilosc dwudzistek: "<<tab[i].dwudziestki<<endl;
- cout<<"Ilosc piecdziesiatek: "<<tab[i].piecdziesiatki<<endl;
- cout<<"Ilosc setek: "<<tab[i].setki<<endl;
- cout<<"Ilosc dwusetek: "<<tab[i].dwusetki<<endl;
- }
- }
- void wypelnijTablice1D(bankomaty *tab, string numer, string region, string miejscowosc, string czydziala, string dziesiatki,string dwudziestki,string piecdziesiatki,string setki,string dwusetki, int ktory)
- {
- tab[ktory].numer=numer;
- tab[ktory].region=atof(region.c_str());
- tab[ktory].miejscowosc=miejscowosc;
- tab[ktory].czydziala=atof(czydziala.c_str());
- tab[ktory].dziesiatki=atof(dziesiatki.c_str());
- tab[ktory].dwudziestki=atof(dwudziestki.c_str());
- tab[ktory].piecdziesiatki=atof(piecdziesiatki.c_str());
- tab[ktory].setki=atof(setki.c_str());
- tab[ktory].dwusetki=atof(dwusetki.c_str());
- }
- void wczytywanie(bankomaty *tab,string sciezka, string linia, int &liczbabankomatow,int sredniawyplat,char srednik)
- {
- ifstream plik;
- sciezka="dane.csv";
- plik.open(sciezka);
- plik >> liczbabankomatow;
- lokujPamiec1D(tab,liczbabankomatow);
- for (int i = 0; i < 8; i++)
- plik >> srednik;
- plik >> sredniawyplat;
- for(int i=0;i<8;i++)
- plik >> srednik;
- string temp_miejscowosc;
- string temp_region,temp_czydziala,temp_dziesiatki,temp_dwudziestki,temp_piecdziesiatki,temp_setki,temp_dwusetki;
- string temp_numer;
- for(int i=0; i<liczbabankomatow; i++)
- {
- plik>>linia;
- istringstream ss(linia);
- getline(ss, temp_numer, ';');
- getline(ss, temp_region, ';');
- getline(ss, temp_miejscowosc, ';');
- getline(ss, temp_czydziala, ';');
- getline(ss, temp_dziesiatki, ';');
- getline(ss, temp_dwudziestki, ';');
- getline(ss, temp_piecdziesiatki, ';');
- getline(ss, temp_setki, ';');
- getline(ss, temp_dwusetki);
- wypelnijTablice1D(tab,temp_numer,temp_region,temp_miejscowosc,temp_czydziala,temp_dziesiatki,temp_dwudziestki,temp_piecdziesiatki,temp_setki,temp_dwusetki,i);
- }
- wyswietl1D(tab,liczbabankomatow);
- plik.close();
- }
- void podzialFlagaFrancuska(bankomaty *tab, int n)
- {
- int i=-1,j=0,k=n;
- while(j<k)
- {
- if(tab[j].region%3==0)
- {
- i+=1;
- swap(tab[i], tab[j]);
- j+=1;
- }
- else if(tab[j].region%3==1)
- {
- j+=1;
- }
- else
- {
- k-=1;
- swap(tab[k], tab[j]);
- }
- }
- }
- void zadanie1(bankomaty *tab, int liczbabankomatow)
- {
- //podzialFlagaFrancuska(tab,liczbabankomatow);
- wyswietl1D(tab,liczbabankomatow);
- }
- int main()
- {
- bankomaty *tab;
- string sciezka,linia;
- int liczbabankomatow,sredniawyplat;
- char srednik;
- wczytywanie(tab,sciezka,linia,liczbabankomatow,sredniawyplat,srednik);
- // dotad dziala i mammy zmeinne//
- //zadanie1(tab,liczbabankomatow);
- podzialFlagaFrancuska(tab,liczbabankomatow);
- wyswietl1D(tab,liczbabankomatow);
- return 0;
- }