ปัญหา
บริษัทผู้ผลิตแล็ปท็อปมีนโยบายค่าตอบแทนรายเดือนสำหรับพนักงานขายตามที่ระบุไว้ด้านล่าง -
ฐานเงินเดือนขั้นต่ำ:3000.00
โบนัสสำหรับคอมพิวเตอร์ทุกเครื่องที่ขาย:200.00
คอมมิชชั่นจากยอดขายรายเดือนทั้งหมด:5 เปอร์เซ็นต์
เนื่องจากราคาของแล็ปท็อปมีการเปลี่ยนแปลง ราคาขายของแล็ปท็อปแต่ละเครื่องจะคงที่ทุกต้นเดือน
วิธีแก้ปัญหา
ตรรกะในการหาโบนัสและคอมมิชชั่นมีดังนี้ −
bonus = BONUS_RATE * quantity ; commission = COMMISSION * quantity * price ;
เงินเดือนขั้นต้นคำนวณโดยใช้สูตรที่ระบุด้านล่าง -
Gross salary = basic salary + (quantity * bonus rate) + (quantity * Price) * commission rate
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อคำนวณเงินเดือนพนักงานขายโดยใช้ฟังก์ชันมาโคร -
#define BASIC_SALARY 3000.00 #define BONUS_RATE 200.00 #define COMMISSION 0.05 main(){ int quantity ; float gross_salary, price ; float bonus, commission ; printf("number of items sold and their price\n") ; scanf("%d %f", &quantity, &price) ; bonus = BONUS_RATE * quantity ; commission = COMMISSION * quantity * price ; gross_salary = BASIC_SALARY + bonus + commission ; printf("\n"); printf("Bonus = %6.2f\n", bonus) ; printf("Commission = %6.2f\n", commission) ; printf("Gross salary = %6.2f\n", gross_salary) ; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Number of items sold and their price 20 150000 Bonus = 4000.00 Commission = 150000.00 Gross salary = 157000.00