The Todo-List Maker is a robust command-line application that builds upon the foundation of the original "Todo-list". This refined version incorporates various optimizations and features, ensuring a streamlined and user-friendly experience.
- Add new Todos.
- Mark Todos as completed.
- Remove Todos.
- Clear and user-friendly interface.
- Transitioned the data type of
id
fromint
tounsigned char
.- Benefit: While the original code supported up to 100 IDs, the
unsigned char
expands this range to 256 but with significantly reduced memory consumption.
- Benefit: While the original code supported up to 100 IDs, the
- Integrated a
std::set
to monitor and manage used IDs.- Benefit: This system ensures IDs remain unique, effectively eliminating potential overlaps and conflicts.
- Implemented the
numberOfIds
constant for controlled testing and debugging purposes.- Benefit: Provides an avenue for controlled tests, particularly when evaluating behaviors near the ID threshold.
- Transitioned from
string
towstring
to cater to a wider range of character sets.- Benefit: This change bolsters the application's versatility, enabling support for multi-byte character sets (MBCS).
- Implemented mechanisms to clear the input buffer post input reception.
- Benefit: This minimizes potential errors stemming from unwanted or residual input data.
- Enhanced the interface to notify users upon reaching the maximum Todo capacity.
- Benefit: Direct feedback enhances the user experience by providing actionable insights.
- Removed the
using namespace std
directive.- Benefit: Reduces namespace pollution and naming conflicts.
- Invalid ID Entry: The system handles non-existent IDs gracefully.
- Max Todos Capacity: Clear feedback is provided upon reaching the Todos limit.
- Input Buffer Handling: Resilience to unintended or residual inputs, ensuring consistent outcomes.
- Code Modularization: Promote readability and maintenance.
- Persistent Storage: Enable list maintenance across sessions.
- Sorting and Searching: Manage large lists with ease.