# lofg-preston-dut/code-practice architecture

> Architecture diagram of the GitHub repository lofg-preston-dut/code-practice, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lofg-preston-dut/code-practice
- Repository: https://github.com/lofg-preston-dut/code-practice

## Overview

This is a coursework and code-practice collection, not one integrated application. Its principal user workflow is to run a standalone console program, provide input, and inspect that program’s result; exercises cover sorting/searching, basic C++ data structures, and student records. The combined Exercise 1 program specifically sorts an entered array and then searches the sorted copy. The README describes the repository’s educational purpose. Sampled sources support these program capabilities, but do not establish shared runtime wiring between the independent files.

Main entry points: [`Sorting Algorithms/BubbleSort.cpp`](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/BubbleSort.cpp) (Bubble sort), [`Sorting Algorithms/HeapSort.cpp`](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/HeapSort.cpp) (Heap sort), [`Sorting Algorithms/InsertionSort.cpp`](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/InsertionSort.cpp) (Insertion sort), [`Sorting Algorithms/MergeSort.cpp`](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/MergeSort.cpp) (Merge sort)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sorting["Sorting Practice"]
  node_sort_bubble["Bubble sort<br/>[BubbleSort.cpp]"]
  node_sort_heap["Heap sort<br/>[HeapSort.cpp]"]
  node_sort_insertion["Insertion sort<br/>[InsertionSort.cpp]"]
  node_sort_merge["Merge sort<br/>[MergeSort.cpp]"]
  node_sort_quick["Quick sort<br/>[QuickSort.cpp]"]
  node_sort_radix["Radix sort<br/>[RadixSort.cpp]"]
  node_sort_selection["Selection sort<br/>[SelectionSort.cpp]"]
  node_sort_shell["Shell sort<br/>[ShellSort.cpp]"]
  node_exercise1["Sort and search<br/>[Exercise1.cpp]"]
end

subgraph group_searching["Searching Practice"]
  node_search_binary["Binary search<br/>[BinarySearch.cpp]"]
  node_search_interpolation["Interpolation search"]
  node_search_sequential["Sequential search"]
end

subgraph group_oop["OOP Coursework"]
  node_complex["Complex numbers<br/>[Problem1.cpp]"]
  node_fraction["Fraction arithmetic<br/>[Problem2.cpp]"]
  node_monomial["Monomial operations<br/>[Problem3.cpp]"]
  node_polynomial["Polynomial operations<br/>[Polynomial.cpp]"]
end

subgraph group_records["Student Records"]
  node_student_list["Student records<br/>[Exercise2.cpp]"]
end

node_user(("Console user"))

node_user -->|"runs and inputs"| node_sort_bubble
node_user -->|"runs and inputs"| node_sort_heap
node_user -->|"runs and inputs"| node_sort_insertion
node_user -->|"runs and inputs"| node_sort_merge
node_user -->|"runs and inputs"| node_sort_quick
node_user -->|"runs and inputs"| node_sort_radix
node_user -->|"runs and inputs"| node_sort_selection
node_user -->|"runs and inputs"| node_sort_shell
node_user -->|"runs and inputs"| node_search_binary
node_user -->|"runs and inputs"| node_search_interpolation
node_user -->|"runs and inputs"| node_search_sequential
node_user -->|"runs and inputs"| node_exercise1
node_user -->|"runs and inputs"| node_complex
node_user -->|"runs and inputs"| node_fraction
node_user -->|"runs and inputs"| node_monomial
node_user -->|"runs and inputs"| node_polynomial
node_user -->|"runs and inputs"| node_student_list

