Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3. #include<vector>
  4. #include<string>
  5. #include<regex>
  6. #include<conio.h>
  7. using namespace std;
  8. struct mieszkancy {
  9. string numerU;
  10. string imie;
  11. string nazwisko;
  12. string email;
  13. string plec;
  14. string IP;
  15. int rozmiar;
  16. string lek;
  17. string poezja;
  18. };
  19.  
  20. int main()
  21. {
  22. fstream plik;
  23. plik.open("zad2.csv", ios::in);
  24. vector<mieszkancy>wektor;
  25. while (true) {
  26. mieszkancy dane;
  27. int liczba;
  28. string srednik = ";";
  29. getline(plik, dane.numerU, ';');
  30. getline(plik, dane.imie, ';');
  31. getline(plik, dane.nazwisko, ';');
  32. getline(plik, dane.email, ';');
  33. getline(plik, dane.plec, ';');
  34. getline(plik, dane.IP, ';');
  35. plik >> liczba;
  36. dane.rozmiar=liczba;
  37. getline(plik, srednik, ';');
  38. getline(plik, dane.lek, ';');
  39. getline(plik, dane.poezja );
  40. std::regex pattern("[0-9]{3}-[0-9]{2}-[0-9]{4}"); //regex
  41. if (!plik) break; //wczytanie calej linijki tekstu
  42. if (plik.good())
  43. {
  44. if (regex_match(dane.numerU, pattern)) //warunek regexa, jesli git dodaje dane
  45. {
  46. wektor.push_back(dane);
  47. }
  48. }
  49. }
  50. plik.close();
  51. // OBLICZANIE SREDNIEJ
  52. float srednia = 0;
  53. for (auto itr = wektor.begin(); itr != wektor.end(); itr++) {
  54. srednia = srednia + (*itr).rozmiar;
  55. }
  56. cout << "Sredni rozmiar butow wynosi: " << srednia / wektor.size() << endl;
  57.  
  58.  
  59. vector < pair<int, int>>max;
  60. vector<pair<int, int>>min;
  61. //OBLICZENIE MAX 5
  62. for (int j = 0; j < wektor.size(); j++) {
  63. pair<int, int>a = pair<int, int>(wektor[j].rozmiar, j);
  64. max.push_back(a);
  65. }
  66. sort(max.begin(), max.end());
  67. std::reverse(max.begin(), max.end());
  68. cout << "Lista osob z najwiekszym rozmiarem top 5 : " << endl;
  69. for (int a = 0; a <5; a++) { //tutaj robimy 5 dla "top 5 rozmiarow"!
  70. int indeks = max[a].second;
  71. cout << a + 1 << ") " << wektor[a].email << ": " << wektor[indeks].rozmiar << endl;
  72. }
  73.  
  74.  
  75. //OBLICZENIE MIN 5
  76. for (int k = 0; k < wektor.size(); k++) {
  77. pair<int, int>b = pair<int, int>(wektor[k].rozmiar, k);
  78. min.push_back(b);
  79. }
  80. sort(min.begin(), min.end());
  81.  
  82. cout << endl;
  83. cout << "Lista osob z najmneiejszym rozmiarem top 5: " << endl;
  84. for (int b = 0; b < 5; b++) {
  85. int indeks = min[b].second;
  86. cout <<b+1<<") "<< wektor[b].email << ": " << wektor[indeks].rozmiar << endl;
  87. }
  88.  
  89. _getch();
  90. return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement