Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

#include #include #include #include #include #include #include #include using namespace std;const string filename = votes.txt;const int maxCandidates = 8;struct Candidate{ string name = ; size_t

#include #include #include #include #include #include #include #include using namespace std;const string filename = "votes.txt";const int maxCandidates = 8;struct Candidate{ string name = ""; size_t votes = 0; double percent = 0.0;};int main(){ ifstream inps(filename); assert(inps); array candidates; size_t nCandidates = 0; while (inps.good() && nCandidates < maxCandidates) { string name; inps >> name; size_t votes; inps >> votes; candidates[nCandidates].name = name; candidates[nCandidates].votes = votes; nCandidates++; } if (nCandidates > 0) { size_t namefieldwidth = 12; size_t maxvotes = 0; size_t maxidx = 0; size_t totalvotes = 0; for (size_t idx = 0; idx < nCandidates; idx++) { totalvotes += candidates[idx].votes; if (candidates[idx].votes > maxvotes) { maxvotes = candidates[idx].votes; maxidx = idx; } } size_t namefieldwith = 16; size_t votesfieldwidth = 16; size_t percentfieldwidth = 16; if (totalvotes > 0) { for (size_t idx = 0; idx < nCandidates; idx++) candidates[idx].percent = 100.0 * candidates[idx].votes / static_cast(totalvotes); } cout << fixed << setprecision(2);

cout << left << setw(namefieldwidth) << "Candidate" << ' ' << right << setw(votesfieldwidth) << "Votes Received" << ' ' << right << setw(percentfieldwidth) << setfill(' ') << "% of Total Votes " << endl << endl; for (size_t idx = 0; idx < nCandidates; ++idx) cout << left << setw(namefieldwidth) << candidates[idx].name << ' ' << right << setw(votesfieldwidth) << candidates[idx].votes << ' ' << right << setw(percentfieldwidth) << setfill(' ') << candidates[idx].percent << endl; size_t totalvotesfieldwidth = namefieldwidth + votesfieldwidth + 1; cout << setw(totalvotesfieldwidth) << totalvotes << endl << endl; cout << "The winner of the Election is " << candidates[maxidx].name << endl; } return 0;}

Modify the attached file to detect and display multiple candidates with the same number of votes: multiple winners, multiple candidates with the second highest number of votes, multiple candidates with the third highest number of votes, and so on.

example:

Suppose the candidates are A,B,C,D,E,F and G and their votes are:

A 100

B 200

C 200

D 400

E 100

F 400

G 300

Then your program should display,

A Fourth Place

B Third Place

C Third Place

D First Place

F First Place

G Second Place

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Financial management theory and practice

Authors: Eugene F. Brigham and Michael C. Ehrhardt

12th Edition

978-0030243998, 30243998, 324422695, 978-0324422696

Students also viewed these Programming questions

Question

Best descibe insider threats

Answered: 1 week ago