المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مثال على if والشروط المركبة مثال 2-2



س ا يوسف
29-03-2009, 06:16 PM
تقوم احد الشركات بتحديد قيمة الاجر لكل ساعة عمل لوظيفة معينة طبقا لعدد سنوات الخبرة كما هو موضح

You can see links before reply

والمطلوب كتابة معالج حدث النقر Click Event Hander بحيث يتيح لمستخدم البرنامج ادخال عدد سنوات الخدمة وعدد ساعات العمل ثم يقوم بحساب كل من الاجر للساعة ويقوم بتخزينه في متغير WageRate والراتب الكلي Salary ويقوم بعرضهما في مربع رسالةعلى ان تكون الواجهة كما بالشكل

You can see links before reply

س ا يوسف
29-03-2009, 07:09 PM
الحل
المطلوب ادخال سنوات خبرة من الاداة TxtYears و ساعات العمل من الاداة TxtHoursWork
يبقى لابد من وجود مخزن لسنوات الخبرة YearsOfService او اي اسم
و مخزن لساعات العمل HoursWorked او اي اسم
والمطلوب حساب الاجر لكل ساعة في مخزن WageRate و المرتب في مخزن Salary
يبقى نحدد انواع المخازن سنوات الخبرة short و ساعات العمل ممكن كسر decimal اجر الساعة مبلغ من المال decimal المرتب برده decimal
الامر المستخدم للتذكرة Dim اسم as نوع ( من اليسار لليمنين )


Dim YearsOfService As Short
Dim HoursWorked As Decimal
Dim WageRate As Decimal
Dim Salary As Decimal

اي رقم مدخل من اداة نص لابد من تحويله ب parse
الطريقة للتذكرة من اليمين نفتح قوس text نقطة اسم الاداة بالشكل نقطة me نغلق القوس نقطة parseنقطةالنوع تساوي اسم المخزن
بس قبل التحويل نتأكد من اللي داخل ارقام وليس حروف ب try


Try

نكتب جمل التحويل

ل
(YearsOfService = Short.Parse(Me.txtYears.Text

ل
( HoursWorked = Decimal.Parse(Me.txtHoursWorked.Text

نكتب

Catch

MsgBox("Check your inputs ")
End Try

بعد كده نشوف كام اختيار 5 حالات يبقى حالة if الثالثة اللي فيها elseif كام واحدة 3
نكنبها ازاي اول if تعبيره اقل من 5 والTure بتعها 5 في مخزن اجر الساعة
elseif اكبرمن او تساوي 5 و اقل من 10 وال ture بتعها 7 في مخزن اجر الساعة
elseif اكبرمن او تساوي 10 و اقل من 15 وال ture بتعها 10في مخزن اجر الساعة
elseif اكبرمن او تساوي 10 و اقل من 15 وال ture بتعها 12 في مخزن اجر الساعة
يتبقى حالة واحدة تبقى اجر الساعة في مخزن اجر الساعة15 بعد else


If YearsOfService < 5 Then
WageRate = 5
ElseIf YearsOfService>=5 and YearsOfService < 10 Then
WageRate = 7
ElseIf YearsOfService>=10 and YearsOfService < 15 Then
WageRate = 10
ElseIf YearsOfService>=15 and YearsOfService < 20 Then
WageRate = 12
Else
WageRate = 15
End If


نحسب المرتب يساوي عدد الساعات في اجر الساعة


Salary = WageRate * HoursWorked

نخرج رسالة ب MsgBox باجر الساعة و المرتب


MsgBox("Your Wage Rate = " & WageRate & vbCrLf & _
"Your salary = " & Salary)


لاحظ
VbCrLf تعني اذهب لسطر جديد اي ما قبلها يكتب في سطر وما بعدها في السطر التالي ـــــ تعني ان السطر الثاني في الامر هو استكمال للسطر السابق

هانى الخير
30-03-2009, 06:54 AM
شششششكرااااااااااااااااااااااااااااااااااااااااااا اااا

hany wasel
13-09-2010, 07:46 PM
مشكورررررررررررررررر

طاطا جادو
26-01-2012, 02:32 PM
مشكووووووووووووووووووووووووووووووووووووووووور