# uzaam07/student-management-system architecture

> Architecture diagram of the GitHub repository uzaam07/student-management-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/uzaam07/student-management-system
- Repository: https://github.com/uzaam07/student-management-system

## Overview

This is a menu-driven C++ student-record application. Users enter through the console menus to add, find, display, modify, or delete records, and can request individual or class reports. Student records hold subject marks and derived percentage, grade, and CGPA; the database keeps up to 100 records in an in-memory array. The implementation is concentrated in one source file. The graph reflects that file and README; it does not imply persistence or other future-improvement features.

Main entry points: [`student.cpp`](https://github.com/uzaam07/student-management-system/blob/main/student.cpp) (StudentDatabase)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Console interface"]
  node_menus["Interactive menus<br/>[student.cpp]"]
end

subgraph group_records["Student records"]
  node_database["StudentDatabase<br/>[student.cpp]"]
  node_record_store[("In-memory records<br/>[student.cpp]")]
  node_student["Student details<br/>[student.cpp]"]
end

subgraph group_results["Results and reports"]
  node_calculations["Grade and CGPA<br/>[student.cpp]"]
  node_student_report["Student report<br/>[student.cpp]"]
  node_class_report["Class report<br/>[student.cpp]"]
end

node_user(("User"))

node_user -->|"chooses options"| node_menus
node_menus -->|"dispatches operations"| node_database
node_database -->|"manages records"| node_record_store
node_database -->|"reads or updates"| node_student
node_student -->|"calculates results"| node_calculations
node_database -->|"displays by roll number"| node_student_report
node_student_report -->|"renders details"| node_student
node_menus -->|"requests report"| node_class_report
node_class_report -->|"summarizes records"| node_record_store

click node_menus "https://github.com/uzaam07/student-management-system/blob/main/student.cpp"
click node_database "https://github.com/uzaam07/student-management-system/blob/main/student.cpp"
click node_record_store "https://github.com/uzaam07/student-management-system/blob/main/student.cpp"
click node_student "https://github.com/uzaam07/student-management-system/blob/main/student.cpp"
click node_calculations "https://github.com/uzaam07/student-management-system/blob/main/student.cpp"
click node_student_report "https://github.com/uzaam07/student-management-system/blob/main/student.cpp"
click node_class_report "https://github.com/uzaam07/student-management-system/blob/main/student.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_menus,node_user toneBlue
class node_database,node_record_store,node_student toneAmber
class node_calculations,node_student_report,node_class_report toneMint
```

## Components

### Console interface

- [Interactive menus](https://github.com/uzaam07/student-management-system/blob/main/student.cpp): `student.cpp`

### Student records

- [StudentDatabase](https://github.com/uzaam07/student-management-system/blob/main/student.cpp): `student.cpp`
- [In-memory records](https://github.com/uzaam07/student-management-system/blob/main/student.cpp): `student.cpp`
- [Student details](https://github.com/uzaam07/student-management-system/blob/main/student.cpp): `student.cpp`

### Results and reports

- [Grade and CGPA](https://github.com/uzaam07/student-management-system/blob/main/student.cpp): `student.cpp`
- [Student report](https://github.com/uzaam07/student-management-system/blob/main/student.cpp): `student.cpp`
- [Class report](https://github.com/uzaam07/student-management-system/blob/main/student.cpp): `student.cpp`

### Other components

- **User**

## Connections

- User → Interactive menus: chooses options (evidence: `student.cpp`)
- Interactive menus → StudentDatabase: dispatches operations (evidence: `student.cpp`)
- StudentDatabase → In-memory records: manages records (evidence: `student.cpp`)
- StudentDatabase → Student details: reads or updates (evidence: `student.cpp`)
- Student details → Grade and CGPA: calculates results (evidence: `student.cpp`)
- StudentDatabase → Student report: displays by roll number (evidence: `student.cpp`)
- Student report → Student details: renders details (evidence: `student.cpp`)
- Interactive menus → Class report: requests report (evidence: `student.cpp`)
- Class report → In-memory records: summarizes records (evidence: `student.cpp`)
