Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The college has several departments. For the purpose of the election, each depar

ID: 3823087 • Letter: T

Question

The college has several departments. For the purpose of the election, each department on each campus manages its own voting process and directly reports the votes received by each candidate to the election committee. Therefore, the same candidate name is received with different number of votes from different departments. Input Keyboard input of candidate-name, department, number-of-votes sets for the candidates. Output Election results in a tabular form and the winner. The election committee wants the output to look as follows (actual names and numbers will depend on the input … the data in this table is only an example) --------------Election Results-------------- Candidate Name Votes Total -------------- ----------- Alice in Wonderland 1,065 Balto 272 Donald Duck 51 Minnie Mouse 349 Pluto 0 Tiger 1,242 Winnie the Pooh 548 Winner: ???, Votes Received by winner: ???? Total votes polled: ???? Processing Create a two-dimensional list for votes. Each entry in the list represents the data that is entered for each candidate so that each entry consists of voting results in the following form: candidateName department numberOfVotesForThisCandidate For example, the votes list may look like: [[Donald, Physics, 23], [Pluto, Nursing, 56], [Doc, Physics, 25], [Pluto, Computer Science, 23], [Tiger, English, 725], The following program needs to be written in python

Explanation / Answer

# pastebin link for code: https://pastebin.com/se69jew9

def getOneCandidateData():
data = []
name = input("Enter candidate name: ")
department = input("Enter department: ")
votes = int(input("Enter votes: "))
return [name, department, votes]

def getVotingdata():
votes = []
while True:
try:
moreVotes = int(input("Add voting data (1. Yes, 2. No?): "))
if (moreVotes != 1 and moreVotes != 2):
print(moreVotes)
print("Enter 1 or 2 only")
continue
elif moreVotes == 1:
votes.append(getOneCandidateData())
else:
return votes
except:
print("Enter 1 or 2 only")
continue

def getElectionResults(voting_data):
voting_count = {}
for data in voting_data:
if data[0] in voting_count:
voting_count[data[0]] += int(data[2])
else:
voting_count[data[0]] = int(data[2])
return voting_count

def getWinner(voting_count):
maxVotes = -1
winner = ""
for candidate in voting_count:
if voting_count[candidate] > maxVotes:
maxVotes = voting_count[candidate]
winner = candidate
return winner

def printElectionResults(voting_count):
winner = getWinner(voting_count)
print(winner)
print("--------------Election Results--------------")
print("Candidate Name Votes Total")
print("-------------- -----------")
for candidate in voting_count:
print(candidate, " ", "{:,}".format(voting_count[candidate]))
print("Winner: ", winner, " Votes Received by winner: ", "{:,}".format(voting_count[winner]))

voting_data = getVotingdata()
print(voting_data)
voting_count = getElectionResults(voting_data)
printElectionResults(voting_count)