Programa controlado por menú para el sistema de votación

En este artículo, escribiremos un programa basado en menús para implementar el Sistema de Votación. El programa debe contener las siguientes propiedades:

  • Emitir votos.
  • Muestra el conteo de votos de cada candidato.
  • Muestra el nombre del candidato que tiene más votos.

Enfoque: siga los pasos a continuación para resolver el problema:

  1. Proporcione las siguientes opciones a la persona que está accediendo como se muestra a continuación:
    • Vota por tu Candidato favorito.
    • Consultar el número de votos de cada Candidato.
    • Marque el candidato que lidera y luego Salir .
  2. El usuario elige una de las opciones.
  3. Si el usuario elige 1, se muestra la lista de candidatos y ahora el usuario puede elegir de esta lista de candidatos.
  4. Si el usuario elige 2, se muestra la lista de candidatos junto con su número actual de votos.
  5. Si el usuario elige 3, se muestra el nombre del candidato con el máximo número de votos. Si hay más de un candidato con el máximo de votos, muestra un mensaje de error que dice «No hay ganador».
  6. Este programa continúa hasta que el usuario elige 0 para salir() .

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
  
// Driver Code
int main()
{
    int choice, i, N;
  
    // Stores the names of candidates
    vector<string> candidates
        = { "A", "B", "C", "D", "E" };
    N = candidates.size();
  
    // Stores the votes of candidates
    vector<int> votes(N);
    do {
        cout << "\n1. Vote for your "
             << "favorite Candidate.\n";
        cout << "2. Check the number "
             << "of votes of each "
                "Candidate.\n";
        cout << "3. Check the candidate "
             << "who is leading.\n";
        cout << "0. Exit\n";
  
        // Take input of options
        cout << "Enter Your choice: ";
        cin >> choice;
        cout << "\n";
  
        // Switch Statement
        switch (choice) {
  
        case 1: {
            int candidatechoice;
  
            // Display the names of
            // all the candidates
            for (i = 0; i < N; i++)
                cout << i + 1 << "."
                     << candidates[i]
                     << "\n";
  
            cout << "Choose your candidate: ";
  
            // Taking user's vote
            cin >> candidatechoice;
            cout << "\n";
  
            // Update the vote of the
            // chosen candidate
            votes[candidatechoice - 1]++;
            break;
        }
        case 2: {
  
            // Display the name and votes
            // of each
            // candidate
            for (i = 0; i < N; i++)
                cout << i + 1 << "."
                     << candidates[i] << " "
                     << votes[i] << "\n";
            break;
        }
        case 3: {
            int mx = 0;
            string winner;
  
            // Find the candidate with
            // maximum votes
            for (int i = 0; i < N; i++)
                if (votes[i] > mx) {
                    mx = votes[i];
                    winner = candidates[i];
                }
            int flag = 0;
  
            // Check whether there are
            // more than one candidates
            // with maximum votes
            for (int i = 0; i < N; i
                   
                if (votes[i] == mx
                    && winner != candidates[i]) {
                flag = 1;
                break;
                }
            if (!flag)
                cout << "The current winner is "
                 << winner    << ".\n";
            else
                cout << "No clear winner\n";
        }
        default:
            "Select a correct option";
        }
    } while (choice != 0);
  
    return 0;
}

Producción:

Publicación traducida automáticamente

Artículo escrito por jagroopofficial y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *