ปัญหา
บริษัทผู้ผลิตแล็ปท็อปมีนโยบายค่าตอบแทนรายเดือนสำหรับพนักงานขายตามที่ระบุไว้ด้านล่าง -
ฐานเงินเดือนขั้นต่ำ: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