Advertisement
LinosiK

Untitled

Jan 27th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 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. }
  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. float 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 << 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. return;
  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. }
  84. for(int i = 0; i<prezydenci.size(); i++){
  85. if(prezydenci[i].GlosyWProcentach > 50){
  86. cout << endl;
  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. for (unsigned int i = 0; i < 1; i++) {
  101. cout << i+1 << ") " <<
  102. najwieksza1.imie << "\t" <<
  103. najwieksza1.nazwisko << "\t" <<
  104. najwieksza1.liczba_glosow << endl;
  105. cout << 2 << ") " <<
  106. najwieksza2.imie << "\t" <<
  107. najwieksza2.nazwisko << "\t" <<
  108. najwieksza2.liczba_glosow << endl;
  109.  
  110. }
  111. while(true){
  112. int wybor;
  113. cout << "Ostateczne glosowanie: ";
  114. cin >> wybor;
  115. if (wybor == 1){
  116. cout << "wygrywa: "<< najwieksza1.imie << " " << najwieksza1.nazwisko << endl;
  117. return;
  118. }
  119. else if(wybor == 2){
  120. cout << "wygrywa: " << najwieksza2.imie << " " << najwieksza2.nazwisko << endl; //tu daj dane kandydatów
  121. return;
  122. }
  123. else {
  124. cout << "wybierz kandydata!";
  125. }
  126. }
  127. }
  128. }
  129. //
  130. // int wybor2;
  131. // cout << "wybierz kandydata z dogrywki" << endl;
  132. // cout << "Twoj wybor: ";
  133. // cin >> idPrezydenta;
  134. // Prezydent &p = prezydenci[idPrezydenta-1];
  135. // p.liczba_glosow++;
  136. //
  137. // cout << "Dodano glos dla prezydenta " << p.imie << " " << p.nazwisko << endl;
  138.  
  139.  
  140.  
  141. }
  142. }
  143.  
  144.  
  145. unsigned int menu() {
  146. cout << "Witaj w symulatorze przeprowadzania wyborow prezydenckich" << endl;
  147. cout << "1 - Zaglosuj" << endl;
  148. cout << "2 - Wyniki" << endl;
  149. cout << "3 - Zakoncz program" << endl;
  150.  
  151. unsigned int choice;
  152. while (choice == 0 || choice > 3) {
  153. cout << "Wybor: ";
  154. cin >> choice;
  155. }
  156.  
  157. return choice;
  158. }
  159.  
  160. int main() {
  161. switch (menu()) {
  162. case 1:
  163. cout << endl;
  164. cout << "Wybrales glosowanie" << endl;
  165. glosowanie();
  166. break;
  167.  
  168. case 2:
  169. cout << "Wyswietlanie wynikow" << endl;
  170. wyswietlWyniki(wczytajPrezydentow());
  171. break;
  172.  
  173. case 3:
  174. cout << "Wybrales koniec programu" << endl;
  175. break;
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement