Untitled
unknown
plain_text
a year ago
14 kB
6
Indexable
//main.c
#include <stdio.h>
#include <stdlib.h>
#include "employee.h"
int main() {
int choice, empid;
struct Employee emp;
while (1) {
printf("\n1. Collect Employee Info\n");
printf("2. Search for Employee\n");
printf("3. Modify Employee Info\n");
printf("4. Delete Employee Info\n");
printf("5. Display All Employees\n");
printf("6. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
collectEmployeeInfo(&emp);
saveToFile(&emp);
break;
case 2:
printf("Enter Employee ID to search: ");
scanf("%d", &empid);
searchEmployee(empid);
break;
case 3:
printf("Enter Employee ID to modify: ");
scanf("%d", &empid);
modifyEmployee(empid);
break;
case 4:
printf("Enter Employee ID to delete: ");
scanf("%d", &empid);
deleteEmployee(empid);
break;
case 5:
displayAllEmployees();
break;
case 6:
exit(0);
default:
printf("Invalid choice. Please try again.\n");
}
}
return 0;
}
//modify.c
#include <stdio.h>
#include <stdlib.h>
#include "employee.h"
#define FILENAME "employees.txt"
void modifyEmployee(int empid) {
struct Employee emp;
emp.empname = (char *)malloc(100 * sizeof(char));
emp.designation = (char *)malloc(50 * sizeof(char));
if (emp.empname == NULL || emp.designation == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
FILE *file = fopen(FILENAME, "r");
FILE *tempFile = fopen("temp.txt", "w");
if (file && tempFile) {
int found = 0;
int choice;
while (fscanf(file, "%d,%[^,],%d,%[^\n]\n", &emp.empid, emp.empname, &emp.esalary, emp.designation) != EOF) {
if (emp.empid == empid) {
found = 1;
do {
printf("Current Info: ID: %d, Name: %s, Salary: %d, Designation: %s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
printf("What would you like to modify?\n");
printf("1. Name\n");
printf("2. Salary\n");
printf("3. Designation\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter new name: ");
scanf(" %[^\n]", emp.empname);
break;
case 2:
printf("Enter new salary: ");
scanf("%d", &emp.esalary);
break;
case 3:
printf("Enter new designation: ");
scanf(" %[^\n]", emp.designation);
break;
case 4:
break;
default:
printf("Invalid choice. Please try again.\n");
}
} while (choice != 4);
}
fprintf(tempFile, "%d,%s,%d,%s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
}
fclose(file);
fclose(tempFile);
remove(FILENAME);
rename("temp.txt", FILENAME);
if (found) {
printf("Employee information updated.\n");
} else {
printf("Employee with ID %d not found.\n", empid);
}
} else {
printf("Error opening files.\n");
}
free(emp.empname);
free(emp.designation);
}
//collet.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "employee.h"
void collectEmployeeInfo(struct Employee *emp) {
emp->empname = (char *)malloc(100 * sizeof(char));
emp->designation = (char *)malloc(50 * sizeof(char));
if (emp->empname == NULL || emp->designation == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
printf("Enter Employee ID: ");
//search.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "employee.h"
#define FILENAME "employees.txt"
void searchEmployee(int empid) {
struct Employee emp;
emp.empname = (char *)malloc(100 * sizeof(char));
emp.designation = (char *)malloc(50 * sizeof(char));
if (emp.empname == NULL || emp.designation == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
FILE *file = fopen(FILENAME, "r");
if (file) {
while (fscanf(file, "%d,%[^,],%d,%[^\n]\n", &emp.empid, emp.empname, &emp.esalary, emp.designation) != EOF) {
if (emp.empid == empid) {
printf("Employee Found:\n");
printf("ID: %d, Name: %s, Salary: %d, Designation: %s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
fclose(file);
free(emp.empname);
free(emp.designation);
return;
}
}
printf("Employee with ID %d not found.\n", empid);
fclose(file);
} else {
printf("Error opening file for reading.\n");
}
free(emp.empname);
free(emp.designation);
}
//delete.c
#include <stdio.h>
#include <stdlib.h>
#include "employee.h"
#define FILENAME "employees.txt"
void deleteEmployee(int empid) {
struct Employee emp;
emp.empname = (char *)malloc(100 * sizeof(char));
emp.designation = (char *)malloc(50 * sizeof(char));
FILE *file = fopen(FILENAME, "r");
FILE *tempFile = fopen("temp.txt", "w");
if (file && tempFile) {
int found = 0;
while (fscanf(file, "%d,%[^,],%d,%[^\n]\n", &emp.empid, emp.empname, &emp.esalary, emp.designation) != EOF) {
if (emp.empid != empid) {
fprintf(tempFile, "%d,%s,%d,%s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
} else {
found = 1;
}
}
fclose(file);
fclose(tempFile);
remove(FILENAME);
rename("temp.txt", FILENAME);
if (found) {
printf("Employee with ID %d deleted successfully.\n", empid);
} else {
printf("Employee with ID %d not found.\n", empid);
}
} else {
printf("Error opening files.\n");
}
free(emp.empname);
free(emp.designation);
}
//display.c
#include <stdio.h>
#include <stdlib.h>
#include "employee.h"
#define FILENAME "employees.txt"
void displayAllEmployees() {
struct Employee emp;
emp.empname = (char *)malloc(100 * sizeof(char));
emp.designation = (char *)malloc(50 * sizeof(char));
FILE *file = fopen(FILENAME, "r");
if (file) {
printf("\nEmployee List:\n");
printf("-----------------------------------------------------\n");
printf("ID\tName\t\tSalary\tDesignation\n");
printf("-----------------------------------------------------\n");
while (fscanf(file, "%d,%[^,],%d,%[^\n]\n", &emp.empid, emp.empname, &emp.esalary, emp.designation) != EOF) {
printf("%d\t%s\t%d\t%s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
}
fclose(file);
} else {
printf("Error opening file for reading.\n");
}
free(emp.empname);
free(emp.designation);
}
//employee.h
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
// Structure to represent an employee
struct Employee {
int empid; // Employee ID
char *empname; // Employee Name (pointer to dynamically allocated memory)
int esalary; // Employee Salary
char *designation; // Employee Designation (pointer to dynamically allocated memory)
};
// Function declarations
void collectEmployeeInfo(struct Employee *emp);
void saveToFile(struct Employee *emp);
void searchEmployee(int empid);
void modifyEmployee(int empid);
void deleteEmployee(int empid);
void displayAllEmployees();
#endif
//save.c
#include <stdio.h>
#include "employee.h"
#define FILENAME "employees.txt"
void saveToFile(struct Employee *emp) {
FILE *file = fopen(FILENAME, "a");
if (file) {
fprintf(file, "%d,%s,%d,%s\n", emp->empid, emp->empname, emp->esalary, emp->designation);
fclose(file);
} else {
printf("Error opening file for writing.\n");
}
}
scanf("%d", &emp->empid);
printf("Enter Employee Name: ");
scanf(" %[^\n]", emp->empname);
printf("Enter Employee Salary: ");
scanf("%d", &emp->esalary);
printf("Enter Designation: ");
scanf(" %[^\n]", emp->designation);
}
//search.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "employee.h"
#define FILENAME "employees.txt"
void searchEmployee(int empid) {
struct Employee emp;
emp.empname = (char *)malloc(100 * sizeof(char));
emp.designation = (char *)malloc(50 * sizeof(char));
if (emp.empname == NULL || emp.designation == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
FILE *file = fopen(FILENAME, "r");
if (file) {
while (fscanf(file, "%d,%[^,],%d,%[^\n]\n", &emp.empid, emp.empname, &emp.esalary, emp.designation) != EOF) {
if (emp.empid == empid) {
printf("Employee Found:\n");
printf("ID: %d, Name: %s, Salary: %d, Designation: %s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
fclose(file);
free(emp.empname);
free(emp.designation);
return;
}
}
printf("Employee with ID %d not found.\n", empid);
fclose(file);
} else {
printf("Error opening file for reading.\n");
}
free(emp.empname);
free(emp.designation);
}
//delete.c
#include <stdio.h>
#include <stdlib.h>
#include "employee.h"
#define FILENAME "employees.txt"
void deleteEmployee(int empid) {
struct Employee emp;
emp.empname = (char *)malloc(100 * sizeof(char));
emp.designation = (char *)malloc(50 * sizeof(char));
FILE *file = fopen(FILENAME, "r");
FILE *tempFile = fopen("temp.txt", "w");
if (file && tempFile) {
int found = 0;
while (fscanf(file, "%d,%[^,],%d,%[^\n]\n", &emp.empid, emp.empname, &emp.esalary, emp.designation) != EOF) {
if (emp.empid != empid) {
fprintf(tempFile, "%d,%s,%d,%s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
} else {
found = 1;
}
}
fclose(file);
fclose(tempFile);
remove(FILENAME);
rename("temp.txt", FILENAME);
if (found) {
printf("Employee with ID %d deleted successfully.\n", empid);
} else {
printf("Employee with ID %d not found.\n", empid);
}
} else {
printf("Error opening files.\n");
}
free(emp.empname);
free(emp.designation);
}
//display.c
#include <stdio.h>
#include <stdlib.h>
#include "employee.h"
#define FILENAME "employees.txt"
void displayAllEmployees() {
struct Employee emp;
emp.empname = (char *)malloc(100 * sizeof(char));
emp.designation = (char *)malloc(50 * sizeof(char));
FILE *file = fopen(FILENAME, "r");
if (file) {
printf("\nEmployee List:\n");
printf("-----------------------------------------------------\n");
printf("ID\tName\t\tSalary\tDesignation\n");
printf("-----------------------------------------------------\n");
while (fscanf(file, "%d,%[^,],%d,%[^\n]\n", &emp.empid, emp.empname, &emp.esalary, emp.designation) != EOF) {
printf("%d\t%s\t%d\t%s\n", emp.empid, emp.empname, emp.esalary, emp.designation);
}
fclose(file);
} else {
printf("Error opening file for reading.\n");
}
free(emp.empname);
free(emp.designation);
}
//employee.h
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
// Structure to represent an employee
struct Employee {
int empid; // Employee ID
char *empname; // Employee Name (pointer to dynamically allocated memory)
int esalary; // Employee Salary
char *designation; // Employee Designation (pointer to dynamically allocated memory)
};
// Function declarations
void collectEmployeeInfo(struct Employee *emp);
void saveToFile(struct Employee *emp);
void searchEmployee(int empid);
void modifyEmployee(int empid);
void deleteEmployee(int empid);
void displayAllEmployees();
#endif
//save.c
#include <stdio.h>
#include "employee.h"
#define FILENAME "employees.txt"
void saveToFile(struct Employee *emp) {
FILE *file = fopen(FILENAME, "a");
if (file) {
fprintf(file, "%d,%s,%d,%s\n", emp->empid, emp->empname, emp->esalary, emp->designation);
fclose(file);
} else {
printf("Error opening file for writing.\n");
}
}Editor is loading...
Leave a Comment