C语言员工信息管理系统

这段代码是一个简单的员工信息管理系统,使用结构体、文件读写和链表来实现对员工信息的管理。代码主要包含以下几个函数:

函数解析

  • read() 函数用于从文件中读取员工信息并存储到结构体数组中。首先打开名为“职工信息.txt”的文件,文件中第一行是员工数量,接下来每一行是一个员工的信息。通过循环逐行读取文件内容,并使用 fscanf() 函数将信息存储到结构体数组 em 中。
  • write() 函数用于将员工信息写入文件。首先打开名为“职工信息录入.txt”的文件,文件中第一行是员工数量,接下来每一行是一个员工的信息。通过循环逐行将结构体数组 em 中的信息写入文件中。

代码示例

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

struct employee{ char number[10]; //编号 char name[10]; //姓名 char sex[10]; //性别 char birthday[10]; //出生年月 char date[10]; //入职年月 char degree[10]; //学历 char position[10]; //职位 char add[10]; //地址 char tel[20]; //电话 struct employee *next; }em[100], *head;

int n; //全局变量

void read() { FILE *fp; int i; if ((fp = fopen("职工信息.txt", "r")) == NULL) { printf("打开文件失败!请创建一个文本文件,文件名叫职工信息\n\n\n"); system("pause"); // 冻结屏幕 system("cls"); // 清屏 exit(0); } fscanf(fp, "%d\n", &n); for (i = 0; i < n; i++) { fscanf(fp, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", em[i].number, em[i].name, em[i].sex, em[i].birthday, em[i].date, em[i].degree, em[i].position, em[i].add, em[i].tel); } head = &em[0]; fclose(fp); }

void write() { FILE *fp; int i = 0; if ((fp = fopen("职工信息录入.txt", "w+")) == NULL) { printf("!!!打开文件失败!!!\n"); return; } fprintf(fp,"%d\n",n); while(i < n) { fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",em[i].number, em[i].name, em[i].sex, em[i].birthday, em[i].date, em[i].degree, em[i].position, em[i].add, em[i].tel); i++; } fclose(fp); }

代码解读

结构体 employee 定义了员工的各个属性,包括编号、姓名、性别、出生年月、入职年月、学历、职位、地址和电话。这里使用了指针 next 来连接不同员工的信息,实现链表结构。

全局变量 n 表示员工数量。

整个代码的主要逻辑是先从文件中读取员工信息,然后进行相应的操作(如添加、删除、修改、查询等),最后将修改后的员工信息写回文件中。

该代码仅是一个简单的示例,可以根据实际需求进行扩展,例如添加更多员工信息属性,实现更丰富的功能,如添加员工信息、删除员工信息、修改员工信息、查询员工信息等。

C语言员工信息管理系统:结构体、文件读写及链表应用

原文地址: https://www.cveoy.top/t/topic/ptU3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录