Advertisement
LinosiK

Untitled

Jan 11th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. struct Prezydent {
  9. string imie;
  10. string nazwisko;
  11. unsigned int liczba_glosow;
  12. };
  13.  
  14. vector<Prezydent> wczytajPrezydentow() {
  15. ifstream plik {"prezydenci.txt"};
  16. vector<Prezydent> prezydenci {};
  17.  
  18. while (plik) {
  19. Prezydent prezydent{};
  20.  
  21. plik >> prezydent.imie;
  22. plik >> prezydent.nazwisko;
  23. plik >> prezydent.liczba_glosow;
  24.  
  25. if (!prezydent.imie.empty() && !prezydent.nazwisko.empty())
  26. prezydenci.push_back(prezydent);
  27. }
  28.  
  29. return prezydenci;
  30. }
  31.  
  32. void zapiszPrezydentow(vector<Prezydent> prezydenci) {
  33. ofstream plik {"prezydenci.txt"};
  34. for (Prezydent p : prezydenci) {
  35. plik << p.imie << " " << p.nazwisko << " " << p.liczba_glosow << endl;
  36. }
  37. }
  38. void wyswietlWyniki(vector<Prezydent> prezydenci) {
  39. for (unsigned int i = 0; i < prezydenci.size(); i++) {
  40. cout << i+1 << ") " <<
  41. prezydenci[i].imie << "\t" <<
  42. prezydenci[i].nazwisko << "\t" <<
  43. prezydenci[i].liczba_glosow << endl;
  44. }
  45. //int wszystkie_glosy[suma];
  46. }
  47.  
  48. void glosowanie() {
  49. int wybor;
  50.  
  51. vector<Prezydent> prezydenci = wczytajPrezydentow();
  52. wyswietlWyniki(prezydenci);
  53.  
  54. unsigned int idPrezydenta = 0;
  55. while (idPrezydenta == 0 || idPrezydenta >= prezydenci.size() + 1) {
  56. cout << "Wybor: ";
  57. cin >> idPrezydenta;
  58. }
  59. int suma = 0;
  60. for (int i = 0; i < prezydenci.size(); i++) {
  61. suma += prezydenci[i].liczba_glosow;
  62. }
  63. Prezydent &p = prezydenci[idPrezydenta-1];
  64. p.liczba_glosow++;
  65.  
  66. cout << "Dodano glos dla prezydenta " << p.imie << " " << p.nazwisko << endl;
  67. cout << "W sumie oddano " << suma << " glosow"<<endl;
  68.  
  69. zapiszPrezydentow(prezydenci);
  70. cout << "Chcesz oddac ponowny glos?"<<endl;
  71. cout << "1- Tak" << endl;
  72. cout << "2- Nie" << endl;
  73. cout << "Twoj wybor: ";
  74. cin >> wybor;
  75. if(wybor == 1){
  76. glosowanie();
  77. }
  78. else {
  79. float GlosyWProcentach;
  80. for(int i = 0; i<prezydenci.size(); i++){
  81.  
  82. GlosyWProcentach = (prezydenci[i].liczba_glosow / suma )* 100.0;
  83. cout << "Prezydent " << p.imie << " " << p.nazwisko << " uzyskal " << GlosyWProcentach << " % glosow" << endl;
  84. }
  85.  
  86. }
  87.  
  88. }
  89.  
  90.  
  91.  
  92. unsigned int menu() {
  93. cout << "Witaj w symulatorze przeprowadzania wyborow prezydenckich" << endl;
  94. cout << "1 - Zaglosuj" << endl;
  95. cout << "2 - Wyniki" << endl;
  96. cout << "3 - Zakoncz program" << endl;
  97.  
  98. unsigned int choice;
  99. while (choice == 0 || choice > 3) {
  100. cout << "Wybor: ";
  101. cin >> choice;
  102. }
  103.  
  104. return choice;
  105. }
  106.  
  107. int main() {
  108. switch (menu()) {
  109. case 1:
  110. cout << "Wybrales glosowanie" << endl;
  111. glosowanie();
  112. break;
  113.  
  114. case 2:
  115. cout << "Wyswietlanie wynikow" << endl;
  116. wyswietlWyniki(wczytajPrezydentow());
  117. break;
  118.  
  119. case 3:
  120. cout << "Wybrales koniec programu" << endl;
  121. break;
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement