Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <string>
- #include <stdio.h>
- #include <math.h>
- #include <direct.h>
- using namespace std;
- vector <string> WczytywanieZPliku(string nazwaPliku) //funkcja wczytujaca linijki tekstu z pliku
- {
- string linijka;
- vector <string> linijki;
- fstream myfile(nazwaPliku.c_str());
- if(myfile.is_open())
- {
- while(getline(myfile,linijka))
- {
- linijki.push_back(linijka);
- }
- myfile.close();
- }
- else
- {
- cout<<"Nie mozna otworzyc pliku!"<<endl;
- }
- return linijki;
- }
- vector <string> Segmenty(string linijka) //funkcja dzielaca linijki tekstu na segmenty z poszczegonymi informacjami
- {
- int poczatek=0;
- vector <string> podciagi;
- string segment="";
- for(int i=0;i<=linijka.length();i++)
- {
- if(linijka[i]==';' || i==linijka.length())
- {
- segment=linijka.substr(poczatek,i-poczatek);
- podciagi.push_back(segment);
- poczatek=i+1;
- }
- }
- return podciagi;
- }
- vector <string> WczytanieNaSegmenty(string nazwaPliku) //funkcja zmieniajaca wczytane informacje na wektor z kazda informacja
- {
- vector <string> liczby;
- vector <string> calosc;
- vector <string> linijki=WczytywanieZPliku(nazwaPliku);
- for(int i=0;i<linijki.size();i++)
- {
- liczby=(Segmenty(linijki[i]));
- for (int j=0;j<liczby.size();j++)
- {
- calosc.push_back(liczby[j]);
- }
- }
- return calosc;
- }
- vector <double> SegmentyConfig(string linijka) //funkcja dzielaca linijki tekstu na segmenty i zapisuje je w postaci liczb, ktore beda dzielily na inne dlugi
- {
- int poczatek=0;
- vector <double> podciagi;
- string segment="";
- for(int i=0;i<=linijka.length();i++)
- {
- if(linijka[i]==';' || i==linijka.length())
- {
- segment=linijka.substr(poczatek,i-poczatek);
- podciagi.push_back(stod(segment));
- poczatek=i+1;
- }
- }
- return podciagi;
- }
- vector <double> WczytanieNaSegmentyConfig(string nazwaPliku) //funkcja zmieniajaca wczytany tekst na pojedyncze liczby i zapisujaca je w wektorze
- {
- vector <double> liczby;
- vector <double> calosc;
- vector <string> linijki=WczytywanieZPliku(nazwaPliku);
- for(int i=0;i<linijki.size();i++)
- {
- liczby=(SegmentyConfig(linijki[i]));
- for (int j=0;j<liczby.size();j++)
- {
- calosc.push_back(liczby[j]);
- }
- }
- return calosc;
- }
- vector <double> SortowanaSegmentarycznosc(vector <double> dane) //funkcja sortujaca w kolejnosci rosnacej progi zadluzenia
- {
- vector <double> noweDane;
- for (int i=0; i<dane.size()-1; i++)
- {
- for (int j=0; j<dane.size()-1; j++)
- {
- if (dane[j]>dane[j+1])
- {
- swap(dane[j], dane[j+1]);
- }
- }
- }
- for (int i = 0; i<dane.size(); i++)
- {
- noweDane.push_back(dane[i]);
- }
- return noweDane;
- }
- void PokazWektor(vector <string> dane) //funkcja pogladowa pokazujaca wektor-slowa
- {
- for(int i=0;i<dane.size();i++)
- {
- cout<<"["<<i<<"]: "<<dane[i]<<endl;
- }
- }
- void PokazWektor2(vector <double> dane) //funkcja pogladowa pokazujaca wektor-liczby
- {
- for(int i=0;i<dane.size();i++)
- {
- cout<<"["<<i<<"]: "<<dane[i]<<endl;
- }
- }
- void PokazWektor3(vector <int> dane) //funkcja pogladowa pokazujaca wektor-liczby
- {
- for(int i=0;i<dane.size();i++)
- {
- cout<<"["<<i<<"]: "<<dane[i]<<endl;
- }
- }
- vector <double> WartoscDlugu (vector <string> dane) //funkcja okreslajaca podzial dluznikow na grupy ze wzgledu na zadluzenie
- {
- vector <double> wartosci=SortowanaSegmentarycznosc(WczytanieNaSegmentyConfig("config.txt"));
- vector <double> h;
- for (int i=1;i<dane.size();i++)
- {
- for(int j=4;j<(4+(6*(dane.size())));j+=(6*i))
- {
- if (stod(WczytanieNaSegmenty("nazwiska.txt")[j])<wartosci[0])
- {
- h.push_back(1);
- }
- else if (stod(WczytanieNaSegmenty("nazwiska.txt")[j])>=wartosci[0] && stod(WczytanieNaSegmenty("nazwiska.txt")[j])<wartosci[1])
- {
- h.push_back(2);
- }
- else if (stod(WczytanieNaSegmenty("nazwiska.txt")[j])>=wartosci[1] && stod(WczytanieNaSegmenty("nazwiska.txt")[j])<wartosci[2])
- {
- h.push_back(3);
- }
- else
- {
- h.push_back(4);
- }
- }
- }
- return h;
- }
- vector <string> Nazwiskaa ()
- {
- vector <string> nazwiskaa;
- vector <string> dane=WczytanieNaSegmenty("nazwiska.txt");
- vector <string> dane2=WczytywanieZPliku("nazwiska.txt");
- for(int j=0;j<dane2.size()*6;j+=6)
- {
- nazwiskaa.push_back(dane[j]+" "+dane[j+1]);
- }
- return nazwiskaa;
- }
- vector <string> Mieszkanie ()
- {
- vector <string> mieszkanie;
- vector <string> dane=WczytanieNaSegmenty("nazwiska.txt");
- vector <string> dane2=WczytywanieZPliku("nazwiska.txt");
- for(int j=3;j<dane2.size()*6;j+=6)
- {
- mieszkanie.push_back(dane[j]);
- }
- return mieszkanie;
- }
- vector <string> Data ()
- {
- vector <string> datta;
- vector <string> dane=WczytanieNaSegmenty("nazwiska.txt");
- vector <string> dane2=WczytywanieZPliku("nazwiska.txt");
- for(int j=5;j<dane2.size()*6;j+=6)
- {
- datta.push_back(dane[j]);
- }
- return datta;
- }
- vector <string> Pesel ()
- {
- vector <string> pesel;
- vector <string> dane=WczytanieNaSegmenty("nazwiska.txt");
- vector <string> dane2=WczytywanieZPliku("nazwiska.txt");
- for(int j=2;j<dane2.size()*6;j+=6)
- {
- pesel.push_back(dane[j]);
- }
- return pesel;
- }
- vector <string> Dlug ()
- {
- vector <string> dlug;
- vector <string> dane=WczytanieNaSegmenty("nazwiska.txt");
- vector <string> dane2=WczytywanieZPliku("nazwiska.txt");
- for(int j=4;j<dane2.size()*6;j+=6)
- {
- dlug.push_back(dane[j]);
- }
- return dlug;
- }
- string StworzList(int nr) //funkcja tworzaca list do dluznika
- {
- string pesel=Pesel()[nr];
- string stworzonyList = ((pesel[pesel.size()-2] % 2 == 0) ? "Szanowna Pani " : "Szanowny Panie ") + Nazwiskaa()[nr] + "\n\n" +
- "Uprzejmie informujemy, iz do dnia dzisiejszego nie otrzymalismy oplaty zadluzenia z dnia: " + Data()[nr] +
- ", ktore wynosi: " + Dlug()[nr] + "zl. " +
- "Jesli nie ureguluje " + ((pesel[pesel.size()-2] % 2== 0) ? "Pani" : "Pan") + " powyzszego zobowiazania to " +
- "odsetki beda rosnac, a po roku od momentu otrzymania tego listu sprawa wkroczy na droge sadowa. " + "\n" +
- "Prosimy o jak najszybsze wplacenie zaleglego zobowiazania.";
- return stworzonyList;
- }
- void TworzeniePlikow(string plikGlowny) //funkcja tworzaca pliki z listami do dluznikow zaleznie od progow zadluzenia zapisuje pliki do poszczegolnych folderow
- {
- vector <double> wartosci=SortowanaSegmentarycznosc(WczytanieNaSegmentyConfig("config.txt"));
- vector <string> glowny=WczytywanieZPliku(plikGlowny);
- mkdir("Dluznicy");
- mkdir("Dluznicy/Pierwszy Przedzial");
- mkdir("Dluznicy/Drugi Przedzial");
- mkdir("Dluznicy/Trzeci Przedzial");
- mkdir("Dluznicy/Czwarty Przedzial");
- for(int i=0;i<glowny.size();i++)
- {
- string filename = Nazwiskaa()[i];
- if(WartoscDlugu(glowny)[i]==1)
- {
- ofstream outfile("Dluznicy/Pierwszy Przedzial/"+filename+".txt");
- if(outfile)
- {
- outfile << StworzList(i) << endl;
- }
- else
- {
- cout << "BLAD: nie mozna otworzyc pliku." << endl;
- }
- }
- else if(WartoscDlugu(glowny)[i]==2)
- {
- ofstream outfile("Dluznicy/Drugi Przedzial/"+filename+".txt");
- if(outfile)
- {
- outfile << StworzList(i) << endl;
- }
- else
- {
- cout << "BLAD: nie mozna otworzyc pliku." << endl;
- }
- }
- else if(WartoscDlugu(glowny)[i]==3)
- {
- string filename = Nazwiskaa()[i];
- ofstream outfile("Dluznicy/Trzeci Przedzial/"+filename+".txt");
- if(outfile)
- {
- outfile << StworzList(i) << endl;
- }
- else
- {
- cout << "BLAD: nie mozna otworzyc pliku." << endl;
- }
- }
- else
- {
- ofstream outfile("Dluznicy/Czwarty Przedzial/"+filename+".txt");
- if(outfile)
- {
- outfile << StworzList(i) << endl;
- }
- else
- {
- cout << "BLAD: nie mozna otworzyc pliku." << endl;
- }
- }
- }
- }
- int main()
- {
- TworzeniePlikow("nazwiska.txt");
- cout<<"Pliki zostaly zapisane w folderze /Dluznicy/ w poszczegolnych podfolderach zaleznych od ustaonych progow w pliku /config.txt/"<<"\n"
- <<"Zadanie zrobione przez: Jan Rucinski, Patryk Dyl, Mikolaj Orzechowski";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement