Skip to content

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.txt and 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 priority

    Implemented 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 Sort

    Measure runtime using Benchmarker.java and Timer.java.

  • Output Generation

    Write processed results to Output.txt and generate sorted output files.

  • Runtime Summary

    Display performance comparison and terminate program.


System Flowchart Diagram

View Flowchart

System 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