CS304 Object Oriented Programming Assignment 1 Solution Spring 2013

Problem Statement:

Consider the present voting situation of Pakistan in which lots of people get deprived off their right to cast the vote. Reasons may include:

  1. A large number of people live abroad so it is not possible for them to come to Pakistan just to cast their vote.
  2. People who have domicile of some “abc” city but have been living in some “xyz” city, usually don’t move to their hometowns to cast the vote.
  3. Patients in hospitals, old people, and disable persons who are unable to go to the polling stations can not cast their vote.

Now, Suppose you are working in a software company as a manager, and you are given a task from Election Commission of Pakistan to develop an “E-Voting” system both for national citizens and overseas citizens to cast their vote so that it could remove the distance barriers, facilitate the old people, disable people, and patients etc. This will increase the voting ratio of the country.


Overview of E-Voting System:


E-Voting system will handle two types of voters- National voters and Overseas voters. Each voter will cast vote against two voting categories- one for Provisional Assembly and one for National Assembly.

To get registered with Election Commission, the system will provide a registration form to the citizen to fill in. The citizen will enter his/her particulars (CNIC#, Name, finger print etc…) and will submit this filled form to the system. The form will be evaluated by the Validation component of the system. This component will contain an electronic database of all citizens (National, and Overseas) of Pakistan with their Name, CNIC#, finger prints etc. It will check for duplication or invalidity of the citizen’s information. If information is valid, the component will display a message to the citizen that he/she has become a registered voter with Election Commission of Pakistan. The system will assign voter ID and password to the voter. The system will store voter’s information in its database “Voter’s Record”.

On the day of Election, voter will be provided a login form to enter voter ID, password, and fingerprint. Voter’s information will be checked by the system. The system will ensure that this is a registered voter and this person has not cast the vote yet. The system will show a virtual ballot paper (form) to the voter. The virtual ballot paper will consist of signs of different candidates contesting in the election in voter’s particular constituency. The virtual paper will also consist of two types of voting categories-one for Provisional Assembly and one for National Assembly. The system will prompt the voter to choose the signs from the virtual ballot paper by touch screen against each category. The voter will choose any sign and the system will ask for confirmation of the selected choice (sign). The system will show a message to the voter that your vote has been cast successfully. The system will update voter’s information so that this person could not vote again. At the end of Polling, the system will count the votes and announce the result to the Election Commission.

The tasks you have to do are:

  1. Extract the main objects (entities) for this system.
  2. Find the necessary attributes and functions that need to be associated with each object.
  3. Identify the relationships between these objects.
  4. Construct a final comprehensive Class diagram showing all objects and their relationships along with their attributes and functions.


Important things to consider: 


  1. As happens in real world that everyone visualizes a problem in a different way so the solutions of all students may vary based upon their own thinking, not taken from any source.
  2. You have to use standard UML notations for objects, classes, and their associations.



  1. You have to use all concepts studied so far like abstraction, encapsulation, inheritance, association, generalization, and specialization wherever applicable.

Solution Idea:

[Image: ksqj4.png]