Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<fstream>
- #include<vector>
- #include<string>
- #include<regex>
- #include<conio.h>
- using namespace std;
- struct mieszkancy {
- string numerU;
- string imie;
- string nazwisko;
- string email;
- string plec;
- string IP;
- int rozmiar;
- string lek;
- string poezja;
- };
- int main()
- {
- fstream plik;
- plik.open("zad2.csv", ios::in);
- vector<mieszkancy>wektor;
- while (true) {
- mieszkancy dane;
- int liczba;
- string srednik = ";";
- getline(plik, dane.numerU, ';');
- getline(plik, dane.imie, ';');
- getline(plik, dane.nazwisko, ';');
- getline(plik, dane.email, ';');
- getline(plik, dane.plec, ';');
- getline(plik, dane.IP, ';');
- plik >> liczba;
- dane.rozmiar=liczba;
- getline(plik, srednik, ';');
- getline(plik, dane.lek, ';');
- getline(plik, dane.poezja );
- std::regex pattern("[0-9]{3}-[0-9]{2}-[0-9]{4}"); //regex
- if (!plik) break; //wczytanie calej linijki tekstu
- if (plik.good())
- {
- if (regex_match(dane.numerU, pattern)) //warunek regexa, jesli git dodaje dane
- {
- wektor.push_back(dane);
- }
- }
- }
- plik.close();
- // OBLICZANIE SREDNIEJ
- float srednia = 0;
- for (auto itr = wektor.begin(); itr != wektor.end(); itr++) {
- srednia = srednia + (*itr).rozmiar;
- }
- cout << "Sredni rozmiar butow wynosi: " << srednia / wektor.size() << endl;
- vector < pair<int, int>>max;
- vector<pair<int, int>>min;
- //OBLICZENIE MAX 5
- for (int j = 0; j < wektor.size(); j++) {
- pair<int, int>a = pair<int, int>(wektor[j].rozmiar, j);
- max.push_back(a);
- }
- sort(max.begin(), max.end());
- std::reverse(max.begin(), max.end());
- cout << "Lista osob z najwiekszym rozmiarem top 5 : " << endl;
- for (int a = 0; a <5; a++) { //tutaj robimy 5 dla "top 5 rozmiarow"!
- int indeks = max[a].second;
- cout << a + 1 << ") " << wektor[a].email << ": " << wektor[indeks].rozmiar << endl;
- }
- //OBLICZENIE MIN 5
- for (int k = 0; k < wektor.size(); k++) {
- pair<int, int>b = pair<int, int>(wektor[k].rozmiar, k);
- min.push_back(b);
- }
- sort(min.begin(), min.end());
- cout << endl;
- cout << "Lista osob z najmneiejszym rozmiarem top 5: " << endl;
- for (int b = 0; b < 5; b++) {
- int indeks = min[b].second;
- cout <<b+1<<") "<< wektor[b].email << ": " << wektor[indeks].rozmiar << endl;
- }
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement