Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <conio.h>
- #include <time.h>
- /* structure to store employee salary details */
- struct employee {
- int empId;
- char name[255];
- int basic, bonus;
- int absent, salaryDeduc;
- float gross, net;
- };
- /* prints payslip for the requested employee */
- void printSalary(struct employee e1) {
- time_t tm;
- time(&tm);
- printf("\n\t\t************************************************");
- printf("\n\t\t* EMPLOYEE PAYROLL SYSTEM *");
- printf("\n\t\t************************************************\n");
- printf("\n\t\tDate: \t\t\t %s", ctime(&tm));
- printf("\n\t\tName: \t\t\t %s", e1.name);
- printf("\n\t\tEmployee ID: \t\t %d", e1.empId);
- printf("\n\n\t\tBasic Salary: \t\t %d", e1.basic);
- printf("\n\t\tBonus: \t\t\t %d", e1.bonus);
- printf("\n\t\t------------------------------------------------");
- printf("\n\t\tGross Salary: \t\t %.2f PHP", e1.gross);
- printf("\n\t\t------------------------------------------------\n");
- printf("\n\n\t\tDeductions (4%% per absent)");
- printf("\n\t\tSalary Deduction: (Absent * 0.04) x Basic Salary");
- printf("\n\t\tSalary Deduction: \t %d", e1.salaryDeduc);
- printf("\n\t\t------------------------------------------------");
- printf("\n\t\tNet Salary: \t\t %.2f PHP", e1.net);
- printf("\n\t\t------------------------------------------------\n\n");
- return;
- }
- /* display all the employee records entered */
- void display(struct employee e1) {
- printf("\n\t\t____________________________________________\n");
- printf("\n\t\tEmployee ID: \t\t %d", e1.empId);
- printf("\n\t\t--------------------------------------------\n");
- printf("\t\tEmployee Name: \t %s", e1.name);
- printf("\n\t\tBasic Salary: \t %d", e1.basic);
- printf("\n\t\tBonus: \t\t %d", e1.bonus);
- printf("\n\t\tAbsent: \t %d", e1.absent);
- return;
- }
- int main() {
- int i, ch, num, flag, empID;
- int choice, update, updateChoice;
- 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, 255, stdin);
- e1[i].name[strlen(e1[i].name) - 1] = '\0';
- printf("Basic Salary:");
- scanf("%d", &(e1[i].basic));
- printf("Bonus:");
- scanf("%d", &(e1[i].bonus));
- printf("Enter the deductions: \n");
- printf("Absent: ");
- scanf("%d", &(e1[i].absent));
- printf("\n");
- }
- /* printing payslip for the given employee ID */
- while (1) {
- printf("\n EMPLOYEE PAYROLL SYSTEM \n");
- printf("\n\n*****CHOOSE YOUR OPTION*****\n");
- printf("1) SHOW ALL RECORDS\n");
- printf("2) ADD NEW EMPLOYEE RECORD\n");
- printf("3) PRINT THE SALARY SLIP\n");
- printf("4) EXIT\n");
- printf("Enter your choice : ");
- scanf("%d", &choice);
- switch(choice){
- case 1 : /*printing all the records entered before printing the slip */
- printf("\nEmp. ID. Emp.Name \t Basic \t HRA \t DA \t MA \t PF \t Insurance \n") ;
- for (i = 0; i < num; i++) {
- display(e1[i]);
- }
- break;
- case 2 : /*adding a new member in the employee list created */
- num++;
- i = num-1;
- printf("Employee ID:");
- scanf("%d", &(e1[i].empId));
- getchar();
- printf("Employee Name:");
- fgets(e1[i].name, 255, stdin);
- e1[i].name[strlen(e1[i].name) - 1] = '\0';
- printf("Basic Salary:");
- scanf("%d", &(e1[i].basic));
- printf("Bonus:");
- scanf("%d", &(e1[i].bonus));
- printf("Enter the deductions: \n");
- printf("Absent: ");
- scanf("%d", &(e1[i].absent));
- printf("\n");
- break;
- case 3 : /* gross and net salary calculation */
- for (i = 0; i < num; i++) {
- e1[i].gross = e1[i].basic + e1[i].bonus;
- e1[i].salaryDeduc = (0.04 * e1[i].absent) * e1[i].basic;
- e1[i].net = e1[i].gross - e1[i].salaryDeduc;
- }
- 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");
- }
- break;
- case 4 :
- exit(0);
- break;
- default: printf("error");
- }
- printf("\n\t\tPress any key to go back in Main Menu...");
- getch();
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment