Advertisement
LinosiK

Untitled

Jan 11th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 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 = 0;
  12. double GlosyWProcentach = 0;
  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. float GlosyWProcentach;
  81. for(int i = 0; i<prezydenci.size(); i++){
  82. prezydenci[i].GlosyWProcentach = (prezydenci[i].liczba_glosow / suma )* 100.0;
  83. //cout << "Prezydent " << prezydenci[i].imie << " " << prezydenci[i].nazwisko << " uzyskal " << prezydenci[i].GlosyWProcentach << " % glosow" << endl;
  84. }
  85. for(int i = 0; i<prezydenci.size(); i++){
  86. if(prezydenci[i].GlosyWProcentach > 50){
  87. cout << " Wybory wygrywa " << prezydenci[i].imie << " " << prezydenci[i].nazwisko << endl;
  88. }
  89. else {
  90.  
  91. }
  92. }
  93. }
  94.  
  95. }
  96.  
  97.  
  98.  
  99. unsigned int menu() {
  100. cout << "Witaj w symulatorze przeprowadzania wyborow prezydenckich" << endl;
  101. cout << "1 - Zaglosuj" << endl;
  102. cout << "2 - Wyniki" << endl;
  103. cout << "3 - Zakoncz program" << endl;
  104.  
  105. unsigned int choice;
  106. while (choice == 0 || choice > 3) {
  107. cout << "Wybor: ";
  108. cin >> choice;
  109. }
  110.  
  111. return choice;
  112. }
  113.  
  114. int main() {
  115. switch (menu()) {
  116. case 1:
  117. cout << "Wybrales glosowanie" << endl;
  118. glosowanie();
  119. break;
  120.  
  121. case 2:
  122. cout << "Wyswietlanie wynikow" << endl;
  123. wyswietlWyniki(wczytajPrezydentow());
  124. break;
  125.  
  126. case 3:
  127. cout << "Wybrales koniec programu" << endl;
  128. break;
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement