Advertisement
LinosiK

Untitled

Jan 11th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.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. 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. Prezydent najwieksza1 , najwieksza2 ;
  91. for (int index = 0; index < prezydenci.size(); index ++){
  92. if ( najwieksza1.liczba_glosow <= prezydenci[index].liczba_glosow){
  93. najwieksza2 = najwieksza1;
  94. najwieksza1 = prezydenci[index];
  95. } else if (najwieksza2.liczba_glosow < prezydenci[index].liczba_glosow){
  96. najwieksza2 = prezydenci[index];
  97.  
  98. }
  99. }
  100. cout << najwieksza1.liczba_glosow << endl;
  101. cout << najwieksza2.liczba_glosow << endl;
  102.  
  103. }
  104. }
  105.  
  106. }
  107. }
  108.  
  109.  
  110. unsigned int menu() {
  111. cout << "Witaj w symulatorze przeprowadzania wyborow prezydenckich" << endl;
  112. cout << "1 - Zaglosuj" << endl;
  113. cout << "2 - Wyniki" << endl;
  114. cout << "3 - Zakoncz program" << endl;
  115.  
  116. unsigned int choice;
  117. while (choice == 0 || choice > 3) {
  118. cout << "Wybor: ";
  119. cin >> choice;
  120. }
  121.  
  122. return choice;
  123. }
  124.  
  125. int main() {
  126. switch (menu()) {
  127. case 1:
  128. cout << "Wybrales glosowanie" << endl;
  129. glosowanie();
  130. break;
  131.  
  132. case 2:
  133. cout << "Wyswietlanie wynikow" << endl;
  134. wyswietlWyniki(wczytajPrezydentow());
  135. break;
  136.  
  137. case 3:
  138. cout << "Wybrales koniec programu" << endl;
  139. break;
  140. }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement