This project is a simple To-Do List Application developed in C++ using WinForms GUI and a Binary Search Tree (BST) data structure. The application allows users to manage their tasks with the ability to add, delete, and set priorities for tasks. The tasks are stored and organized based on priority, making it easy to retrieve and display them in sorted order.
- Task Management: Add, delete, and update tasks.
- Priority Management: Assign priorities (1 to 5) to tasks. You can set or change the priority of existing tasks.
- Task Retrieval: Retrieve tasks based on their priority and description.
- Sorted Display: Display all tasks in ascending order of their priority.
- Search: Efficiently search for tasks based on description and priority using a Binary Search Tree.
- C++: The core programming language used for the implementation.
- WinForms: Used for creating the graphical user interface (GUI).
- Binary Search Tree (BST): Used to store tasks and efficiently manage priority-based sorting.
- Dynamic Memory Management: Utilized for dynamically resizing arrays of tasks during retrieval.
- Microsoft Visual Studio with C++/CLI and .NET Framework support.
- Windows OS: Since this is a WinForms-based application, it is designed for Windows.
-
Clone or download the repository:
git clone https://github.com/Ahmedmo-27/todolist-app.git
-
Open the solution file (
.sln
) in Microsoft Visual Studio. -
Build the solution and run the project.
-
The application will open, and you can interact with the to-do list via the graphical interface.
- Add Task: Enter the task description and assign a priority between 1 and 5.
- Delete Task: Select a task to delete by its description and priority.
- Set Task Priority: Change the priority of a task.
- Display Tasks: View all tasks sorted by priority.
-
Adding a Task:
- Enter a task description, e.g., "Buy groceries", and assign a priority, e.g., 3.
-
Displaying Tasks:
- The tasks are displayed in ascending order of priority.
ToDoList.h
: Contains the definition of theTask
,Node
, andToDoList
classes. TheToDoList
class implements the task management functionalities, including adding, deleting, searching, and sorting tasks using a binary search tree.About.h
: Contains theWinForms
implementation for the GUI that provides a simple interface to display information about the application.
If you'd like to contribute to this project, feel free to fork the repository, create a feature branch, and submit a pull request. Please ensure that any changes are well-documented and thoroughly tested.