أهلا ومرحبا.
أود أن أقدم لكم حلاً للتحدي الذي
نواجهه في حساب الأجر الأسبوعي.
لذلك سأقدم عرضًا رائعًا هنا. قم بإحضار كتل التعليمات
البرمجية ، ودعنا نغلق مشروعنا الذي
لدينا حاليًا مفتوحًا ونفتحه وننشئ مشروعًا جديدًا لهذا التطبيق.
لذلك سأقوم بإنشاء تطبيق وحدة تحكم لذا سأكون في c.
وسأطلق على هذا اسم حساب الأجر الأسبوعي.
لذلك سوف يكون لدي رئيسي. c الذي سيعطيني
نقطة بداية لطيفة.
ولكن هناك شيئان سأفعلهما في هذا الحل قد يكونان مختلفين بعض الشيء.
لكنه سيقدم لك بعض المفاهيم.
سنتحدث عنها ، لكننا سنستخدم الكثير من الثوابت في هذا البرنامج
، خاصة لمعدل الأجور ومعدلات الضرائب لدينا.
لذلك سأستخدم شيئًا لم نرَه بعد وهو ما يسمى التعريف.
إنه توجيه ما قبل المعالج لإنشاء ثوابت.
وبالتالي فإن الطريقة التي نعرف بها أنه توجيه ما قبل المعالج هي أن لدينا رمز الجنيه.
لذلك سأقول فقط تحديد الجنيه. هذه طريقة لإنشاء الثوابت.
سأقوم بإنشاء 5 ثوابت لجميع بياناتنا في هذا
البرنامج. لدينا معدل أجور وهو 12. 00.
لذا فإن طريقة تعريف الأعمال هي استخدام
الكلمة الأساسية المحددة متبوعة بعد الجنيه وبعد ذلك عادة ما تقدم اسمًا
، وعادة ما يكون كل الأحرف الكبيرة. هذا هو العرف القياسي ثم المسافة ثم القيمة.
لا يوجد احالة يساوي هنا. وهذا يخلق متغيرًا ثابتًا بشكل أساسي.
لذلك سننشئ واحدًا لمعدل الدفع ، معدل الضريبة 300.
في الواقع ، سنقول إن معدل الضريبة 150 أو 300 أو أقل وسيكون
معدل الضريبة 0. 15.
ستلاحظ أن البيانات التي تقوم بتعيينها يمكن أن تكون أعدادًا صحيحة بنقاط
عائمة ، حتى أنه يمكنك تعيين سلاسل. لا يهم نوع البيانات هنا.
يمكن أن يكون معدل الضريبة
لـ 150 0. 20. وعادة ما أقوم بعمل التعريفات خارج الرئيسي في الجزء العلوي من الملف.
ولا تنس أيضًا إضافة تعليقاتك في الجزء العلوي وفي كامل شفرة المصدر.
وبعد ذلك سأقوم بإنشاء آخر معدل ضرائب للباقي
وهو صفر. 25.
آخر شيء أريد القيام به هو أنني سأقوم بإنشاء ثابت لوقت العمل الإضافي الخاص
بي ، فقط سأتصل بالوقت الإضافي وأقول 40. سيمثل هذا فقط عندما
نريد التحقق من وجود أكبر من 40.
ليس من الجيد أبدًا أن يكون لديك أرقام سحرية داخل المتغيرات
لأنه الآن إذا كان أي تغيير يشير إلى
تغيير الوقت الإضافي إلى 45 ، فلا بد لي من تغييره في مكان واحد فقط.
في الجزء العلوي وسيعمل برنامجي بالطريقة نفسها تمامًا.
إذا لم يكن لدي هذا الثابت واستخدمت رقمًا
سحريًا في مقارناتي أو متغيراتي ، فسيتعين علي
تغييره في كل مكان أستخدم فيه 40.
لذا اعتد على استخدام الثوابت وعدم استخدام ما يسمى بالأرقام السحرية.
أود أيضًا أن أعلن عن المتغيرات الخاصة بي في الجزء العلوي من المتغيرات الرئيسية.
هذه متغيرات محلية لوظيفتنا الرئيسية.
لذلك أريد أن أضع تعليقًا يعلن عن المتغيرات.
المتغيرات التي أحتاجها محليًا سأقوم بإنشاء عدد صحيح لساعات
، سأقوم بتهيئة ذلك إلى 0.
سيتم إدخال الساعات بواسطة المستخدم ، وبعد
ذلك سأقوم بإنشاء بعض المضاعفات التي سيتم عرضها كناتج ، وبشكل أساسي
الراتب الإجمالي الذي سأقوم بتهيئته إلى 0. 0 لأنه مزدوج.
ثم الضرائب ، سأبدأ أيضًا في تهيئة 0. 0 تنتهي بفاصلة منقوطة
، لا تنس الفاصلة المنقوطة ثم صافي الراتب.
لأن هذه هي مخرجاتي الثلاثة التي أريدها.
لذلك سأقوم بإنشاء 3 مخرجات في الأعلى مع ساعات الإدخال الخاصة بي.
أول شيء أريد القيام به هو أنني أرغب في الحصول على مدخلاتي ، لذلك
سأخبر المستخدم بإدخال شيء ما. سأقول أدخل ، قل
الرجاء إدخال عدد ساعات العمل
هذا الأسبوع ، ضع نقطتين ، مساحة
صغيرة وفاصلة منقوطة.
ثم سأستخدم وظيفة scanf الخاصة بي للحصول على المدخلات.
سأقول فقط سكانف. أريد أن أقرأ عددًا صحيحًا. لذلك سأقول في المئة د.
سأضع فاصلة ، وسأقوم بذلك لساعات ، ولأنها
ليست سلسلة أو أحرف ، يجب أن أضع
علامة العطف أمامها وأنهيها بفاصلة منقوطة.
هذا سيقرأ في. وفي هذه المرحلة ، ما علي
فعله هو أن أختبر ، وأعمل أجزاء صغيرة وأختبر باستمرار.
إذا واصلت كتابة التعليمات البرمجية في محاولة للتجميع ، فقد أواجه مشكلة في أي
مكان ، وأعمل في مناطق صغيرة.
لكني أعلم أن هذا يعمل. لذلك سأنتقل إلى شرح كيفية القيام بذلك.
كما قلت ، فإن أول شيء سأفعله هو أنني سأحسب الراتب الإجمالي.
في المنطق هنا ، سنحتاج إلى بيان if.
في الأساس ، إذا كانت الساعات أكبر من 40 ، فنحن نريد الحصول
على معدل ساعات العمل الإضافي.
لذا فإن ما سأفعله هو أنني سأقول ما إذا كانت الساعات أقل
من أو تساوي 40 ، فكل ما علي
فعله هو إنشاء حسابي بسهولة شديدة
لأنه مجرد معدل دفع للساعات.
لذا فلدينا الكلمة الرئيسية الخاصة بنا
في السطر 24 ، ولدينا ساعاتنا.
نحن نقوم بالمقارنة. نحن نستخدم معامل ارتباط ، أقل من يساوي. إذا كانت قيمنا أقل من أو تساوي 4
، فلن نستخدم قوسًا لأننا سنضطر إلى استخدام عبارة واحدة.
سنقول فقط الراتب الإجمالي. سنقوم بتعيين متغير
سيكون مساويًا للساعات مضروبًا في معدل الدفع الثابت لدينا وهذا
كل شيء.
الآن إذا كانت أكبر من أو تساوي 40 ، فنحن نريد
أن نفعل شيئًا آخر. لذلك إذا تم تقييم هذا الشرط إلى خطأ ، فنحن نريد
أن يكون لدينا شرط آخر ، وهذا هو المكان الذي نستخدم فيه الآخر. سيحتوي الآخر على سطور متعددة
في كتلته ، لذلك سأستخدم قوسًا ، سيبدأ في السطر
27 مع قوس البداية 29 مع النهاية.
عدم تطابق الأقواس أو عدم وجود أقواس هو خطأ شائع قد يكتشفه المترجم.
لذا تأكد من مطابقة هذه الأقواس. IDE مفيد جدًا لأنه يبرزها.
إذا كان لديك عدة أقواس ، فيمكنك دائمًا الانتقال إلى قوس آخر.
إذا ذهبت إلى القوس السفلي ، فسيتم تمييزه ليخبرك بمكان قوس البداية.
لذا في هذا الشريط ، إذا كان الرقم أكبر من 40 ، أولاً
، أريد أن أحدد راتبي الإجمالي يساوي 40 ضعفًا لمعدل الراتب لأن تلك
الأربعين ساعة الأولى ستكون 12 دولارًا للساعة.
وبعد ذلك سيكون كل شيء بعد ذلك أكثر.
لذلك سأقوم بإنشاء متغير محلي يسمى أجر
العمل الإضافي ، وسأقوم بتعيين ذلك يساوي عدد
الساعات ناقص 40. لذا إذا كتبت 40 سيكون الرقم 5 هنا.
وبعد ذلك ، بمجرد حصولي على تلك الساعات ، أريد مضاعفة ذلك من معدل
الأجور وهو 12 دولارًا للساعة
، لكنني أريد إضافة 1. 5 من ذلك ، والتي ستكون 18 دولارًا
للساعة ، ثم أنهيها
بفاصلة منقوطة.
في هذه المرحلة ، سيكون راتبي الإضافي 5 أضعاف 18
، 90 دولارًا إذا كتبت 45 كمستخدم.
وبعد ذلك ستكون الأربعون ساعة الأولى
40 ضرب 12 وهو
ما نقوله 570. إذا فعلنا 40 ضرب 12 فسيكون
480.
الآن آخر شيء يتعين علينا القيام به هو أن نضيف إجمالي المبلغ المدفوع إلى أجر العمل الإضافي.
لذلك ربما كان بإمكاني استخدام اسم أفضل من الراتب الإجمالي لأننا لم نحصل على أجر نعمة حتى الآن.
لكنني سأستخدم عامل تشغيل صغيرًا لطيفًا
، عامل التكليف زائد يساوي ، والذي سيقوم بدفع
أجر العمل الإضافي لدينا.
ما يقوله هذا هو إجمالي الراتب يساوي إجمالي الأجر زائد أجر العمل الإضافي.
لكننا نفعل ذلك بتدوين مختصر.
إذن الآن لدينا راتبا إجمالياً ، وانتهينا من إجمالي الراتب.
لذلك سنمضي قدمًا ونختبر ذلك ، ونطبع الأجر الإجمالي ونتأكد من صحته.
ولكن بما أنني أعلم أن هذا يعمل ، فسأنتقل إلى الخطوة التالية.
الخطوة التالية هي حساب الضرائب.
لذلك لحساب الضرائب ، تذكر ، علينا القيام بأشياء معينة اعتمادًا على
مقدار الأموال التي تجنيها. لذلك علينا أن ننظر إلى الراتب الإجمالي.
وبالتالي إذا كان الراتب الإجمالي أقل من أو يساوي 300 ، فسنقوم بشيء ما.
إذا كان إجمالي الراتب 300 و 450
، فسنقوم بشيء ما. وإذا كانت أكبر من 450 ، فسنقوم بشيء آخر.
سيكون لدينا رمز مكرر قليلا هنا.
لا بأس في الوقت الحالي لأننا فقط نوضح ما إذا كانت العبارات.
قد تكون قادرًا على كتابة هذا قليلاً.
ولكن ما سأفعله هو أنني سأقول أولاً تحقق من الشرط الأول حيث إذا كان الراتب
الإجمالي أقل من أو يساوي 300. وفي هذه الحالة ، من السهل
جدًا حساب الضرائب.
ستكون الضرائب هي إجمالي الدفع مضروبًا
في معدل الضريبة 300.
تذكر أن معدل الضريبة 300 هو أي
شيء من 300 آخر يتم فرض ضرائب عليه بنسبة 15 ٪ أعتقد أنها كانت كذلك.
هذا كل ما يتعين علينا فعله إذا ربحت أقل من أو
تساوي 300.
مرة أخرى ، الشيء الآخر الذي يجب أن تلاحظه هنا هو المسافة البادئة.
عندما يكون لديك كتل من التعليمات البرمجية ، وعلى الرغم من أن لدي عبارة واحدة
فقط ، سأضع قوسًا هناك.
ثم أشير إلى الكتل الخاصة بي ، مما يجعل القراءة أسهل بكثير ، ولا تنسى المسافة
البادئة في السطور الجديدة.
وعادةً ما تريد هنا الحصول على مساحة بدلاً من علامات التبويب ، ولكن هذه مناقشة أخرى.
الآن يمكن أن يكون أيضًا شيئًا آخر.
لذا في السطر 34 طرحنا السؤال إذا كان إجمالي
الراتب أقل من 300 أو يساوي 300 ، افعل شيئًا في السطر 36.
نستخدم كلمة if ، نضع التعبير المنطقي الشرطي داخل الأقواس.
ولكن ماذا لو لم يكن 300 أو أقل ، فنحن نريد أن
نفعل شيئًا آخر. على وجه التحديد ،
إذا كان الراتب الإجمالي
أكبر من 300 ، ولذا فأنا هنا أستخدم عامل عطف منطقي حيث
أطرح سؤالين أساسيين. إذا كان الراتب الإجمالي أكبر
من 300 وكان الراتب الإجمالي أقل من 450 ، فأنا أريد أن أفعل
شيئًا آخر.
إذن ما هذا القول هو إذا كان راتبي الإجمالي يتراوح بين 300 و 450.
الآن إذا كانت بين 300 و 450 ، فأنا
أريد أولاً حساب ضرائبي مثلما
فعلت من قبل.
بالنسبة لأول 300 ، أريد ضربها في معدل الضريبة 300.
لأن أول 300 ضريبة بهذا المعدل.
بالنسبة للمبلغ الآخر ، أريد
أن أجعل معدل الضريبة 150 ، وهو نقطة 20٪.
أولًا ، لا بد لي من معرفة
المبلغ الذي كسبناه أكثر من 300 ، لكن يمكنني فعل
ذلك في سطر واحد. سأفعل الضرائب زائد يساوي
، لذلك هذا يعني أن الضرائب تساوي الضرائب ، والتي هي
300 ضعف معدل الضريبة 300 بالفعل ، والضرائب بالإضافة
إلى شيء ما. وما أريد إضافته إلى تلك
الضرائب الأولى في السطر 40 الذي تم حسابه ، أريد إضافة
المبلغ الإضافي وسيكون
إجمالي الراتب مطروحًا منه 300 وقد قررت بالفعل
أنني لست فوق 450.
لذا فإن الراتب الإجمالي مطروحًا منه 300 ضعف معدل
الضريبة لـ 150.
انظر ماذا فعلت هناك.
إذا ربحت أي مبلغ من المال بين 300 و 450 في السطر 38 ، فأنا أريد
الحصول على ضرائب أول 300 مرة ، وهو 300 ضعف معدل الضريبة 300 وأريد إضافة ذلك
إلى مقدار راتبي الإجمالي أو المبلغ الذي انتهى 300 ضعف معدل الضريبة
هذا لـ 150.
حتى الآن استوفينا شرطين ، الشرط الأخير الذي نريد التحقق منه هو ما إذا كنا قد حققنا أكثر من 450.
لذلك ، في الأساس ، يمكننا الحصول على شيء آخر إذا كان الراتب الإجمالي أكبر من 450
أو في الحقيقة مجرد شيء آخر.
ولكن من أجل الوضوح ، سأضع الآخر إذا كان هناك
، وسأقول إن الراتب الإجمالي أكبر من 450.
لا أحتاج حقًا إلى القيام بذلك لأنه يمكنني الحصول على شخص آخر بدون "إذا"
، لكنني أريد أن أوضح "إذا كان آخر".
في هذه الحالة ، أريد حساب الضرائب لأول 300 ، لذا يمكنني
نسخ الكود هنا.
أريد أيضًا حساب ضرائب الـ 150 ، لذلك
سأقوم بعمل زائد يساوي للـ 150 التالي
، لذا 300 إلى 450. لذلك سيكون هذا 150
ضعف معدل الضريبة 150.
ثم آخر شيء أريد القيام به هو أنني أرغب في فرض ضرائب على الباقي بمعدل معين.
سأقول هنا الضرائب زائد يساوي ، ومرة أخرى زائد يساوي الضرائب زائد.
وهنا سأقول إجمالي الراتب مطروحًا
منه 450 لأنني لا أريد تطبيق الضرائب
على الراتب بالكامل ، فقط ما
يزيد عن 450.
وأريد أن أضرب ذلك في معدل الضريبة يساوي الباقي ، وهو المتغير
الثابت الذي حددناه أعلاه.
وهذا كل شيء. انتهيت من حساب الضرائب.
ومرة أخرى ، ستختبر هذا بعد كل خطوة وتتأكد من صحة الترجمة
والاختبار.
لكن ستلاحظ المسافة البادئة. هذا سهل القراءة. أنا أفعل التعليقات ، كل ذلك.
آخر شيء أريد القيام به هو حساب صافي الراتب.
سيكون هذا بسيطًا لأن صافي الراتب سيكون مساويًا لإجمالي الراتب
مطروحًا منه الضرائب ، وهذا أمر بسيط
للغاية.
ثم أريد عرض مخرجاتي.
وتذكر أن المتطلبات كانت لعرض الراتب
الإجمالي والضرائب والأجر الصافي.
لذا يمكننا استخدام printf هنا.
وسأقوم فقط بنسخ هذا ولصقه من أجل الكفاءة ، لذلك لا نستهلك الكثير من الوقت.
أحيانًا يصاب الطلاب بالجنون عندما أقوم بالنسخ واللصق ، ويقولون
إنه ليس من المفترض أن تنسخ وتلصق في البرمجة. حسنًا ، هذا صحيح إلى حد ما.
إذا قمت بنسخ ولصق شيء ما وفهمت هذه الشفرة تمامًا ، فستكون أكثر فاعلية.
تكمن مشكلة النسخ واللصق في أن الكثير من المطورين ينسخون ويلصقون ، وليس
لديهم أدنى فكرة عن كيفية عمل هذا الرمز ، وبعد ذلك يأملون فقط في نجاحه.
لكن في هذه الحالة ، أعرف كيف تعمل البيانات المطبوعة وأريد فقط أن أوضح لك ما يحدث هنا.
لذلك لا يتعين علي الانتظار لإضاعة الوقت في الكتابة على لوحة المفاتيح.
لذا في السطر 54 ، سنعرض إجمالي الأجر.
إنه عائم. نعرف كيف نعرض قيمة المتغيرات.
والشيء الوحيد المميز في ذلك هو أنني أقوم بتنسيق الناتج إلى نقطتين عشريتين ، لذا يجب أن
تلاحظ النسبة المئوية. 2f ثم الشرطة المائلة
العكسية n عبارة عن تغذية خط لتسلسل هروب.
لذلك أقوم بتنسيق كل شيء إلى نقطتين عشريتين لأنه عندما نعرض الأموال ،
يكون لدينا سنتات وليس لدينا نسبة مئوية من السنتات.
ثم عرضت نفس تنسيق الضرائب وصافي الأجر.
جميل جدا هناك.
ومرة أخرى ، ما يجب أن تلاحظه في هذا البرنامج هو المسافة البادئة.
من السهل جدا قراءتها. أنا أستخدم متغيرات ثابتة في الأعلى.
أنا بصدد تهيئة المتغيرات الخاصة بي. لماذا أعلن عنها؟
كل شيء جميل وأنيق. أنا أقدم التعليقات. أنا أكتب مجموعة
من عبارات if else.
نأمل أن يكون كل هذا واضحًا. المنطق ليس صعبًا جدًا للمتابعة ، ولكن
عندما يكون لديك شفرة المصدر معك لأنه يمكنك تنزيله حتى
تتمكن من تحليل هذا أكثر. لكن دعنا نرى ما يحدث عندما نبني ونجمع
مثل دعنا نتأكد من عدم وجود خطأ.
عندما أقوم ببنائه يقول لدي تحذير غير مستخدم.
يبدو هنا.
لقد فقدت شيئًا متوقعًا فاصلة منقوطة قبل قوس لا معنى له.
فقدت شيئًا متوقعًا فاصلة منقوطة
قبل قوس لا معنى له. لذلك أعتقد أن ما أفتقده هنا هو ، حسنًا ، لا
يمكنني الحصول على شيء آخر. يجب أن يكون الأمر مختلفًا إذا
نسيت ما إذا لم يكن منطقيًا. وإلا إذا.
ترى ما يحدث هناك هل كان لدي شخص آخر ثم أدناه كان لدي شخص آخر إذا.
هذا غير منطقي. لا يمكنك الحصول على شخص آخر ثم آخر إذا.
لنرى الآن ما يحدث هنا.
الآن أحصل على 0 أخطاء و 0 تحذيرات.
لنقم بتشغيل هذا
وماسح الفيروسات الخاص بي.
عندما أقوم بتشغيل هذا ، فإن أول شيء سأفعله هو أنه سيقول الرجاء إدخال عدد ساعات العمل هذا الأسبوع.
سأضع شيئًا أعلى من 45 ، لذا فهو يوضح العمل الإضافي.
سأقول 45 أو 4 أعلى من 40. 45 وتقول إنني ربحت 570 دولارًا
، وهذا صحيح لأنه. كل ما يصل إلى 40 دولارًا
هو 12 دولارًا للساعة وهو ما حسبناه 400 و 80.
ثم 5 ساعات هي 18 دولارًا للساعة ، أي 90 زائد 480 يساوي 570.
وبلغت الضرائب هذا الأسبوع 105 دولارات وصافي الأجر 465.
أرقام زوجية لطيفة. يمكنك إجراء هذه الحسابات للتأكد من صحتها.
يمكنك محاولة تشغيل هذا مرات عديدة ومشاهدة إخراج البيانات المختلفة.
لنشغلها بشيء أقل
من 40. دعنا نقول فقط 30 ساعة هذا
الأسبوع ، لن أحصل على أي أجر إضافي. سيكون فقط 30 ضرب 12 وهو
ما يساوي 360.
بالنسبة لأول 300 ، سأخضع للضريبة بمعدل 15٪.
وهذا سيكون 45 دولارًا وبعد ذلك بالنسبة إلى
60 دولارًا ، سأخضع للضريبة بمعدل 20٪ وهذا
سيكون 12 دولارًا. إذن 45 زائد 12 ، 57 تبدو صحيحة.
وصافي الأجر هذا الأسبوع هو 303 ، 360 ناقص 57.
لذلك يبدو أنها تعمل بشكل جيد.
سترغب في اختبار هذا بشكل أكبر بأرباح أكبر من 450.
الشيء المهم الآخر في الاختبار هو أنك تريد اختبار جميع الحدود.
أنت لا تريد تقديم اختبار واحد فقط. كل شيء يعمل.
تريد تقديم حالات جيدة وحالات سيئة.
إذن في هذه الحالة ، هذا المثال ، لدينا العديد من الحالات المختلفة
لهذا البرنامج لدينا حالة تجعلك تقضي أكثر من 40 ساعة.
لذلك لديك أجر العمل الإضافي. لدينا حالة عندما تكون أرباحك
300 أو أقل ، حالة عندما تكون أرباحك 300 إلى 450 وحالة عندما
تكون أرباحك أكبر من 450.
لذلك بالنسبة لهذا البرنامج ، يجب عليك
تشغيل 4 حالات اختبار أو 5 حالات اختبار على الأقل ، فهذا يعتمد
على أنك تريد حقًا حساب الوقت الإضافي أيضًا.
من المحتمل أن تفلت من 4 حالات لأنك
ربما تربح أقل من 300 دولار ، أي أقل من أجر العمل الإضافي.
لكن ما تريد حقًا اختباره هو العمل الإضافي ثم معدلات الضرائب الثلاثة.
اتمنى ان يكون ذلك مفيدا. أتمنى أن تفهم تمامًا ما أظهرته.
أتمنى أن تفهم كل الأشياء التي تحتوي على عبارات if وكيف أجعل الكود الخاص بي قابلاً
للقراءة واستخدام أسماء ذات معنى. شكرًا لك.