📜  使用文件处理的C员工记录系统(1)

📅  最后修改于: 2023-12-03 14:49:55.201000             🧑  作者: Mango

使用文件处理的C员工记录系统

简介

本系统是基于C语言和文件处理技术开发的员工记录系统。系统包含员工信息的录入、查询、修改和删除功能。所有员工信息都存储在文件中,可以在多次运行系统后保持数据不变。

系统功能
1. 员工信息录入

当用户选择录入员工信息时,系统会要求用户输入员工的姓名、年龄、性别、地址等基本信息,并将信息写入到文件中。为保证信息的正确性,系统会对用户输入的内容进行简单的校验。

// 将员工信息写入到文件
void writeEmployeeToFile(Employee e) {
    FILE *fp;
    fp = fopen("employee.txt", "a+");
    fprintf(fp, "%s,%d,%c,%s\n", e->name, e->age, e->gender, e->address);
    fclose(fp);
}
2. 员工信息查询

当用户选择查询员工信息时,系统会将文件中的所有员工信息读取出来,并展示在屏幕上。用户可以根据姓名、性别等信息进行筛选,并可以查看员工的详细信息。

// 根据姓名查找员工信息
void searchEmployeeByName(char* name) {
    FILE *fp;
    char line[MAX_LENGTH];
    Employee e;
    fp = fopen("employee.txt", "r");
    while(fscanf(fp, "%s", line) != EOF) {
        parseEmployee(line, e);
        if(strcmp(e->name, name) == 0) {
            printEmployee(e);
        }
    }
    fclose(fp);
}
3. 员工信息修改

当用户选择修改员工信息时,系统会要求用户输入员工的姓名,并将该员工的所有信息展示在屏幕上供用户修改。修改后的信息会被写入到文件中。

// 根据姓名修改员工信息
void updateEmployeeByName(char* name) {
    FILE *fp1, *fp2;
    char line[MAX_LENGTH];
    Employee e;
    fp1 = fopen("employee.txt", "r");
    fp2 = fopen("temp.txt", "w");
    while(fscanf(fp1, "%s", line) != EOF) {
        parseEmployee(line, e);
        if(strcmp(e->name, name) == 0) {
            Employee e2 = readEmployeeFromUser();
            writeEmployeeToFile(fp2, e2);
        } else {
            writeEmployeeToFile(fp2, e);
        }
    }
    fclose(fp1);
    fclose(fp2);
    remove("employee.txt");
    rename("temp.txt", "employee.txt");
}
4. 员工信息删除

当用户选择删除员工信息时,系统会要求用户输入员工的姓名,并将该员工的信息从文件中删除。

// 根据姓名删除员工信息
void deleteEmployeeByName(char* name) {
    FILE *fp1, *fp2;
    char line[MAX_LENGTH];
    Employee e;
    fp1 = fopen("employee.txt", "r");
    fp2 = fopen("temp.txt", "w");
    while(fscanf(fp1, "%s", line) != EOF) {
        parseEmployee(line, e);
        if(strcmp(e->name, name) != 0) {
            writeEmployeeToFile(fp2, e);
        }
    }
    fclose(fp1);
    fclose(fp2);
    remove("employee.txt");
    rename("temp.txt", "employee.txt");
}
系统展示

录入员工信息

录入员工信息

查询员工信息

查询员工信息

修改员工信息

修改员工信息

删除员工信息

删除员工信息