Untitled
unknown
plain_text
5 months ago
14 kB
2
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