Modern database management system uses advanced datastructures like B+ Trees, which is closely related, and extension rather, to B-Trees. The motive of this project was to implement the CRUD operations for B Trees and make a practically useful system, applying the knowledge of data structures and algorithms to optimize wherever possible.
Written completely in C language, the menu-driven program helps in tracking expenses of individual users or a family of atmost 4 users. It allows users to add, delete and systematically access expenses. More features like that of getting sorted category-wise total monthly expense, income-expense disparity of family, highest expense day of a family, range-search etc are added and optimized, while inculcating best-practices of programming and input validation at each step. Additionally, the program is integrated with file handling feature to extract data from text files.
- Add New Users with a Unique UserID, username, income, expense and family ID if provided. UserID and familyID can n either be entered by the user or else a new one can be generated by the program. A family is created for every individual so that all the functions that apply to a family can also be used for a user. The records of users are sorted by the program using appropriate Insertion and shifting, everytime a user or expense is added to help in systematic and fast storage and retreival of data.
- Delete or update existing user or family details, all the related field are updated by the program.
- Get categorical expense: Prints the total family expense for the given FamilyID and expense category ( example: Rent, Utility, Grocery, etc. ) and also shows individual contribution of each member of the family to that category in a sorted manner.
- Get individual expense: Prints total individual expense for the month for the given UserID. Also prints the user's expense in each category in a sorted manner.
- Get highest expense day: Tracks all the expenses of the given family and prints the date on which highest amount in spent.
- Income-Expense disparity: For a given family, it prints the total expense of the family. It also prints whether the family's total expense is within the net income of the family and prints the difference between them.
- Range Search: Functionality of range-search is provided, allowing users to retrieve expenses within given dates, or to retrieve expenses of a user within the provided expense id range.