Use object-oriented programming and modular design to perform the single source Dijkstra's shortest path algorithm given an input file.