Overview
File Management System is an educational C project that explores and compares multiple file organization methods used to store and manage a computer equipment database efficiently. The goal is to understand how different storage strategies behave in terms of search, updates, reorganization, and performance.
The system supports both variable-length and fixed-length record organizations and integrates an indexing mechanism to improve access speed and scalability.
Architecture
The project is organized into clear modules:
- File Machines: Implementations of different file organizations
- TOV/C (variable-length with overflow)
- LOVC (linked list with variable-length)
- TOVC (variable-length contiguous)
- TOF (fixed-length)
- Operations Layer: Common actions across formats
- Search, insertion, deletion, and reorganization
- Indexing System: Index creation/maintenance for efficient access
- Utilities: Data generation, visualization, and shared helpers
- Queue Structure: Used to support insertion workflows
Key Features
Multiple File Organization Techniques
Implements and compares several real-world storage strategies, highlighting trade-offs between update cost, fragmentation, and access time.
Efficient Search
Search operations include binary search where applicable, improving lookup performance compared to linear scans.
Insert / Delete + Automatic Reorganization
Supports insertion and logical deletion with mechanisms to reorganize files when fragmentation or thresholds require it.
Index Management
Includes an indexed file system, enabling faster access for large datasets and supporting index updates after insertions.
Monitoring & Statistics
Tracks read/write counts and execution time to evaluate performance across different file structures.
My Contribution
I worked on implementing core parts of the system in C, including file operations (search/insert/delete), record handling, and performance/statistics tracking. I also contributed to structuring the project into clean modules and ensuring the menu-driven workflow connects correctly across all file organization methods.
👯 Collaborated with: AbdelAziz Akeb
Outcome
- A complete C-based system demonstrating multiple file organization strategies
- Working operations suite (create, search, insert, delete, reorganize, indexing)
- Clear performance metrics to compare approaches
- A modular codebase suitable for extension and experimentation