I have done a voting processing previously for our staff to vote for things (vote for the best Halloween costume, etc.)
The form allows them to vote on the list of options. I use a Radio button element if I want to to ensure they can only select one option or a checkbox element if they can select multiples. I even use HTML in the options for the voting (with the Halloween costumes, it includes an image of the costume). This form triggers a Workflow when submitted. The Workflow verifies that the person submitting the vote hasn't voted previously, and a few other validity checks (i.e. can't vote for yourself). If the vote failed, it emails the employee to notify them. If the vote succeeded, it records it to a database table.
Then I have a Database View that pulls the records from the voting, but does an aggregation with tallies and percentages.
Another process in LFForms (with the submit button hidden) does a lookup of the database view and adds some visual elements to display as a graph/chart.