click node_sort_bubble "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/BubbleSort.cpp"
click node_sort_heap "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/HeapSort.cpp"
click node_sort_insertion "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/InsertionSort.cpp"
click node_sort_merge "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/MergeSort.cpp"
click node_sort_quick "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/QuickSort.cpp"
click node_sort_radix "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/RadixSort.cpp"
click node_sort_selection "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/SelectionSort.cpp"
click node_sort_shell "https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/ShellSort.cpp"
click node_search_binary "https://github.com/lofg-preston-dut/code-practice/blob/main/Searching%20Algorithms/BinarySearch.cpp"
click node_search_interpolation "https://github.com/lofg-preston-dut/code-practice/blob/main/Searching%20Algorithms/InterpolationSearch.cpp"
click node_search_sequential "https://github.com/lofg-preston-dut/code-practice/blob/main/Searching%20Algorithms/SequentialSearch.cpp"
click node_exercise1 "https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Exercise%201%3A%20OOP%20Lecture/Exercise1.cpp"
click node_complex "https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter1%3A%20Introduction%20to%20C%2B%2B/Problem1.cpp"
click node_fraction "https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter1%3A%20Introduction%20to%20C%2B%2B/Problem2.cpp"
click node_monomial "https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter1%3A%20Introduction%20to%20C%2B%2B/Problem3.cpp"
click node_polynomial "https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter4%3A%20Operator%20Overloading/Polynomial.cpp"
click node_student_list "https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Exercise%202%3A%20OOP%20Lecture/Exercise2.cpp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sort_bubble,node_sort_heap,node_sort_insertion,node_sort_merge,node_sort_quick,node_sort_radix,node_sort_selection,node_sort_shell,node_exercise1,node_user toneBlue
class node_search_binary,node_search_interpolation,node_search_sequential toneAmber
class node_complex,node_fraction,node_monomial,node_polynomial toneMint
class node_student_list toneRose
```

## Components

### Sorting Practice

- [Bubble sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/BubbleSort.cpp): `Sorting Algorithms/BubbleSort.cpp`
- [Heap sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/HeapSort.cpp): `Sorting Algorithms/HeapSort.cpp`
- [Insertion sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/InsertionSort.cpp): `Sorting Algorithms/InsertionSort.cpp`
- [Merge sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/MergeSort.cpp): `Sorting Algorithms/MergeSort.cpp`
- [Quick sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/QuickSort.cpp): `Sorting Algorithms/QuickSort.cpp`
- [Radix sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/RadixSort.cpp): `Sorting Algorithms/RadixSort.cpp`
- [Selection sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/SelectionSort.cpp): `Sorting Algorithms/SelectionSort.cpp`
- [Shell sort](https://github.com/lofg-preston-dut/code-practice/blob/main/Sorting%20Algorithms/ShellSort.cpp): `Sorting Algorithms/ShellSort.cpp`
- [Sort and search](https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Exercise%201%3A%20OOP%20Lecture/Exercise1.cpp): `OOP Lectures/Exercise 1: OOP Lecture/Exercise1.cpp`

### Searching Practice

- [Binary search](https://github.com/lofg-preston-dut/code-practice/blob/main/Searching%20Algorithms/BinarySearch.cpp): `Searching Algorithms/BinarySearch.cpp`
- [Interpolation search](https://github.com/lofg-preston-dut/code-practice/blob/main/Searching%20Algorithms/InterpolationSearch.cpp): `Searching Algorithms/InterpolationSearch.cpp`
- [Sequential search](https://github.com/lofg-preston-dut/code-practice/blob/main/Searching%20Algorithms/SequentialSearch.cpp): `Searching Algorithms/SequentialSearch.cpp`

### OOP Coursework

- [Complex numbers](https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter1%3A%20Introduction%20to%20C%2B%2B/Problem1.cpp): `OOP Lectures/Chapter1: Introduction to C++/Problem1.cpp`
- [Fraction arithmetic](https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter1%3A%20Introduction%20to%20C%2B%2B/Problem2.cpp): `OOP Lectures/Chapter1: Introduction to C++/Problem2.cpp`
- [Monomial operations](https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter1%3A%20Introduction%20to%20C%2B%2B/Problem3.cpp): `OOP Lectures/Chapter1: Introduction to C++/Problem3.cpp`
- [Polynomial operations](https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Chapter4%3A%20Operator%20Overloading/Polynomial.cpp): `OOP Lectures/Chapter4: Operator Overloading/Polynomial.cpp`

### Student Records

- [Student records](https://github.com/lofg-preston-dut/code-practice/blob/main/OOP%20Lectures/Exercise%202%3A%20OOP%20Lecture/Exercise2.cpp): `OOP Lectures/Exercise 2: OOP Lecture/Exercise2.cpp`

### Other components

- **Console user**

## Connections

- Console user → Bubble sort: runs and inputs
- Console user → Heap sort: runs and inputs
- Console user → Insertion sort: runs and inputs
- Console user → Merge sort: runs and inputs
- Console user → Quick sort: runs and inputs
- Console user → Radix sort: runs and inputs
- Console user → Selection sort: runs and inputs
- Console user → Shell sort: runs and inputs
- Console user → Binary search: runs and inputs
- Console user → Interpolation search: runs and inputs
- Console user → Sequential search: runs and inputs
- Console user → Sort and search: runs and inputs
- Console user → Complex numbers: runs and inputs
- Console user → Fraction arithmetic: runs and inputs
- Console user → Monomial operations: runs and inputs
- Console user → Polynomial operations: runs and inputs
- Console user → Student records: runs and inputs
