2 Prepare Employee Ledger
Fri Aug 25 2023 06:26:12 GMT+0000 (Coordinated Universal Time)
Saved by @109_Vivek
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> void insert(int employeeID[], char name[100][100], int expenditure[100], int salary[100], int *n) { printf("Enter Employee ID : "); scanf("%d", &employeeID[*n]); printf("Enter Employee Name : "); scanf("%s", &name[*n]); printf("Enter Employee Expenditure : "); scanf("%d", &expenditure[*n]); printf("Enter Employee Salary : "); scanf("%d", &salary[*n]); (*n)++; } void display(int employeeID[], char name[100][100], int expenditure[], int salary[], int n) { int i; printf("\n EmployeeID Name Expenditure Salary\n"); for (i = 0; i < n; i++) { printf("%5d %5s %5d %5d \n", employeeID[i], name[i], expenditure[i], salary[i]); } } void sortEmployeeID(int employeeID[], char name[100][100], int expenditure[100], int salary[100], int n) { int i, key, j, temp1, temp2; char temp[100]; for (i = 1; i < n; i++) { key = employeeID[i]; strcpy(temp, name[i]); temp1 = expenditure[i]; temp2 = salary[i]; j = i - 1; while (j >= 0 && employeeID[j] > key) { employeeID[j + 1] = employeeID[j]; expenditure[j + 1] = expenditure[j]; strcpy(name[j + 1], name[j]); salary[j + 1] = salary[j]; j = j - 1; } employeeID[j + 1] = key; strcpy(name[j + 1], temp); expenditure[j + 1] = temp1; salary[j + 1] = temp2; } } void sortExpenditure(int expenditure[],int salary[],int n,int employeeID[],char name[][100]) { int i,j,t1,t2,t3; char t4[100]; for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) { if(expenditure[j]>expenditure[j+1]) { t1=expenditure[j]; expenditure[j]=expenditure[j+1]; expenditure[j+1]=t1; t2=salary[j]; salary[j]=salary[j+1]; salary[j+1]=t2; t3=employeeID[j]; employeeID[j]=employeeID[j+1]; employeeID[j+1]=t3; strcpy(t4,name[j]); strcpy(name[j],name[j+1]); strcpy(name[j+1],t4); } } } } void sortSalary(int employeeID[100], char name[100][100], int expenditure[100], int salary[100], int n) { int i,temp,temp2,j,temp4; char temp3[100]; for ( i = 0; i < n; i++) { int min = i; for ( j = i + 1; j < n; j++) { if (salary[j] < salary[min]) { min = j; } } // Swap temp = expenditure[i]; temp2 = employeeID[i]; strcpy(temp3 , name[i]); temp4 = salary[i]; expenditure[i] = expenditure[min]; employeeID[i] = employeeID[min]; strcpy(name[i] , name[min]); salary[i] = salary[min]; expenditure[min] = temp; employeeID[min] = temp2; strcpy(name[min],temp3); salary[min] = temp4; } } void searchMaxSalary(int employeeID[100], char name[100][100], int expenditure[100], int salary[100], int n) { int i; int maxSalaryIndex = 0; for ( i = 0; i < n; i++) { if (salary[i] > salary[maxSalaryIndex]) { maxSalaryIndex = i; } } printf("Employee ID : %d \n", employeeID[maxSalaryIndex]); printf("Name : %s \n", name[maxSalaryIndex]); printf("Expenditure : %d \n", expenditure[maxSalaryIndex]); printf("Salary : %d \n", salary[maxSalaryIndex]); } void searchEmployee(int employeeID[100], char name[100][100], int expenditure[100], int salary[100], int n) { int low=0,high=n,id,found,flag=0; printf("Enter Employee ID : "); scanf("%d",&id); // Repeat until the pointers low and high meet each other while (low <= high) { int mid = low + (high - low) / 2; if (employeeID[mid] == id) { flag=1; found = mid; } if (employeeID[mid] < id) { low = mid + 1; } else high = mid - 1; } if(flag==0) { printf("The value does not found"); } else{ printf("Value found \n"); printf("---------------\n"); printf("%d %s %d %d ",employeeID[found],name[found],expenditure[found],salary[found]); } } void main() { int choice; int employeeID[100]; char name[100][100]; int expenditure[100]; int salary[100]; int n; clrscr(); n=0; restart: printf("\n"); printf("1. Add Employee \n"); printf("2. Display Employee Data \n"); printf("3. Sort Employee ID using Insertion Sort \n"); printf("4. Sort Expenditure using Bubble Sort \n"); printf("5. Sort Salary using Selection Sort \n"); printf("6. Search Max Salary using Linear Search \n"); printf("7. Search by Employee ID using Binary Search \n"); printf("8. Exit \n"); printf("Enter Your Choice : "); scanf("%d", &choice); switch (choice) { case 1: insert(employeeID, name, expenditure, salary, &n); break; case 2: display(employeeID, name, expenditure, salary, n); break; case 3: sortEmployeeID(employeeID, name, expenditure, salary, n); break; case 4: sortExpenditure(expenditure,salary,n,employeeID,name); break; case 5: sortSalary(employeeID, name, expenditure, salary, n); case 6: searchMaxSalary(employeeID, name, expenditure, salary, n); break; case 7: searchEmployee(employeeID,name,expenditure,salary,n); break; case 8: exit(0); break; default: printf("Invalid Choice ! "); break; } goto restart; }
Comments