Advertisement
LinosiK

Untitled

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