Answer to Question #323123 in C for Chizon

Question #323123

Design & Implement a C- program that can handle salesmen records of ABC Company. Each salesman has unique 4-digit id #, name, salary, monthly sale & commission (commission is computed depending on value of monthly sale). Net income of a salesman is salary plus commission. Make maximum use of user defined Functions. Conditions for calculating commission are as follows: ➢ Commission is 20% of monthly sale, if sale is equal to or greater than 15,000. ➢ Commission is 15% of monthly sale, if sale is equal to or greater than 10,000 and less than 15,000. ➢ Commission is 10% of monthly sale, if sale is equal to or greater than 8,000 and less than 10,000. ➢ Commission is 5% of monthly sale, if sale is equal to or greater than 5,000 and less than 8,000. ➢ No Commission, if sale is less than 5,000

1
Expert's answer
2022-04-03T18:32:03-0400
#include <stdio.h>
#include <stdlib.h>


typedef struct {
    int id;
    char name[20];
    double salary;
    double sale;
} Salesman;


void read_record(Salesman* person);
double get_commision(double sale);
double get_net_income(Salesman* person);
void print_record(Salesman* person);


int main()
{
    Salesman *records;
    int n, i;


    printf("How many peerson in the company: ");
    scanf("%d", &n);
    records = (Salesman*) malloc(n*sizeof(Salesman));


    for (i=0; i<n; i++) {
        read_record(&records[i]);
    }


    printf("\n\nABC Company\n\n");
    for (i=0; i<n; i++) {
        print_record(&records[i]);
        printf("-------------------------\n\n");
    }


    free(records);
    return 0;
}


void read_record(Salesman* person)
{
    printf("Enter salesman id: ");
    scanf("%d", &person->id);
    printf("Enter a name: ");
    scanf("%s", &person->name);
    printf("Enter a salary: ");
    scanf("%lf", &person->salary);
    printf("Enter a monthly sale: ");
    scanf("%lf", &person->sale);
    printf("\n");
}


double get_commision(double sale) 
{
    if (sale >= 15000)
        return 0.2;
    if (sale >= 10000)
        return 0.15;
    if (sale >= 8000) 
        return 0.1;
    if (sale >= 5000)
        return 0.05;
    return 0;
}


double get_net_income(Salesman* person) 
{
    double total = person->salary;
    total += person->sale * get_commision(person->sale);
    return total;
}


void print_record(Salesman* person)
{
    double income = get_net_income(person);
    printf("ID: %04d\n", person->id);
    printf("Name: %s\n", person->name);
    printf("Monthly sale: $%.2lf\n", person->sale);
    printf("Total income: $%.2lf\n", income);
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS