# Write a program using C to calculate the Net salary if the basic, TA, DA, allowances and deductions are given, using structures concept

Q. Write a program using C to calculate the Net salary if the basic, TA, DA, allowances and deductions are given, using structures concept.

ANS.  #include
#include
#include

/* structure to store employee salary details */
struct employee {
int empId;
char name[32];
int basic, hra, da, ma;
int pf, insurance;
float gross, net;
};

/* prints payslip for the requested employee */
void printSalary(struct employee e1) {
printf(“Salary Slip of %s:\n”, e1.name);
printf(“Employee ID: %d\n”, e1.empId);
printf(“Basic Salary: %d\n”, e1.basic);
printf(“House Rent Allowance: %d\n”, e1.hra);
printf(“Dearness Allowance: %d\n”, e1.da);
printf(“Medical Allowance: %d\n”, e1.ma);
printf(“Gross Salary: %.2f Rupees\n”, e1.gross);

printf(“\nDeductions: \n”);
printf(“Provident fund: %d\n”, e1.pf);
printf(“Insurance: %d\n”, e1.insurance);
printf(“\nNet Salary: %.2f Rupees\n\n”, e1.net);
return;
}

int main() {
int i, ch, num, flag, empID;
struct employee *e1;
/* get the number of employees from the user  */
printf(“Enter the number of employees:”);
scanf(“%d”, &num);
/* dynamically allocate memory to store employee salary details */
e1 = (struct employee *)malloc(sizeof(struct employee) * num);
/* get the employee salary details from the customer */
printf(“Enter your input for every employee:\n”);
for (i = 0; i < num; i++) {
printf(“Employee ID:”);
scanf(“%d”, &(e1[i].empId));
getchar();
printf(“Employee Name:”);
fgets(e1[i].name, 32, stdin);
e1[i].name[strlen(e1[i].name) – 1] = ‘\0’;
printf(“Basic Salary, HRA:”);
scanf(“%d%d”, &(e1[i].basic), &(e1[i].hra));
printf(“DA, Medical Allowance:”);
scanf(“%d%d”, &(e1[i].da), &(e1[i].ma));
printf(“PF and Insurance:”);
scanf(“%d%d”, &(e1[i].pf), &(e1[i].insurance));
printf(“\n”);
}
/* gross and net salary calculation */
for (i = 0; i < num; i++) {
e1[i].gross = e1[i].basic +
(e1[i].hra * e1[i].basic) / 100 +
(e1[i].da * e1[i].basic) / 100 +
(e1[i].ma * e1[i].basic) / 100;
e1[i].net = e1[i].gross – (e1[i].pf + e1[i].insurance);
}
/* printing payslip for the given employee ID */
while (1) {
printf(“Enter employee ID to get payslip:”);
scanf(“%d”, &empID);
flag = 0;
for (i = 0; i < num; i++) {
if (empID == e1[i].empId) {
printSalary(e1[i]);
flag = 1;
}
}
if (!flag) {
printf(“No Record Found!!\n”);
}
printf(“Do You Want To Continue(1/0):”);
scanf(“%d”, &ch);
if (!ch) {
break;
}
}
return 0;
}

Output:
jp@jp-VirtualBox:~/\$ ./a.out
Enter the number of employees:3
Enter your input for every employee:
Employee ID:101
Employee Name:Sam
Basic Salary, HRA:5000 500
DA, Medical Allowance:300 500
PF and Insurance:1000 400

Employee ID:102

Employee Name:Ram
Basic Salary, HRA:3000 200
DA, Medical Allowance:300 500
PF and Insurance:800 200

Employee ID:103

Employee Name:Raj
Basic Salary, HRA:4000 300
DA, Medical Allowance:300 500
PF and Insurance:1000 200

Enter employee ID to get payslip:102

Salary Slip of Ram:
Employee ID: 102
Basic Salary: 3000
House Rent Allowance: 200
Dearness Allowance: 300
Medical Allowance: 500
Gross Salary: 33000.00 Rupees

Deductions:

Provident fund: 800
Insurance: 200
Net Salary: 32000.00 Rupees
Do You Want To Continue(1/0):1

Enter employee ID to get payslip:101

Salary Slip of Sam:
Employee ID: 101
Basic Salary: 5000
House Rent Allowance: 500
Dearness Allowance: 300
Medical Allowance: 500
Gross Salary: 70000.00 Rupees

Deductions:

Provident fund: 1000
Insurance: 400
Net Salary: 68600.00 Rupees

Do You Want To Continue(1/0):1

Enter employee ID to get payslip:4
No Record Found!!

Do You Want To Continue(1/0):0

This site uses Akismet to reduce spam. Learn how your comment data is processed.