📅  最后修改于: 2023-12-03 14:49:55.201000             🧑  作者: Mango
本系统是基于C语言和文件处理技术开发的员工记录系统。系统包含员工信息的录入、查询、修改和删除功能。所有员工信息都存储在文件中,可以在多次运行系统后保持数据不变。
当用户选择录入员工信息时,系统会要求用户输入员工的姓名、年龄、性别、地址等基本信息,并将信息写入到文件中。为保证信息的正确性,系统会对用户输入的内容进行简单的校验。
// 将员工信息写入到文件
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);
}
当用户选择查询员工信息时,系统会将文件中的所有员工信息读取出来,并展示在屏幕上。用户可以根据姓名、性别等信息进行筛选,并可以查看员工的详细信息。
// 根据姓名查找员工信息
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);
}
当用户选择修改员工信息时,系统会要求用户输入员工的姓名,并将该员工的所有信息展示在屏幕上供用户修改。修改后的信息会被写入到文件中。
// 根据姓名修改员工信息
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");
}
当用户选择删除员工信息时,系统会要求用户输入员工的姓名,并将该员工的信息从文件中删除。
// 根据姓名删除员工信息
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");
}
录入员工信息
查询员工信息
修改员工信息
删除员工信息