Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <vector>
- using namespace std;
- struct Prezydent {
- string imie = "";
- string nazwisko = "";
- unsigned int liczba_glosow = 0;
- double GlosyWProcentach = 0;
- };
- vector<Prezydent> wczytajPrezydentow() {
- ifstream plik ("prezydenci.txt");
- vector<Prezydent> prezydenci {};
- while (plik) {
- Prezydent prezydent{};
- plik >> prezydent.imie;
- plik >> prezydent.nazwisko;
- plik >> prezydent.liczba_glosow;
- if (!prezydent.imie.empty() && !prezydent.nazwisko.empty())
- prezydenci.push_back(prezydent);
- }
- return prezydenci;
- }
- void zapiszPrezydentow(vector<Prezydent> prezydenci) {
- ofstream plik {"prezydenci.txt"};
- for (Prezydent p : prezydenci) {
- plik << p.imie << " " << p.nazwisko << " " << p.liczba_glosow << endl;
- }
- }
- void wyswietlWyniki(vector<Prezydent> prezydenci) {
- for (unsigned int i = 0; i < prezydenci.size(); i++) {
- cout << i+1 << ") " <<
- prezydenci[i].imie << "\t" <<
- prezydenci[i].nazwisko << "\t" <<
- prezydenci[i].liczba_glosow << endl;
- }
- }
- void glosowanie() {
- int wybor;
- vector<Prezydent> prezydenci = wczytajPrezydentow();
- wyswietlWyniki(prezydenci);
- unsigned int idPrezydenta = 0;
- while (idPrezydenta == 0 || idPrezydenta >= prezydenci.size() + 1) {
- cout << "Wybor: ";
- cin >> idPrezydenta;
- }
- float suma = 0;
- for (int i = 0; i < prezydenci.size(); i++) {
- suma += prezydenci[i].liczba_glosow;
- }
- Prezydent &p = prezydenci[idPrezydenta-1];
- p.liczba_glosow++;
- cout << "Dodano glos dla prezydenta " << p.imie << " " << p.nazwisko << endl;
- cout << endl;
- zapiszPrezydentow(prezydenci);
- cout << "Chcesz oddac ponowny glos?"<<endl;
- cout << "1- Tak" << endl;
- cout << "2- Nie" << endl;
- cout << "Twoj wybor: ";
- cin >> wybor;
- if(wybor == 1){
- glosowanie();
- return;
- }
- else {
- float GlosyWProcentach;
- for(int i = 0; i<prezydenci.size(); i++){
- prezydenci[i].GlosyWProcentach = (prezydenci[i].liczba_glosow / suma )* 100.0;
- }
- for(int i = 0; i<prezydenci.size(); i++){
- if(prezydenci[i].GlosyWProcentach > 50){
- cout << endl;
- cout << " Wybory wygrywa " << prezydenci[i].imie << " " << prezydenci[i].nazwisko << endl;
- }
- else {
- Prezydent najwieksza1 , najwieksza2 ;
- for (int index = 0; index < prezydenci.size(); index ++){
- if ( najwieksza1.liczba_glosow <= prezydenci[index].liczba_glosow){
- najwieksza2 = najwieksza1;
- najwieksza1 = prezydenci[index];
- } else if (najwieksza2.liczba_glosow < prezydenci[index].liczba_glosow){
- najwieksza2 = prezydenci[index];
- }
- }
- for (unsigned int i = 0; i < 1; i++) {
- cout << i+1 << ") " <<
- najwieksza1.imie << "\t" <<
- najwieksza1.nazwisko << "\t" <<
- najwieksza1.liczba_glosow << endl;
- cout << 2 << ") " <<
- najwieksza2.imie << "\t" <<
- najwieksza2.nazwisko << "\t" <<
- najwieksza2.liczba_glosow << endl;
- }
- while(true){
- int wybor;
- cout << "Ostateczne glosowanie: ";
- cin >> wybor;
- if (wybor == 1){
- cout << "wygrywa: "<< najwieksza1.imie << " " << najwieksza1.nazwisko << endl;
- return;
- }
- else if(wybor == 2){
- cout << "wygrywa: " << najwieksza2.imie << " " << najwieksza2.nazwisko << endl; //tu daj dane kandydatów
- return;
- }
- else {
- cout << "wybierz kandydata!";
- }
- }
- }
- }
- //
- // int wybor2;
- // cout << "wybierz kandydata z dogrywki" << endl;
- // cout << "Twoj wybor: ";
- // cin >> idPrezydenta;
- // Prezydent &p = prezydenci[idPrezydenta-1];
- // p.liczba_glosow++;
- //
- // cout << "Dodano glos dla prezydenta " << p.imie << " " << p.nazwisko << endl;
- }
- }
- unsigned int menu() {
- cout << "Witaj w symulatorze przeprowadzania wyborow prezydenckich" << endl;
- cout << "1 - Zaglosuj" << endl;
- cout << "2 - Wyniki" << endl;
- cout << "3 - Zakoncz program" << endl;
- unsigned int choice;
- while (choice == 0 || choice > 3) {
- cout << "Wybor: ";
- cin >> choice;
- }
- return choice;
- }
- int main() {
- switch (menu()) {
- case 1:
- cout << endl;
- cout << "Wybrales glosowanie" << endl;
- glosowanie();
- break;
- case 2:
- cout << "Wyswietlanie wynikow" << endl;
- wyswietlWyniki(wczytajPrezydentow());
- break;
- case 3:
- cout << "Wybrales koniec programu" << endl;
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement