A lightweight student database management system built in C using file-based storage.
This project simulates a simple database system that allows users to manage student records through a command-line interface without using any external database engine.
The goal of this project is to understand the fundamentals behind database systems by implementing data storage and management manually using C.
The application uses structures to represent student records and files to store data permanently.
- Add new students
- Display student records
- Store data permanently using files
- Load existing records
- Menu-based command-line interface
- C Programming Language
- Structures
- File Handling
- Pointers
- Modular Programming
- Git
Mini-Database-System/
├── src/
│ ├── main.c
│ ├── student.c
│ └── student.h
│
├── data/
│ └── students.txt
│
├── README.md
└── .gitignore
The program is divided into modules:
-
main.c- Handles the user menu and program flow.
-
student.h- Defines the student structure and function prototypes.
-
student.c- Implements student management operations and file handling.
-
students.txt- Stores student information permanently.
- Created project structure
- Designed student data model
- Set up Git repository
- Implemented writing and reading data from files
- Added permanent storage system
- Added student creation functionality
- Added student display functionality
- Improved code organization using multiple files
- Improved documentation
- Cleaned project structure
- Prepared the project for future extensions
- How to organize a C project using multiple files
- How structures represent real-world data
- How file handling enables data persistence
- How basic database concepts work internally
- How to manage projects using Git
- Add search functionality
- Add update and delete operations
- Add sorting features
- Replace file storage with SQLite database
- Create a graphical user interface
- Add automated testing
Compile:
gcc src/*.c -o database
Run:
./student_systemCreated by Alaa Zaiter. Developed as a personal project to practice C programming and database concepts.