Advertisement
Guest User

Untitled

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