SeProject
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

التحليل الصوري

2 مشترك

اذهب الى الأسفل

التحليل الصوري  Empty التحليل الصوري

مُساهمة  mhdrafea_20414 الأربعاء سبتمبر 15, 2010 3:58 am


التحليل الصوري هو الجزء الثاني من وثيقة توصيف النظام

المسؤول عنه : عبد الرزاق و جورج .. فلازم تبدو بدراسة البحث الرابع من هلأ ( البحث طويل وبده شغل كتير )

mhdrafea_20414

عدد المساهمات : 46
تاريخ التسجيل : 31/08/2010

الرجوع الى أعلى الصفحة اذهب الى الأسفل

التحليل الصوري  Empty اذا كان هنالك اي سؤال أرجو الرد..

مُساهمة  Mazen الخميس سبتمبر 30, 2010 6:41 am

مرحبا قمت البارحة بكتابة جزء جيد من التوصيف الصوري الجبري لحجز غرف في الفندق ولم يبقى سوى الشيء اليسير..

نفترض أن النظام يخزن معلومات حول الغرف و حالات الغرف (شاغر او محجوز)
نفرض أيضا أن العدد الأجمالي للغرف هو مثلا 100 = Rooms
محجوز ReservedRooms
VacantRooms شاغر
Supplying عملية تعبئة المعلومات
VectorOfRooms بنية معطياة شعاع تحوي معلومات الغرف RoomInfo
LookupRoomState دالة الكشف ان كانت الغرفة محجوزة أم لا وتيكون الخرج قيمة بوليانية باما نعم او لا
Reserve دالة تأخذ الشعاع ورقم الغرفة وتحجز الغرفة في حال كانت غير محجوزة
Vacate دالة تأخذ الشعاع وقم الغرفة وتلغي صفة الحجز عنها في حال كانت محجوزة
الكود:
Rooms = VacantRooms + ReservedRooms
RoomInfo= Supplying(CustomerInfo)
VectorOfRooms: (RoomInfo)
LookupRoomState( VectorOfRooms , int)= RoomState  ; RoomState is Boolean

Method :  Reserve (VectorOfRooms,int n)
If (NOT LookupRoomState( VectorOfRooms , int))
Then {    
              ChangRoomState (RoomInfo) = ChangRoomState (RoomState) = NOT (RoomState) = True;
    } else
{
Write (“ You have costumer in this Room!“);
}

Method :  Vacate (VectorOfRooms,int n)
If (LookupRoomState( VectorOfRooms , int))
Then {    
              ChangRoomState (RoomInfo) = ChangRoomState (RoomState) = NOT (RoomState) = False;
    }
    } else
{
Write (“ The Room is Empty!“);
}

Method : ReservedCounter:
For ( int n=0; n<Rooms.length ;  n++)
{
If (LookupRoomState( VectorOfRooms , n)) then
ReservedRooms +=1;
}


Method : Vacate:
Vacate (VectorOfRooms,int n) =  Reserve (RoomInfo)= RoomInfo

وبذلك يكون الشكل:
قي المستطيل الأول
Sort: Reserves
Imports: Customer Information, Integer , Boolean
وفي المستطيل الثاني:
ReservedRooms محجوز ، VacantRooms شاغر ،Supplyingعملية تعبئة المعلومات ،Rooms عدد الغرف
VectorOfRooms بنية معطياة شعاع تحوي معلومات الغرف RoomInfo
LookupRoomState دالة الكشف ان كانت الغرفة محجوزة أم لا وتيكون الخرج قيمة بوليانية باما نعم او لا
Reserve دالة تأخذ الشعاع ورقم الغرفة وتحجز الغرفة في حال كانت غير محجوزة
Vacate دالة تأخذ الشعاع وقم الغرفة وتلغي صفة الحجز عنها في حال كانت محجوزة

والمستطيل الثالث :
Supplying(CustomerInfo) RoomInfo
LookupRoomState( VectorOfRooms , int) RoomState
Vacate (VectorOfRooms, Int) RoomInfo
Reserve (VectorOfRooms,int n) RoomInfo

والمستطيل الرابع:
سيكون فيه شرح العلاقات كما هو مبين في الأعلى...

Mazen

عدد المساهمات : 32
تاريخ التسجيل : 31/08/2010

الرجوع الى أعلى الصفحة اذهب الى الأسفل

