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