DSA Assignment - Election Manager
By Julian Heng (19473701)

.
├── data                                            | The directory containing input files
│   ├── AirportDist1.0.csv                          | Airport distance file
│   ├── Dist2.csv                                   | Combined distance file 2
│   ├── Dist.csv                                    | Combined distance file 1
│   ├── ElectDist1.0.csv                            | Division distance file 1
│   ├── ElectDist1.1.csv                            | division distance file 2
│   ├── HouseCandidates.csv                         | House candidates file
│   ├── HouseStateFirstPrefsByPollingPlace-ACT.csv  | Preference files
│   ├── HouseStateFirstPrefsByPollingPlace-NSW.csv  | .
│   ├── HouseStateFirstPrefsByPollingPlace-NT.csv   | .
│   ├── HouseStateFirstPrefsByPollingPlace-QLD.csv  | .
│   ├── HouseStateFirstPrefsByPollingPlace-SA.csv   | .
│   ├── HouseStateFirstPrefsByPollingPlace-TAS.csv  | .
│   ├── HouseStateFirstPrefsByPollingPlace-VIC.csv  | .
│   ├── HouseStateFirstPrefsByPollingPlace-WA.csv   | .
│   └── HouseStateFirstPrefsCombine.csv             | Combined preference file
├── docs                                            | The directory containing documentation files
│   ├── AssignmentDoc.aux                           |
│   ├── AssignmentDoc.log                           |
│   ├── AssignmentDoc.pdf                           | Report in pdf
│   ├── AssignmentDoc.tex                           | Report source
│   ├── AssignmentDoc.toc                           |
│   ├── UML.png                                     | The UML Diagram
│   └── UML.xml                                     | The UML Source [draw.io]
├── README                                          |
└── src                                             | The directory containing all of the source files
    ├── Commons.java                                | Provide common/generic utilities and functions
    ├── Driver.java                                 | Main class that combines all the ElectionManager classes
    ├── DSAGraph.java                               | A Graph used in Election Manager
    ├── DSAHashTable.java                           | A Hash Table used in Election Manager
    ├── DSALinkedList.java                          | A Linked List used is most classes
    ├── DSAMaxHeap.java                             | A Max Heap used in Election Manager
    ├── DSAMergeSort.java                           | A Merge Sort class used in Election Manager
    ├── DSAMinHeap.java                             | A Min Heap used in the Graph
    ├── ElectionManagerInit.java                    | Process filed for the Election Manager
    ├── ElectionManager.java                        | Manage the election
    ├── FileIO.java                                 | Provide file input and output methods
    ├── HousePreference.java                        | Contains information for preference
    ├── Input.java                                  | Provide inputing methods
    ├── Location.java                               | Contains information for locations
    ├── Makefile                                    | A Make file
    ├── Menu.java                                   | Provide a Menu object to use
    ├── Nominee.java                                | Contains information for nominees/candidates
    ├── testCommons.java                            | Test files
    ├── testDSAGraph.java                           | .
    ├── testDSAHashTable.java                       | .
    ├── testDSALinkedList.java                      | .
    ├── testDSAMaxHeap.java                         | .
    ├── testDSAMergeSort.java                       | .
    ├── testDSAMinHeap.java                         | .
    ├── testHarnessCommons.java                     | .
    ├── testHousePreference.java                    | .
    ├── testLocation.java                           | .
    ├── testNominee.java                            | .
    ├── testTrip.java                               | .
    ├── testVoteStats.java                          | .
    ├── Trip.java                                   | Contains information in between locations
    └── VoteStats.java                              | Contains information for votes in divisions

TO MAKE THE PROGRAM:
  $ cd src
  $ javac *.java

TO RUN TESTS:
  $ cd src
  $ make run_test
  $ # You can also run them individually

TO USE THE PROGRAM
  $ java Driver -d [Distance file] -c [House candidates file] [House preference file]