Facebook
From Commodious Hamerkop, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 215
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <sstream>
  5. #include <cstdlib>
  6. #include <stdlib.h>
  7. using namespace std;
  8. struct bankomaty
  9. {
  10.    string numer;
  11.    int region;
  12.    string miejscowosc;
  13.    int czydziala;
  14.    int dziesiatki;
  15.    int dwudziestki;
  16.    int piecdziesiatki;
  17.    int setki;
  18.    int dwusetki;
  19. };
  20. void lokujPamiec1D(bankomaty*&tab, int n)
  21. {
  22.     tab=new bankomaty[n];
  23. }
  24. void usunTablice1D(bankomaty *&tab)
  25. {
  26.     delete [] tab;
  27. }
  28. void wyswietl1D(bankomaty* tab, int n)
  29. {
  30.     for(int i=0; i<n; i++)
  31.     {
  32.  
  33.         cout<<"Numer: "<<tab[i].numer<<endl;
  34.         cout<<"Region: "<<tab[i].region<<endl;
  35.         cout<<"Miejscowosc: "<<tab[i].miejscowosc<<endl;
  36.         cout<<"Czy dziala: ";
  37.         if(tab[i].czydziala==1)
  38.         {
  39.             cout<<"Tak."<<endl;
  40.         }
  41.         else if(tab[i].czydziala==0)
  42.         {
  43.             cout<<"Nie."<<endl;
  44.         }
  45.         cout<<"Ilosc dziesiatek: "<<tab[i].dziesiatki<<endl;
  46.         cout<<"Ilosc dwudzistek: "<<tab[i].dwudziestki<<endl;
  47.         cout<<"Ilosc piecdziesiatek: "<<tab[i].piecdziesiatki<<endl;
  48.         cout<<"Ilosc setek: "<<tab[i].setki<<endl;
  49.         cout<<"Ilosc dwusetek: "<<tab[i].dwusetki<<endl;
  50.     }
  51. }
  52. void wypelnijTablice1D(bankomaty *tab, string numer, string region,  string miejscowosc, string czydziala, string dziesiatki,string dwudziestki,string piecdziesiatki,string setki,string dwusetki, int ktory)
  53. {
  54.     tab[ktory].numer=numer;
  55.     tab[ktory].region=atof(region.c_str());
  56.     tab[ktory].miejscowosc=miejscowosc;
  57.     tab[ktory].czydziala=atof(czydziala.c_str());
  58.     tab[ktory].dziesiatki=atof(dziesiatki.c_str());
  59.     tab[ktory].dwudziestki=atof(dwudziestki.c_str());
  60.     tab[ktory].piecdziesiatki=atof(piecdziesiatki.c_str());
  61.     tab[ktory].setki=atof(setki.c_str());
  62.     tab[ktory].dwusetki=atof(dwusetki.c_str());
  63. }
  64. void wczytywanie(bankomaty *tab,string sciezka, string linia, int &liczbabankomatow,int sredniawyplat,char srednik)
  65. {
  66.  
  67.  
  68.     ifstream plik;
  69.  
  70.     sciezka="dane.csv";
  71.  
  72.     plik.open(sciezka);
  73.     plik >> liczbabankomatow;
  74.     lokujPamiec1D(tab,liczbabankomatow);
  75.  
  76.     for (int i = 0; i < 8; i++)
  77.         plik >> srednik;
  78.  
  79.     plik >> sredniawyplat;
  80.     for(int i=0;i<8;i++)
  81.         plik >> srednik;
  82.     string temp_miejscowosc;
  83.     string temp_region,temp_czydziala,temp_dziesiatki,temp_dwudziestki,temp_piecdziesiatki,temp_setki,temp_dwusetki;
  84.     string temp_numer;
  85.     for(int i=0; i<liczbabankomatow; i++)
  86.     {
  87.         plik>>linia;
  88.         istringstream ss(linia);
  89.         getline(ss, temp_numer, ';');
  90.         getline(ss, temp_region, ';');
  91.         getline(ss, temp_miejscowosc, ';');
  92.         getline(ss, temp_czydziala, ';');
  93.         getline(ss, temp_dziesiatki, ';');
  94.         getline(ss, temp_dwudziestki, ';');
  95.         getline(ss, temp_piecdziesiatki, ';');
  96.         getline(ss, temp_setki, ';');
  97.         getline(ss, temp_dwusetki);
  98.         wypelnijTablice1D(tab,temp_numer,temp_region,temp_miejscowosc,temp_czydziala,temp_dziesiatki,temp_dwudziestki,temp_piecdziesiatki,temp_setki,temp_dwusetki,i);
  99.     }
  100.     wyswietl1D(tab,liczbabankomatow);
  101.     plik.close();
  102. }
  103. void podzialFlagaFrancuska(bankomaty *tab, int n)
  104. {
  105.     int i=-1,j=0,k=n;
  106.         while(j<k)
  107.     {
  108.         if(tab[j].region%3==0)
  109.         {
  110.             i+=1;
  111.             swap(tab[i], tab[j]);
  112.             j+=1;
  113.         }
  114.         else if(tab[j].region%3==1)
  115.         {
  116.             j+=1;
  117.         }
  118.         else
  119.         {
  120.             k-=1;
  121.             swap(tab[k], tab[j]);
  122.         }
  123.     }
  124. }
  125. void zadanie1(bankomaty *tab, int liczbabankomatow)
  126. {
  127.     //podzialFlagaFrancuska(tab,liczbabankomatow);
  128.     wyswietl1D(tab,liczbabankomatow);
  129. }
  130.  
  131. int main()
  132. {
  133.     bankomaty *tab;
  134.     string sciezka,linia;
  135.     int liczbabankomatow,sredniawyplat;
  136.     char srednik;
  137.     wczytywanie(tab,sciezka,linia,liczbabankomatow,sredniawyplat,srednik);
  138.     // dotad dziala i mammy zmeinne//
  139.     //zadanie1(tab,liczbabankomatow);
  140.     podzialFlagaFrancuska(tab,liczbabankomatow);
  141.     wyswietl1D(tab,liczbabankomatow);
  142.     return 0;
  143. }
  144.