1. نوع العمل
تطبيق طرفية (Terminal-based Application) سريع وخفيف لإدارة الشؤون المالية الشخصية، مُطور بالكامل بلغة C. يُبرز هذا المشروع التمكن من المفاهيم البرمجية المتقدمة والمنخفضة المستوى (Low-level)، مثل إدارة الذاكرة الديناميكية، التعامل مع هياكل البيانات (Structs)، وعمليات الإدخال والإخراج للملفات (File I/O).
2. ميزات المشروع
الإدارة الديناميكية للذاكرة (Dynamic Memory Allocation): استخدام دوال malloc و realloc لتوسيع قائمة المعاملات المالية بلا حدود بناءً على حاجة المستخدم، مع ميزة تقليص حجم المصفوفات (Shrinking) تلقائياً عند الحذف لضمان الاستهلاك الأمثل للذاكرة العشوائية (RAM).
البرمجة الدفاعية (Defensive Programming): نظام تحقق صارم من مدخلات المستخدم بالاعتماد على strtol و strtod لمنع انهيار البرنامج (Crashes) بسبب إدخال أنواع بيانات خاطئة، بالإضافة إلى توفير آليات حماية ضد تلف ملفات البيانات الثنائية.
التخزين الثنائي للبيانات (Binary File Persistence): نظام حفظ واسترجاع سريع وموثوق للبيانات؛ حيث يتم حفظ هياكل البيانات (Structs) وقراءتها مباشرة من وإلى القرص الصلب بصيغة ثنائية (Binary) باستخدام fwrite و fread.
خوارزمية ترتيب مخصصة (Custom QuickSort): بناء وتطبيق خوارزمية الترتيب السريع (QuickSort) التكرارية (Recursive) برمجياً من الصفر، لفرز وترتيب المعاملات المالية بسرعة فائقة بناءً على التاريخ أو القيمة المادية.
التحليل المالي للبيانات (Data Analysis): القدرة على معالجة البيانات المدخلة لتوليد تقارير وملخصات شهرية دقيقة توضح صافي الرصيد وحجم المصروفات.
3. طريقة التنفيذ والتقنيات المستخدمة
البيئة واللغة: تم الاعتماد حصرياً على لغة C القياسية لبناء أداة تتسم بأقصى درجات السرعة والكفاءة.
هندسة البيانات: تم تصميم هياكل بيانات مخصصة (Structs) لتمثيل وتخزين كل معاملة مالية (المبلغ، التاريخ، الوصف) بشكل منظم.
الخوارزميات: كتابة الخوارزميات يدوياً (مثل خوارزمية الفرز) لضمان التحكم الكامل في الأداء بدلاً من الاعتماد المطلق على المكتبات الجاهزة، مما يعكس أساساً برمجياً قوياً.
معالجة الملفات: استخدام نظام القراءة والكتابة المتقدم (Binary File I/O) لضمان استمرارية البيانات (Persistence) بشكل آمن وسريع بين جلسات الاستخدام المختلفة.