Untitled

 avatar
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