UNIVERSITY OF GHANA | DEPARTMENT OF COMPUTER SCIENCE | DCIT308: DATA STRUCTURES AND ALGORITHMS 2 | SECOND SEMESTER 2024/2025 | PROJECT 1 (GROUP 13)
Adom Logistics is a regional freight transport company based in Tema that operates a fleet of trucks and delivery vans. It currently manages records manually, resulting in delayed servicing, route mix-ups, and inaccurate delivery logs. Management wants a fully offline software system to track vehicle operations, driver assignments, maintenance schedules, and deliveries. You’ve been hired to develop an in-house Fleet Management and Delivery System using fundamental data structures and algorithms. Your implementation must simulate decisions human dispatchers make. Core Tasks Develop a console-based logistics management system that uses manual implementation of data structures like lists, queues, stacks, trees, maps, and file handling. No external libraries or APIs allowed. Functional Requirements
o Add, remove, and search for trucks/vans. o Each vehicle has: registration number, type, mileage, fuel usage, driver ID, maintenance history. o Use a tree or hash table to organize vehicles by type or mileage.
o Manage a stack or queue of available drivers. o Drivers are assigned based on proximity or experience. o Track driver activity: assigned routes, recent delays, infractions.
o Simulate deliveries using a queue or LinkedList with: Package ID, origin/destination, assigned vehicle/driver, ETA. o Support route updates and rerouting based on package status.
o Use a min-heap or priority queue to flag vehicles needing maintenance soon based on mileage or last service date. o Record the parts replaced and costs in a nested map tied to each vehicle.
o Calculate average fuel use per vehicle and flag outliers. o Implement filtering and custom sorting of vehicles by fuel performance.
o Save all fleet, delivery, driver, and maintenance data in: vehicles.txt, deliveries.txt, drivers.txt, maintenance.txt.
o Implement: Binary search on registration numbers. Insertion/merge/quick sort to organize vehicles by mileage or driver name.
• Command-line interface with input menus and options. • A report that: o Describes your algorithmic choices (with justifications). o Analyzes the time/space complexity of your data access methods. o Reflects on how decisions were modeled algorithmically—not just programmed.