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

📅  最后修改于: 2023-12-03 15:22:24.382000             🧑  作者: Mango

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

这是一个用于记录公司员工信息的 C 语言程序,它使用了文件处理技术,可以方便地添加、修改、删除和查询员工信息。

实现功能
  • 添加员工信息
  • 修改员工信息
  • 删除员工信息
  • 查询员工信息
  • 显示所有员工信息
代码示例

下面是一个简单的代码示例,它可以添加员工信息并将其保存到文件中:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Employee {
    char name[20];
    int age;
    double salary;
};

int main() {
    struct Employee emp;
    FILE *fp;
    char filename[20] = "employees.dat";
    char choice;

    do {
        printf("Enter employee name: ");
        scanf("%s", emp.name);
        printf("Enter employee age: ");
        scanf("%d", &emp.age);
        printf("Enter employee salary: ");
        scanf("%lf", &emp.salary);

        fp = fopen(filename, "ab");

        if (fp == NULL) {
            printf("Error opening file!\n");
            return 1;
        }

        fwrite(&emp, sizeof(struct Employee), 1, fp);
        printf("Employee record added successfully!\n");

        fclose(fp);

        printf("Do you want to add another record? (y/n) ");
        scanf(" %c", &choice);

    } while (choice == 'y' || choice == 'Y');

    return 0;
}
代码解析

此程序定义了一个 Employee 结构体,它包括员工的姓名、年龄和薪水。程序使用 do-while 循环来连续添加员工信息,每次将其保存到文件中。

程序首先提示用户输入姓名、年龄和薪水,然后将这些值存储在 emp 结构体中。接下来它使用 fopen 函数打开文件,如果文件不存在,则创建一个新文件。

然后,程序使用 fwrite 函数将 emp 结构体的内容写入文件中,接着关闭文件。最后,程序询问用户是否要继续添加,如果是,则再次进入循环,否则退出程序。

其他功能的实现

除了上述示例代码中的添加功能,程序还可以实现修改、删除、查询和显示所有员工信息的功能。

这些功能的实现与添加功能类似,只需使用不同的函数来读取、修改或删除文件中的数据。以下是一个查找并显示所有员工信息的示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Employee {
    char name[20];
    int age;
    double salary;
};

void display(struct Employee emp[]) {
    int i = 0;
    FILE *fp;
    char filename[20] = "employees.dat";

    fp = fopen(filename, "rb");

    if (fp == NULL) {
        printf("Error opening file!\n");
        return;
    }

    printf("EMPLOYEE NAME\tAGE\tSALARY\n");

    while (fread(&emp[i], sizeof(struct Employee), 1, fp)) {
        printf("%s\t\t%d\t%.2lf\n", emp[i].name, emp[i].age, emp[i].salary);
        i++;
    }

    fclose(fp);
}

int main() {
    struct Employee emp[10];
    int i, n = 0;

    display(emp);

    return 0;
}
总结

本文介绍了如何使用文件处理技术来记录公司员工信息。程序实现了添加、修改、删除、查询和显示所有员工信息的功能,以展示文件处理的强大功能。