MSc
(Software Engineering)
CS613:
C++ & Object Oriented Programming Project.
Electronic voting is an
issue that has received much attention in Ireland in the past year. Your task
is to design and implement (in C++) a software system that will handle electronic
voting in an election similar to the Irish electoral system. The Irish
electoral system uses a system of proportional representation as outlined at http://www.voy.com/12949/9.html. An
example of how proportional representation operates may be found at http://www.voy.com/12949/11.html.
Your software system should
allow elections to take place in several constituencies. Each constituency has
a number of election candidates associated with it where each candidate can
belong to one constituency and one political party. Each constituency has an
allocated number of positions (seats) that may be filled by the elected
candidates. Your electoral process should allocate seats to the available
candidates until all seats in the constituency have been filled. Candidates are
elected according to the system of proportional representation as described at
the URL provided above.
The combined result of all
these constituencies generates the overall election result determining what
political party obtain the most number of seats and hence win the election.
Your system should allow an
election to be set up by generating ballot papers for each constituency, take
in votes for each candidate (first preference, second preference, etc),
determine who has been elected and transfer surplus votes to candidates that
have not been elected. This process continues until the number of candidates
elected in a constituency equals the number of seats available in the
constituency.
Your system should generate
statistics about the election such as the number of vote’s cast, the number of
1st preferences, 2nd preferences etc, for each candidate and for
each party, both at a constituency and at a national level. An example of the type of data that should
be available can be seen at http://wwa.rte.ie/election2002/constit04.html (No graphics necessary!). Information about
candidates elected and eliminated on the 1st count, 2nd
count etc should also be available.
Your implementation should
include a substantial testing module (e.g. incorporating random casting of
votes) that demonstrates that your electronic voting system works correctly. Marks
will be allocated for this test module. It should be possible to run your
electoral system using this module to test the system. It should also be
possible to run your electoral system by obtaining data from the user (e.g.
votes) and files (constituencies and candidates).
Deadline: 9.30am Monday 7th
October 2002. 10% will be deducted for each day that the project is late unless
you have been granted permission to submit the project at a later date.
Project code and
documentation (a document explaining how you have designed you system,
assumptions you have made and limitations, if there are any) should be emailed
from your smsc mail account to Rosemary.Monahan@may.ie
with the subject title MSc Project Submission.
Marks will be awarded for
code documentation (including code comments) and use of object oriented
techniques as discussed in lectures. Project submissions that do not compile
will result in a mark of 0%. Therefore, it is better to submit a simple system
that does something that a complicated system that achieves nothing.
It is permitted to work in
pairs on the project as long as you indicate so on your submission. If you do
work together please be aware that the project will be marked harder as if two
people are working on a project, twice as much work should be achieved.
Plagiarism will result in a mark of 0%.
Best of Luck!
Rosemary.