Appendix A — System Flowchart¶
This appendix presents the overall system workflow, from input validation to runtime benchmarking and output generation.
System Execution Flow¶
-
Program Start¶
Initialize execution and prepare runtime measurement.
-
Data Reading & Validation¶
Read records from
Input.txtand validate structure using
InputValidator.java. -
Data Storage¶
Store valid records in a custom Linked List implemented in
LinkedList.java. -
Demand Score Calculation¶
Compute demand score based on: - Base score
- Academic level multiplier
- Registration time
- Course ID priorityImplemented in DemandScorer.java.
-
Data Conversion¶
Convert the Linked List into an array to prepare for sorting.
-
Sorting & Benchmarking¶
Apply: - Selection Sort
- Insertion Sort
- Merge Sort
- Quick SortMeasure runtime using Benchmarker.java and Timer.java.
-
Output Generation¶
Write processed results to
Output.txtand generate sorted output files. -
Runtime Summary¶
Display performance comparison and terminate program.
System Flowchart Diagram¶
View Flowchart

Figure: Flowchart illustrating the complete system process for course registration analysis.
Class Responsibility Mapping¶
The following Java classes correspond to the flow stages:
- InputValidator.java → Data validation
- LinkedList.java → Data storage and traversal
- DemandScorer.java → Demand score computation
- Sorting Classes → Algorithm implementation
- Benchmarker.java / Timer.java → Runtime measurement
This modular architecture ensures:
- Clear separation of concerns
- Reusability of components
- Simplified debugging and testing
- Scalability for future enhancements