In this article, we will write a menu-driven program to implement the Voting System. The program must contain the following properties:
- Cast votes.
- Display the count of votes of each candidate.
- Display the name of the candidate who has the most votes.
Approach: Follow the steps below to solve the problem:
- Provide the following options to the person who is accessing as shown below:
- Vote for your favorite Candidate.
- Check the number of votes of each Candidate.
- Check the candidate who is leading and then Exit.
- The user chooses one of the options.
- If the user chooses 1, then the list of candidates is displayed and the user can now choose from this list of candidates.
- If the user chooses 2, then the list of candidates along with their current number of votes is displayed.
- If the user chooses 3, the name of the candidate with the maximum number of votes is displayed. If there is more than one candidate with maximum votes, display an error message stating “No winner”.
- This program continues until the user chooses 0 to exit().
Below is the implementation of the above approach:
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;
} |
Output: