مشروع: إنشاء برنامج لإدارة المهام باستخدام ++C: دليل المبتدئين خطوة بخطوة

إدارة المهام هي واحدة من أهم مهارات تنظيم الوقت التي يمكن أن تحسن إنتاجيتك. في هذا المشروع، سنتناول كيفية إنشاء برنامج بسيط لإدارة المهام باستخدام لغة البرمجة ++C، والذي سيتيح للمستخدم إمكانية إضافة المهام، عرضها، وحذفها بكل سهولة ويسر. هذا البرنامج يُعد مثالًا عمليًا للمبتدئين الراغبين في تعلم أساسيات البرمجة باستخدام لغة ++C. من خلال هذا البرنامج، سيتمكن المستخدم من تنظيم مهامه اليومية بطريقة بسيطة وفعّالة. سنتعرف أيضًا على كيفية استخدام هياكل البيانات والدوال لتنفيذ وظائف مختلفة داخل البرنامج، مما يساعد على تحسين مهارات البرمجة لدى المبتدئين.

مكونات البرنامج:

البرنامج يحتوي على ثلاثة وظائف أساسية:
إضافة مهمة جديدة.
عرض المهام الحالية.
حذف مهمة.
شرح الكود البرمجي لإدارة المهام في ++C:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// تعريف هيكل البيانات للمهمة
struct Task {
    string name;      // اسم المهمة
    bool completed;    // حالة المهمة (مكتملة أو غير مكتملة)
};
// دالة لإضافة مهمة جديدة
void addTask(vector<Task>& tasks, const string& taskName) {
    Task newTask = {taskName, false}; // إنشاء مهمة جديدة مع تعيين الحالة إلى غير مكتملة
    tasks.push_back(newTask);          // إضافة المهمة إلى قائمة المهام
}
// دالة لعرض المهام
void displayTasks(const vector<Task>& tasks) {
    if (tasks.empty()) {
        cout << "No tasks available." << endl// إذا كانت القائمة فارغة
    } else {
        cout << "Current tasks:" << endl;
        for (int i = 0; i < tasks.size(); ++i) {
            // عرض كل مهمة مع حالتها
            cout << i + 1 << ". " << tasks[i].name << " - " << (tasks[i].completed ? "Completed" : "Not Completed") << endl;
        }
    }
}
// دالة لحذف مهمة
void deleteTask(vector<Task>& tasks, int index) {
    if (index < 1 || index > tasks.size()) {
        cout << "Task not found." << endl// إذا كان الرقم المدخل غير صحيح
    } else {
        tasks.erase(tasks.begin() + index - 1);  // حذف المهمة بناءً على الرقم المدخل
        cout << "Task deleted successfully." << endl;
    }
}
int main()  {
    vector<Task> tasks;  // قائمة لتخزين المهام
    int choice;
    string taskName;
    while (true) {
        cout << "\nTask Management using C++" << endl;
        cout << "1. Add Task" << endl;
        cout << "2. Display Tasks" << endl;
        cout << "3. Delete Task" << endl;
        cout << "4. Exit" << endl;
        cout << "Your choice: ";
        cin >> choice;
        cin.ignore() // لتجنب مشاكل مع الأسطر بعد إدخال الاختيار
        switch (choice) {
            case 1:
                cout << "Enter task name: ";
                getline(cin, taskName);  // قراءة اسم المهمة
                addTask(tasks, taskName);  // إضافة المهمة
                break ;
            case 2:
                displayTasks(tasks);  // عرض المهام
                break ;
            case 3:
                int index;
                cout << "Enter the task number to delete: " ;
                cin >> index;  // إدخال رقم المهمة
                deleteTask(tasks, index);  // حذف المهمة
                break ;
            case 4:
                cout << "Goodbye!" << endl// الخروج من البرنامج
                return 0;
            default:
                cout << "Invalid choice, try again." << endl // إذا كان الاختيار غير صحيح
        }
    }
                return 0;
}

شرح الكود البرمجي:

