تحديات برمجيةتراكيب البيانات - التحدي الثاني
فكرة المشروع
في هذا التمرين سنفترض أننا نقوم بتخزين بيانات لمؤسسة صغيرة.
البيانات التي نريد تخزينها هي التالية:
- الموظفين الذين يعملون في المؤسسة (الإسم, الهاتف, الجنس, دوام العمل, أيام العمل).
- الزبائن الذين يشترون من المؤسسة (الإسم, الهاتف, الجنس, البريد الإلكتروني).
- المنتجات التي تبيعها المؤسسة (إسم المنتج و سعره).
- الفواتير الخاصة ببيع المنتجات (تاريخ البيع, هل تم الدفع أم لا, بيانات المشتري, المنتجات التي تم شراءها).
ملاحظة: رقم التعرفة لكل من الأشخاص, المنتجات, الفواتير يجب أن يتم إعطاؤه لهم بشكل تلقائي.
الشكل العام لأقسام المشروع
شرح أقسام المشروع
Person
يمثل المعلومات المشتركة بين الموظف و الزبون.
Client
يمثل المعلومات الإضافية الخاصة بالزبون و غير موجودة عند الموظف.
Employee
يمثل المعلومات الإضافية الخاصة الموظف و غير موجودة عند الزبون.
Product
يمثل أي منتج تبيعه الشركة.
Order
يمثل فواتير بيع المنتجات و لاحظ أن كل فاتورة سيتم فيها بيع مجموعة من المنتجات و كل فاتورة سيتم إصدارها لشخص محدد.
add_product()
: مهمتها إضافة منتج جديد.
add_person()
: مهمتها إضافة شخص جديد سواء موظف أو زبون.
add_order()
: مهمتها إضافة فاتورة جديدة.
remove_product()
: مهمتها حذف منتج من خلال id
المنتج الذي نمرره لها عند استدعائها.
remove_person()
: مهمتها حذف شخص من خلال id
الشخص الذي نمرره لها عند استدعائها.
remove_order()
: مهمتها حذف فاتورة من خلال id
الفاتورة الذي نمرره لها عند استدعائها.
print_person_info()
: مهمتها عرض كل معلومات الشخص من خلال id
الشخص الذي نمرره لها عند استدعائها.
print_product_details()
: مهمتها عرض كل معلومات المنتج من خلال id
المنتج الذي نمرره لها عند استدعائها.
print_order_details()
: مهمتها عرض كل معلومات الفاتورة من خلال id
الفاتورة الذي نمرره لها عند استدعائها.
print_person_orders()
: مهمتها عرض كل فواتير الشخص من خلال id
الشخص الذي نمرره لها عند استدعائها.
print_extra_info()
: مهمتها عرض كل المعلومات المتوفرة حول الشخص سواء كان موظف أو زبون.
قم بتحويل الرسم إلى كود. ثم قم بإنشاء مجموعة موظفين, زبائن, منتجات و فواتير. و قم بتجربة جميع الدوال في البرنامج.