تدريب عملي
التدريب العملي 24: خصم المشتريات
من مذكرة العملي. اقرأ المسألة والخوارزمية، ثم اكتب البرنامج ونفّذه.
من الدرس 6. العبارات الشرطية: if و switch · كل التدريبات
١نص المسألة
أكتب برنامج يقرأ مبلغ المشتريات ثم يحسب مقدار الخصم ويطبعه وكذلك الفاتورة بعد الخصم على النحو التالي:
إذا كان مجموع المشتريات أكثر من أو يساوي 4000، الخصم يكون 15%
إذا كان مجموع المشتريات أكثر من أو يساوي 2000 إلى أقل 4000، الخصم يكون 10%
إذا كان مجموع المشتريات أكثر من أو يساوي 1000 إلى أقل من 2000، الخصم يكون 5%
إذا كان مجموع المشتريات أقل من 1000، لن يستحق الخصم
في حالة لو أدخل المستخدم مجموع المشتريات صفر أو أقل نطبع الرسالة (قيمة المشتريات خاطئة)
٢الخوارزمية
خوارزمية مقترحة.
- ابدأ
- discount = 0
- اقرأ قيمة المشتريات وخزنها في sales
- إذا كان sales >= 4000 :
- discount = sales * 0.15
- وإلا إذا كان sales >= 2000 :
- discount = sales * 0.10
- وإلا إذا كان sales >= 1000 :
- discount = sales * 0.05
- وإلا إذا كان sales > 0 :
- discount = 0
- غير ذلك:
- اطبع «قيمة المشتريات خاطئة»
- اطبع قيمة sales قبل الخصم
- اطبع مبلغ الخصم discount
- sales = sales - discount
- اطبع قيمة sales بعد الخصم
- توقف
٣خريطة التدفق
٤خطوات التطبيق
- أنشئ مشروعًا جديدًا في NetBeans: File ← New Project ← Java with Ant ← Java Application، باسم lab24.
- اكتب الكود داخل الدالة main، ثم شغّله بالزر Run أو F6.
- اكتب المدخلات في نافذة Output أسفل الشاشة ثم اضغط Enter. وفي الموقع اكتبها في خانة STDIN عند الضغط على «▶ شغّل هنا».
٥المخرجات المطلوبة
نفّذ برنامجك عدة مرات بمدخلات مختلفة، ويجب أن تظهر المخرجات التالية:
التشغيل 1: عند إدخال 5000
run:
ادخل قيمة المشتريات
5000
قبل الخصم 5000.0
مبلغ الخصم750.0
بعد الخصم4250.0
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 2: عند إدخال 3000
run:
ادخل قيمة المشتريات
3000
قبل الخصم 3000.0
مبلغ الخصم300.0
بعد الخصم2700.0
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 3: عند إدخال 1500
run:
ادخل قيمة المشتريات
1500
قبل الخصم 1500.0
مبلغ الخصم75.0
بعد الخصم1425.0
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 4: عند إدخال 900
run:
ادخل قيمة المشتريات
900
قبل الخصم 900.0
مبلغ الخصم0.0
بعد الخصم900.0
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 5: عند إدخال 0
run:
ادخل قيمة المشتريات
0
قيمة المشتريات خاطئة
قبل الخصم 0.0
مبلغ الخصم0.0
بعد الخصم0.0
BUILD SUCCESSFUL (total time: 0 seconds)
٦الحل المقترح
حاول بنفسك أولًا، ثم قارن حلّك بالحل التالي:
👁 اعرض الحل المقترح
import java.util.Scanner;public class Lab24 { public static void main(String[] args) { Scanner input = new Scanner(System.in); double sales, discount = 0; System.out.println("ادخل قيمة المشتريات"); sales = input.nextDouble(); if(sales >= 4000) discount= sales * 0.15; else if( sales >= 2000) discount = sales * 0.10; else if( sales >= 1000) discount = sales * 0.05; else if( sales < 1000 && sales > 0) // or just sales > 0 discount = 0; // zero or less else { discount = 0; System.out.println("قيمة المشتريات خاطئة"); } System.out.println("قبل الخصم" + " " + sales); System.out.println("مبلغ الخصم" + discount); sales = sales - discount; System.out.println("بعد الخصم" + sales); }}