التحليل الصوري  Empty النسخة النهائية لوثيقة التوصيف الصوري الجبري

مُساهمة  Mazen الجمعة أكتوبر 01, 2010 6:18 pm

بما انو الشباب ما ردو اي خبر وعبد الرزاق اختفى والغايب حجتو معو
طلب مني رافع تكملة الوثيقة على ان ياخدو الشباب مهام تانية بالمستقبل!

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

نفترض أن النظام يخزن معلومات حول الغرف و حالات الغرف (شاغر او محجوز)
نفرض أيضا أن العدد الأجمالي للغرف هو مثلا 100 = Rooms
محجوز ReservedRooms
VacantRooms شاغر
Supplying عملية تعبئة المعلومات
VectorOfRooms بنية معطياة شعاع تحوي معلومات الغرف RoomInfo
LookupRoomState دالة الكشف ان كانت الغرفة محجوزة أم لا وتيكون الخرج قيمة بوليانية باما نعم او لا
Reserve دالة تأخذ الشعاع ورقم الغرفة وتحجز الغرفة في حال كانت غير محجوزة
Vacate دالة تأخذ الشعاع وقم الغرفة وتلغي صفة الحجز عنها في حال كانت محجوزة

Rooms = VacantRooms + ReservedRooms
RoomInfo= Supplying(CustomerInfo)
VectorOfRooms: (RoomInfo)
LookupRoomState( VectorOfRooms , int)= RoomState ; RoomState is Boolean
الكود:



Method :  Reserve (VectorOfRooms,int n)
If (NOT LookupRoomState( VectorOfRooms , int))
Then {    
              ChangRoomState (RoomInfo) = ChangRoomState (RoomState) = NOT (RoomState) = True;
   Write (“ The customer reserve room Number “, n);
    } else
{
Write (“ You have costumer in this Room!“);
Reserve (VectorOfRooms,int n+1)
}

Method :  Vacate (VectorOfRooms,int n)
If (LookupRoomState( VectorOfRooms , int))
Then {    
              ChangRoomState (RoomInfo) = ChangRoomState (RoomState) = NOT (RoomState) = False;
    }
    } else
{
Write (“ The Room is Empty!“);
}

Method : ReservedCounter:
For ( int n=0; n<Rooms.length ;  n++)
{
If (LookupRoomState( VectorOfRooms , n)) then
ReservedRooms +=1;
}

وبذلك يكون الشكل:
قي المستطيل الأول

Sort: Reserves
Imports: Customer Information, Integer , Boolean

وفي المستطيل الثاني:

ReservedRooms محجوز ، VacantRooms شاغر ،Supplyingعملية تعبئة المعلومات ،Rooms عدد الغرف
VectorOfRooms بنية معطياة شعاع تحوي معلومات الغرف RoomInfo
LookupRoomState دالة الكشف ان كانت الغرفة محجوزة أم لا وتيكون الخرج قيمة بوليانية باما نعم او لا
Reserve دالة تأخذ الشعاع ورقم الغرفة وتحجز الغرفة في حال كانت غير محجوزة أو تعيد لتجربة الغرفة التالية.
Vacate دالة تأخذ الشعاع ورقم الغرفة وتلغي صفة الحجز عنها في حال كانت محجوزة.
ReservedCounter دالة تعيد ععد الغرف المحجوزة


والمستطيل الثالث :
الكود:
Supplying(CustomerInfo)    RoomInfo
LookupRoomState( VectorOfRooms , int)  RoomState
Vacate (VectorOfRooms, Int)      RoomInfo
Reserve (VectorOfRooms,int n)    RoomInfo
ReservedCounter  Integer


والمستطيل الرابع:
الكود:
Supplying(CustomerInfo) = RoomInfo
LookupRoomState( VectorOfRooms , int)= RoomState    ; RoomState is Boolean
Vacate (VectorOfRooms, Int) = If LookupRoomState( VectorOfRooms , int) then RoomState = False
Reserve (VectorOfRooms,int n)  = If NOT LookupRoomState ( VectorOfRooms , int)  then RoomState = True Else Reserve (VectorOfRooms,int n+1)
ReservedCounter For  n< Rooms.length If RoomState = True then ReservedRooms +=1

Mazen

عدد المساهمات : 32
تاريخ التسجيل : 31/08/2010

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى