JAXS
03-22-2009, 09:18 AM
هاي لكل الشباب والصبايا بالمنتدى وخاصة لطلاب البرمجة
عندي مسألتين لصديق الي بدو حل الهم بسرعة كتييييييييييير لو سمحتو
فياريت يلي بيعرف يحل هالمسألتين يحاول انو يعطيني الحل اليوم
ومشكورين سلفاَ
المسألة الأولى:
تريد شركة حساب الرواتب الشهرية لموظفيها الذين ينقسمون إلى أربع فئات:
1. إداريين: ذوي دخل شهري يزداد بحسب عدد سنوات الخدمة.
2. مبرمجين: رواتبهم مرتبطة بعدد ساعات عملهم الكلية في الشهر.
3. مديرو مبيعات: لكل منهم راتب شهري ثابت + عمولة ثابتة على قيمة المبيعات.
4. عمَال: ورواتبهم مرتبطة بعدد القطع المنتجة الكلية من قبل العامل في الشهر.
اكتب برنامجاً لحساب الرواتب لكافة الفئات السابقة بلغة C# باستخدام الصفوف التالية:
• الصف تاريخ Date والذي يضم الحقول الصحيحة التالية من النمط (int): اليوم، الشهر، السنة.
• الصف المعلومات الشخصية PersonalInfo والذي يضم الحقول التالية من النمط (string): الاسم، الكنية، العنوان.
• الصف المجرد موظف Employee والذي يضم الحقول التالية : المعلومات الشخصية، تاريخ بدء العمل، نمط الموظف (string)، الراتب (float).
والصفوف المشتقة التالية من الصف Employee :
• الصف موظف إداري AdminEmployee والذي يضم الحقول التالية: عدد سنوات العمل (int)، مقدار زيادة الراتب في السنة.
• الصف مبرمج Programmer والذي يضم الحقول التالية: عدد ساعات البرمجة (float)، سعر ساعة البرمجة (float).
• الصف مدير مبيعات SalesManager والذي يضم الحقول التالية: قيمة المبيعات (float)، النسبة المئوية للعمولة (float).
• الصف عامل Worker والذي يضم الحقول التالية: عدد القطع المنتجة (int)، أجرة القطعة المنتجة الواحدة (float).
الثوابت:
• الراتب الثابت FixedSalary ويبلغ 10000 ل.س.
• مقدار زيادة الراتب السنوية 500 ل.س.
• عمولة المبيعات ComissionValueوتبلغ 8 % من قيمة المبيعات.
• اجرة القطعة المنتجة ItemCostالمدفوعة للعامل 225 ل.س.
• اجرة ساعة العمل المدفوعة للمبرمج ProgHourCoast 650 ل.س.
يجب أن تكون مخرجات البرنامج على النحو التالي:
First name: Tom
Last name: Lee
Address: 020-Saint Peter
Begin Date: 12/11/1993
Employee Type: Admin
Salary: 11000
=====================================
First name: Jose
Last name: Andryani
Address: 045- Arc street
Begin Date: 13/12/1989
Employee Type: Programmer
Salary: 40300
Price Hour: 650
Hours Numbers: 62
=====================================
First name: Mathias
Last name: Paulin
Address: Ampalot-Toulon
Begin Date: 8/2/1997
Employee Type: Sales Manager
Salary: 18000
Poundage value: 0.08
Sales amount: 125000
=====================================
First name: Cristoph
Last name: Destruel
Address: 031- Compiegne
Begin Date: 8/2/1998
Employee Type: WORKER
Salary: 6000
Items number: 90
Price item: 225
المسألة الثانية:
يوجد في شركة موبايل نوعين من الزبائن:
- زبون عادي (يدفع 4 للمكالمة من موبايل لموبايل و 6 للمكالمة من موبايل لأرضي).
- زبون مشترك يدفع اشتراك 1000 في كل شهر. يسمح له هذا الاشتراك بالتكلم 60 دقيقة أرضي و 60 دقيقة موبايل. عند انتهاء الـ 60 دقيقة أرضي يدفع بعدها 10 ليرات للدقيقة. وعند انتهاء الـ 60 دقيقة موبايل يدفع بعدها 8 ليرات للدقيقة موبايل.
والمطلوب:
1- عرّف الصف المجرد (Abstract Class ) Customer والذي له الخصائص التالية:
• الاسم Name
• الرصيد Balance
والطرق (Methods):
• DisplayInfo() والتي تطبع معلومات الزبون: الاسم والرصيد.
• RecordPayment(double amountPaid) والتي تُستدعى في كل مرة يقوم الزبون فيها بدفع مبلغ amountPaid فتقوم هذه الطريقة بإنقاص الرصيد بمقدار هذا المبلغ.
والطريقة المجردة (Abstract Method):
• RecordCall(byte callType, uint nMinutes) والتي تُعرّف في كل صف مشتق لحساب كلفة المكالمة وزيادتها لرصيد الزبون. حيث callType هو نوع المكالمة (0 موبايل و 1 أرضي)، و nMinutes هي عدد دقائق المكالمة.
2- عرّف الصف المشتق NormalCustomer من الصف Customer والذي له الطريقة (Method) التالية:
• RecordCall(byte callType, uint nMinutes) والتي تحسب قيمة المكالمة وفق ما يلي: إذا كانت المكالمة أرضي فسعر الدقيقة 6 أما إذا كانت موبايل فسعر الدقيقة 4. ثم تقوم بزيادة الرصيد بالمبلغ الناتج.
3- عرّف الصف المشتق SubscriberCustomer من الصف Customer والذي له الحقول والطرق التالية:
• LandMinutes وهي عدد دقائق الاتصال الأرضي للآن.
• MobileMinutes وهي عدد دقائق الاتصال موبايل للآن.
• RecordCall(byte callType, uint nMinutes) والتي تحسب قيمة المكالمة وفق ما يلي:
إذا كان الاتصال أرضي: لايوجد كلفة للاتصال طالما عدد دقائق الاتصال الأرضي للآن أصغر أو تساوي 60 وإلا فسعر الدقيقة 10.
إذا كان الاتصال موبايل: لايوجد كلفة للاتصال طالما عدد دقائق الاتصال موبايل للآن أصغر أو تساوي 60 وإلا فسعر الدقيقة 8.
4- تعريف الصف Company والذي له الحقول التالية والطرق التالية:
• private Customer [] Customers; // (مصفوفة من الزبائن)
• private int MaxCust; // (العدد الأعظمي للزبائن
• private int count=0; // (العدد الحالي)
• public Company (int MaxCust)
• public void Add(Customer c) لإضافة زبون جديد.
• public void DisplayInfo() لطباعة معلومات جميع الزبائن.
• public void SortByBalance() لفرز الزبائن تصاعدياً وفق الرصيد.
• public void SortByCustomerType() لفرز الزبائن حسب نوعهم.
وتكون الإجرائية Main
public static void Main()
{
Customer c;
Company p =new Company(3);
c = new SubscriberCustomer("Pierre Anshiloti");
p.Add(c);
c = new NormalCustomer("Paolo Maldini");
p.Add(c);
c = new SubscriberCustomer("Milan Rada");
p.Add(c);
p. SortByCustomerType();
p.DisplayInfo();
}
والمسائل بشكل ظابط موجودة بالمرفقات
يا ريت الحل السريع.... وشكراَ
عندي مسألتين لصديق الي بدو حل الهم بسرعة كتييييييييييير لو سمحتو
فياريت يلي بيعرف يحل هالمسألتين يحاول انو يعطيني الحل اليوم
ومشكورين سلفاَ
المسألة الأولى:
تريد شركة حساب الرواتب الشهرية لموظفيها الذين ينقسمون إلى أربع فئات:
1. إداريين: ذوي دخل شهري يزداد بحسب عدد سنوات الخدمة.
2. مبرمجين: رواتبهم مرتبطة بعدد ساعات عملهم الكلية في الشهر.
3. مديرو مبيعات: لكل منهم راتب شهري ثابت + عمولة ثابتة على قيمة المبيعات.
4. عمَال: ورواتبهم مرتبطة بعدد القطع المنتجة الكلية من قبل العامل في الشهر.
اكتب برنامجاً لحساب الرواتب لكافة الفئات السابقة بلغة C# باستخدام الصفوف التالية:
• الصف تاريخ Date والذي يضم الحقول الصحيحة التالية من النمط (int): اليوم، الشهر، السنة.
• الصف المعلومات الشخصية PersonalInfo والذي يضم الحقول التالية من النمط (string): الاسم، الكنية، العنوان.
• الصف المجرد موظف Employee والذي يضم الحقول التالية : المعلومات الشخصية، تاريخ بدء العمل، نمط الموظف (string)، الراتب (float).
والصفوف المشتقة التالية من الصف Employee :
• الصف موظف إداري AdminEmployee والذي يضم الحقول التالية: عدد سنوات العمل (int)، مقدار زيادة الراتب في السنة.
• الصف مبرمج Programmer والذي يضم الحقول التالية: عدد ساعات البرمجة (float)، سعر ساعة البرمجة (float).
• الصف مدير مبيعات SalesManager والذي يضم الحقول التالية: قيمة المبيعات (float)، النسبة المئوية للعمولة (float).
• الصف عامل Worker والذي يضم الحقول التالية: عدد القطع المنتجة (int)، أجرة القطعة المنتجة الواحدة (float).
الثوابت:
• الراتب الثابت FixedSalary ويبلغ 10000 ل.س.
• مقدار زيادة الراتب السنوية 500 ل.س.
• عمولة المبيعات ComissionValueوتبلغ 8 % من قيمة المبيعات.
• اجرة القطعة المنتجة ItemCostالمدفوعة للعامل 225 ل.س.
• اجرة ساعة العمل المدفوعة للمبرمج ProgHourCoast 650 ل.س.
يجب أن تكون مخرجات البرنامج على النحو التالي:
First name: Tom
Last name: Lee
Address: 020-Saint Peter
Begin Date: 12/11/1993
Employee Type: Admin
Salary: 11000
=====================================
First name: Jose
Last name: Andryani
Address: 045- Arc street
Begin Date: 13/12/1989
Employee Type: Programmer
Salary: 40300
Price Hour: 650
Hours Numbers: 62
=====================================
First name: Mathias
Last name: Paulin
Address: Ampalot-Toulon
Begin Date: 8/2/1997
Employee Type: Sales Manager
Salary: 18000
Poundage value: 0.08
Sales amount: 125000
=====================================
First name: Cristoph
Last name: Destruel
Address: 031- Compiegne
Begin Date: 8/2/1998
Employee Type: WORKER
Salary: 6000
Items number: 90
Price item: 225
المسألة الثانية:
يوجد في شركة موبايل نوعين من الزبائن:
- زبون عادي (يدفع 4 للمكالمة من موبايل لموبايل و 6 للمكالمة من موبايل لأرضي).
- زبون مشترك يدفع اشتراك 1000 في كل شهر. يسمح له هذا الاشتراك بالتكلم 60 دقيقة أرضي و 60 دقيقة موبايل. عند انتهاء الـ 60 دقيقة أرضي يدفع بعدها 10 ليرات للدقيقة. وعند انتهاء الـ 60 دقيقة موبايل يدفع بعدها 8 ليرات للدقيقة موبايل.
والمطلوب:
1- عرّف الصف المجرد (Abstract Class ) Customer والذي له الخصائص التالية:
• الاسم Name
• الرصيد Balance
والطرق (Methods):
• DisplayInfo() والتي تطبع معلومات الزبون: الاسم والرصيد.
• RecordPayment(double amountPaid) والتي تُستدعى في كل مرة يقوم الزبون فيها بدفع مبلغ amountPaid فتقوم هذه الطريقة بإنقاص الرصيد بمقدار هذا المبلغ.
والطريقة المجردة (Abstract Method):
• RecordCall(byte callType, uint nMinutes) والتي تُعرّف في كل صف مشتق لحساب كلفة المكالمة وزيادتها لرصيد الزبون. حيث callType هو نوع المكالمة (0 موبايل و 1 أرضي)، و nMinutes هي عدد دقائق المكالمة.
2- عرّف الصف المشتق NormalCustomer من الصف Customer والذي له الطريقة (Method) التالية:
• RecordCall(byte callType, uint nMinutes) والتي تحسب قيمة المكالمة وفق ما يلي: إذا كانت المكالمة أرضي فسعر الدقيقة 6 أما إذا كانت موبايل فسعر الدقيقة 4. ثم تقوم بزيادة الرصيد بالمبلغ الناتج.
3- عرّف الصف المشتق SubscriberCustomer من الصف Customer والذي له الحقول والطرق التالية:
• LandMinutes وهي عدد دقائق الاتصال الأرضي للآن.
• MobileMinutes وهي عدد دقائق الاتصال موبايل للآن.
• RecordCall(byte callType, uint nMinutes) والتي تحسب قيمة المكالمة وفق ما يلي:
إذا كان الاتصال أرضي: لايوجد كلفة للاتصال طالما عدد دقائق الاتصال الأرضي للآن أصغر أو تساوي 60 وإلا فسعر الدقيقة 10.
إذا كان الاتصال موبايل: لايوجد كلفة للاتصال طالما عدد دقائق الاتصال موبايل للآن أصغر أو تساوي 60 وإلا فسعر الدقيقة 8.
4- تعريف الصف Company والذي له الحقول التالية والطرق التالية:
• private Customer [] Customers; // (مصفوفة من الزبائن)
• private int MaxCust; // (العدد الأعظمي للزبائن
• private int count=0; // (العدد الحالي)
• public Company (int MaxCust)
• public void Add(Customer c) لإضافة زبون جديد.
• public void DisplayInfo() لطباعة معلومات جميع الزبائن.
• public void SortByBalance() لفرز الزبائن تصاعدياً وفق الرصيد.
• public void SortByCustomerType() لفرز الزبائن حسب نوعهم.
وتكون الإجرائية Main
public static void Main()
{
Customer c;
Company p =new Company(3);
c = new SubscriberCustomer("Pierre Anshiloti");
p.Add(c);
c = new NormalCustomer("Paolo Maldini");
p.Add(c);
c = new SubscriberCustomer("Milan Rada");
p.Add(c);
p. SortByCustomerType();
p.DisplayInfo();
}
والمسائل بشكل ظابط موجودة بالمرفقات
يا ريت الحل السريع.... وشكراَ