Maison  >  Article  >  développement back-end  >  Comment écrire un système de vote simple en C++ ?

Comment écrire un système de vote simple en C++ ?

王林
王林original
2023-11-04 11:24:111114parcourir

Comment écrire un système de vote simple en C++ ?

Comment écrire un système de vote simple en C++ ?

Avec le développement de la technologie, les systèmes de vote sont devenus un outil largement utilisé dans la société moderne. Les systèmes de vote peuvent être utilisés dans de nombreux scénarios tels que les élections, les enquêtes et la prise de décision. Cet article va vous montrer comment écrire un système de vote simple en C++.

Tout d'abord, nous devons clarifier les fonctions de base du système de vote. Un système de vote simple doit avoir les caractéristiques suivantes :

  1. Électeur inscrit : le système doit permettre aux utilisateurs de s'inscrire en tant qu'électeurs afin de pouvoir participer au vote.
  2. Créer des sondages : le système devrait permettre aux administrateurs de créer des sondages et d'attribuer un identifiant unique à chaque sondage.
  3. Options de publication : pour chaque sondage, les administrateurs devraient pouvoir ajouter des options de candidats.
  4. Se rendre au scrutin : les électeurs inscrits devraient pouvoir sélectionner un sondage spécifique et voter dessus.
  5. Compter les résultats du vote : le système devrait être capable de compter les résultats de chaque vote et de les classer en fonction des résultats.

Une fois les fonctions de base ci-dessus claires, nous pouvons commencer à écrire le système de vote.

Tout d'abord, nous devons créer une classe Voter pour représenter les électeurs. Cette classe doit contenir des informations de base telles que le nom, l'âge, le sexe, etc. de l'électeur, et disposer de méthodes pour s'inscrire et déterminer si l'électeur a voté.

Ensuite, nous créons une classe Vote pour représenter le vote. Cette classe doit contenir le nom du sondage, l'ID, les options du candidat et les variables permettant de stocker le nombre de votes pour chaque option. La classe Vote doit également disposer de méthodes permettant d’ajouter des options de candidats et de compter les résultats du vote.

Ensuite, nous créons une classe VotingSystem pour gérer le système de vote. Cette classe doit contenir un vecteur qui stocke tous les votes et fournir des méthodes pour enregistrer les électeurs, créer des votes, ajouter des options de candidat, voter et comptabiliser les résultats des votes.

Enfin, nous interagissons avec les utilisateurs via une interface console simple pour mettre en œuvre les fonctions du système de vote.

Voici un exemple simple :

#include <iostream>
#include <vector>

using namespace std;

// Voter class
class Voter {
    string name;
    int age;
    string gender;
    bool voted;

public:
    Voter(string n, int a, string g) {
        name = n;
        age = a;
        gender = g;
        voted = false;
    }

    bool hasVoted() {
        return voted;
    }

    void setVoted() {
        voted = true;
    }
};

// Vote class
class Vote {
    string name;
    int id;
    vector<string> candidates;
    vector<int> votes;

public:
    Vote(string n, int i) {
        name = n;
        id = i;
    }

    void addCandidate(string candidate) {
        candidates.push_back(candidate);
        votes.push_back(0);
    }

    void castVote(int candidateIndex) {
        votes[candidateIndex]++;
    }

    void printResults() {
        for (int i = 0; i < candidates.size(); i++) {
            cout << candidates[i] << ": " << votes[i] << " votes" << endl;
        }
    }
};

// VotingSystem class
class VotingSystem {
    vector<Voter> voters;
    vector<Vote> votes;

public:
    void registerVoter(string name, int age, string gender) {
        Voter voter(name, age, gender);
        voters.push_back(voter);
    }

    void createVote(string name, int id) {
        Vote vote(name, id);
        votes.push_back(vote);
    }

    void addCandidate(int voteIndex, string candidate) {
        votes[voteIndex].addCandidate(candidate);
    }

    void castVote(int voteIndex, int candidateIndex, int voterIndex) {
        if (!voters[voterIndex].hasVoted()) {
            votes[voteIndex].castVote(candidateIndex);
            voters[voterIndex].setVoted();
        }
    }

    void printVoteResults(int voteIndex) {
        votes[voteIndex].printResults();
    }
};

int main() {
    VotingSystem votingSystem;

    // Register voters
    votingSystem.registerVoter("Alice", 25, "female");
    votingSystem.registerVoter("Bob", 30, "male");
    votingSystem.registerVoter("Charlie", 35, "male");

    // Create vote
    votingSystem.createVote("Favorite color", 1);

    // Add candidates
    votingSystem.addCandidate(0, "Red");
    votingSystem.addCandidate(0, "Blue");
    votingSystem.addCandidate(0, "Green");

    // Cast votes
    votingSystem.castVote(0, 0, 0);
    votingSystem.castVote(0, 1, 1);
    votingSystem.castVote(0, 0, 2);

    // Print vote results
    votingSystem.printVoteResults(0);

    return 0;
}

Ce qui précède est un exemple de mise en œuvre d'un système de vote simple. En créant les classes Voter, Vote et VotingSystem, nous pouvons implémenter des fonctions telles que l'inscription des électeurs, la création de votes, l'ajout d'options de candidat, le vote et le décompte des résultats du vote. Dans la fonction principale, nous montrons comment utiliser ces fonctions pour créer et gérer un sondage. Le résultat affichera le nombre de votes pour chaque option candidate.

Grâce à l'exemple ci-dessus, nous pouvons voir comment écrire un système de vote simple en utilisant le langage C++. Bien sûr, il y a encore beaucoup de choses à améliorer dans cet exemple, comme l'ajout de la vérification de l'identité des électeurs, la prise en charge de plusieurs votes en même temps et d'autres fonctions. Mais cet exemple est suffisant pour vous aider à comprendre comment commencer à écrire un système de vote simple.

J'espère que cet article pourra vous être utile et j'aimerais que vous puissiez écrire un système de vote parfait !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn