C语言实现企业人员管理系统
"企业人员管理系统的实现,基于C语言编程,包含增删查改等功能,并有文件操作进行数据存储。" 这个系统是为大一计算机实践课设计的企业人员管理系统,使用了C语言作为主要编程工具。它涉及的知识点包括: 1. **C语言基础**:系统代码基于C语言编写,用到了基本的输入输出、内存管理和结构体等C语言特性。例如,`#include<stdio.h>`,`#include<stdlib.h>`,`#include<string.h>`等头文件包含了C语言的标准库函数。 2. **结构体(Struct)**:定义了一个名为`Worker`的结构体,用于存储员工的信息,包括编号、姓名、性别、出生年月、工作年月、学历、职务、住址、电话和工资等字段。这展示了如何在C语言中使用结构体来组合多个不同类型的数据。 3. **链表(Linked List)**:系统中使用了链表数据结构来存储和操作员工数据。`typedefstructnode`定义了一个节点结构体,包含了`Worker`结构体的实例和指针,用于链接下一个节点和前一个节点。链表数据结构允许高效地插入和删除元素,且不需预先确定数据大小。 4. **函数声明与定义**:系统中的每个功能如添加员工、删除员工、查询员工、修改员工、排序员工等都是通过单独的函数实现的,如`addWorker()`, `delWorker()`, `querWorker()`, `revWorker()`, `sorWorker()`等。这些函数的声明在结构体定义之后,然后在文件的后面进行定义。 5. **文件操作**:系统支持从文件中读取和保存员工数据,`saveFile()`和`readFile()`函数分别实现了这一功能。这涉及到C语言的文件流操作,如`fopen()`, `fclose()`, `fread()`, `fwrite()`等函数。 6. **用户交互**:`menu()`函数负责展示主菜单,让用户选择操作,而`goodbye()`函数则用于程序退出。这些函数处理用户输入并根据选择调用相应的功能函数。 7. **内存管理**:`malloc()`函数用于动态分配内存,创建链表的头节点。在程序结束时,如果没有特别的内存释放操作,可能会导致内存泄漏,这是C语言编程中需要注意的一个问题。 8. **控制台颜色设置**:`system("color B4")`命令用于设置控制台的颜色,使得输出更易读,但这种方法并不跨平台,只适用于Windows系统。 9. **流程控制**:`main()`函数作为程序的入口,调用`readFile()`读取数据,然后进入主菜单循环,根据用户选择调用相应功能。这种流程控制是C语言程序设计的基础。 通过这个系统,学生可以学习到C语言的基本编程技巧,链表数据结构的应用,以及简单的文件操作和用户交互设计。
#include <stdlib.h>
#include<string.h>
#include<windows.h>
//职工数据结构体
struct Worker
{
char num[20]; //编号
char name[20]; //姓名
char sex[20]; //性别
char birthday[20]; //出生年月
char workday[20]; //工作年月
char edu [20]; //学历
char job [20]; //职务
char addr[20]; //住址
char phone[20]; //电话
char salary[20] ; //工资
char namep[20];
};
//职工信息结构体
typedef struct node
struct Worker worker;
struct node *next;
struct node *prior;
}Node;
//函数声明
int menu(Node *worker);
void addWorker(Node *worker);
void delWorker(Node *worker); //删除职工
int querWorker(Node *worker); //查询职工
void revWorker(Node *worker); //修改职工
int sorWorker(Node *worker);
void saveFile (Node* worker); //写文件
void saveNode (Node* worker);
void readFile(Node *worker); //读文件
void next(Node* worker); //下一步
void goodbye(); //退出
//主函数入口
int main()
{
Node *worker;
worker = (Node*)malloc(sizeof(Node)); //创建头结点
剩余26页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展