هيكل البيانات Task:
Task هو هيكل بيانات يحتوي على متغيرين:
name (اسم المهمة).
completed (حالة المهمة: مكتملة أو غير مكتملة).
يتم استخدام هذا الهيكل لتنظيم المهام التي سيقوم المستخدم بإضافتها.
دالة addTask:
وظيفة هذه الدالة: إضافة مهمة جديدة إلى قائمة المهام.
تقوم الدالة بإنشاء مهمة جديدة باستخدام اسم المهمة المدخل، ثم تضيفها إلى قائمة المهام باستخدام push_back من vector.
دالة displayTasks:
وظيفة هذه الدالة: عرض المهام الموجودة في القائمة.
إذا كانت القائمة فارغة، ستظهر رسالة تفيد بعدم وجود مهام. إذا كانت هناك مهام، سيتم عرض كل مهمة مع حالتها (مكتملة أو غير مكتملة).
دالة deleteTask:
وظيفة هذه الدالة: حذف مهمة من القائمة بناءً على الرقم المدخل.
إذا كان الرقم المدخل غير صحيح، يتم عرض رسالة تُفيد بأن المهمة غير موجودة. وإذا كان الرقم صحيحًا، يتم حذف المهمة باستخدام erase.
الدالة main:
هي الدالة الرئيسية التي تحتوي على واجهة المستخدم.
تعرض للمستخدم الخيارات المتاحة: إضافة مهمة، عرض المهام، حذف مهمة، أو الخروج من البرنامج.
يتم تنفيذ الوظائف بناءً على اختيار المستخدم باستخدام حلقة تكرار (while).
فوائد البرنامج:
تحسين الإنتاجية: من خلال استخدام هذا البرنامج، يمكن للمستخدم تنظيم مهامه اليومية بكل سهولة.
تعلم البرمجة بلغة ++C: يساعدك هذا البرنامج على تحسين مهاراتك البرمجية باستخدام لغة ++C وتعلم كيفية التعامل مع هياكل البيانات و الدوال.
قابلية التخصيص: يمكن إضافة ميزات إضافية بسهولة، مثل إضافة حالة جديدة للمهمة أو تخصيص واجهة المستخدم.

الخلاصة:

في ختام هذا المشروع، تعلمنا كيفية بناء برنامج بسيط لإدارة المهام باستخدام لغة البرمجة ++C. من خلال هذه التجربة، اكتسبنا فهمًا أعمق للبرمجة باستخدام هياكل البيانات مثل vector و struct، بالإضافة إلى كيفية كتابة دوال لإضافة المهام، عرضها، وحذفها. كما ساعدنا هذا البرنامج في تحسين مهاراتنا البرمجية وفهم كيفية التعامل مع المدخلات والمخرجات والتكرار في البرمجة. هذا المشروع أتاح لنا الفرصة لتطبيق المفاهيم الأساسية للبرمجة في سياق عملي ومفيد، مما يعزز من قدرتنا على تطوير برامج أكثر تعقيدًا في المستقبل.

يمكن تحسين هذا البرنامج بإضافة ميزات إضافية مثل إمكانية تحديث المهام أو إضافة تصنيف لها، مما يتيح للمستخدم تنظيم مهامه بطريقة أفضل وأكثر مرونة. كما يمكن توسيع نطاق المشروع ليشمل وظائف إضافية مثل تحديد تواريخ المهام أو إرسال إشعارات للتذكير، مما يساهم في تحسين الإنتاجية.
البرمجة ليست مجرد كتابة أكواد، بل هي عملية تعلم مستمر وتجربة وتطوير مهارات جديدة. كل مشروع برمجي هو فرصة لتعلم شيء جديد وإيجاد حلول مبتكرة للمشاكل. استمر في التحدي والتعلم، ولا تتردد في استكشاف المزيد من الأفكار والمشاريع التي ستساعدك على تعزيز مهاراتك البرمجية وتنمية تفكيرك التحليلي.
تعليقات