A console-based Student Management System built in C++, demonstrating practical use of core Data Structures — linked lists, stacks, and queues — alongside modular OOP design.
- Add Students — Store Roll Number, Name, Department, Semester, CGPA, and Contact Number
- Display Records — View all enrolled students in a formatted list
- Search — Locate a student instantly by Roll Number (Linear Search)
- Delete Records — Remove a student from the active database
- Undo Delete — Restore the most recently deleted student (Stack-powered)
- Registration Queue — Add pending students to a queue and enrol them sequentially (Queue-powered)
- Sort Students — View the list sorted numerically by Roll Number (Bubble Sort)
| Structure | Purpose |
|---|---|
| Singly Linked List | Primary dynamic database — scales without fixed-size limits |
| Stack (LIFO) | Powers the Undo Delete feature |
| Queue (FIFO) | Handles the Registration Queue in arrival order |
| Vector + Bubble Sort | Temporary sorted view without disrupting the main list |
- Language: C++17
- Paradigm: Object-Oriented Programming + Data Structures
- Build: GNU Make / CMake
- Compiler: GCC / G++ (any modern C++ compiler)
Student-Management-System/
├── include/
│ ├── Student.h # Student class and linked list Node definition
│ └── StudentSystem.h # StudentSystem class declaration
├── src/
│ ├── main.cpp # Entry point and interactive menu
│ └── StudentSystem.cpp # Full implementation (add, delete, sort, search, etc.)
├── build/ # Compiled output (git-ignored)
├── Makefile # Build via `make`
├── CMakeLists.txt # Build via CMake
└── README.md
Clone the repository
git clone https://github.com/alphaxt/Student-Management-System.git
cd Student-Management-SystemBuild with Make
make
./build/StudentAppBuild with CMake
cmake -B build -S .
cmake --build build
./build/StudentAppBuild manually with g++
g++ -std=c++17 -Iinclude -o build/StudentApp src/main.cpp src/StudentSystem.cpp
./build/StudentApp- File handling (
<fstream>) to persist records across sessions - Input validation to handle non-numeric entries gracefully
- Binary Search Tree for O(log n) student lookup
- Multi-department filtering and reporting
This project does not currently include a license file. To open-source it, add an MIT License.
Developed by Muhammad Danish