职工信息管理系统(C语言)

目录

1.前言

2.实现功能

3.流程图 

4.源码

5.总结


1.前言

        距学习C语言已经相当长的一段时间了,编写一个小项目,功能实现可能不是很完美,算是复习和记录吧!

2.实现功能

0.录入职工信息                     
1.按工资高低排序
2.修改职工信息
3.显示职工信息
4.删除职工信息
5.查询职工信息
6.退出系统

职工号是随机生成的

3.流程图 

4.源码

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MAXSIZE 100  //符号常量 用来申请100个单元的存储空间
#define N 2          //创建数组个数,可更改
int length=0;        //全局变量,用来表示当前存储记录的条数
struct employee 
{
	int No;               //职工号
	char name[20];        //姓名
	char sex[10];         //性别
	char age[10];         //年龄
	char degree[10];      //学历 
	char salary[20];      //工资 
	char addr[35];        //住址 
	char tel[20];         //电话 
}em[N];          

int select(struct employee ly[])
{
  int i,index=-1;
  char name[20];
  for(i=0;i<length;i++)
   if(strcmp(ly[i].name,name)==0)       //strcmp()比较字符串的大小,如果返回值为0则表示2个字符串相等
     {
       index=i;
       break;
     }
  return index;
}

//录入职工信息
void add(struct employee ly[])
{
    int i,number;
	printf("请输入录入信息的职工人数:");
	scanf("%d",&number);
	for(i=0;i<number;i++)
	{
		srand(time(NULL));
		ly[i].No=rand()%1000+2014000;   //随机数范围2014000~2014999
		if(ly[i].No!=ly[i-1].No)
		printf("\n");
		printf("随机生成的职工号:%d\n",ly[i].No);
	if(MAXSIZE==length) 
	return;                  //如果表已经存满,则不能添加记录
    printf("请输
### C语言开发员工信息管理系统教程与示例代码 C语言是一种功能强大且灵活的编程语言,非常适合用于开发小型的应用程序,例如员工信息管理系统。此类系统通常需要实现增删改查功能,并支持数据持久化存储。以下是一个基于C语言开发的员工信息管理系统的完整示例[^1]。 #### 1. 系统功能概述 该系统实现了以下功能: - **添加员工信息**:将新员工的信息保存到系统中。 - **删除员工信息**:根据员工ID或其他标识符删除指定员工的信息。 - **修改员工信息**:更新现有员工的信息。 - **查询员工信息**:通过员工ID或其他条件查找员工信息。 - **数据持久化**:将员工信息保存到文件中,确保数据不会因程序关闭而丢失。 #### 2. 示例代码 以下是员工信息管理系统的核心代码片段: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_WORKERS 100 typedef struct { int id; char name[50]; int age; float salary; } Worker; Worker worker[MAX_WORKERS]; int worker_count = 0; // 添加员工信息 void add_worker() { if (worker_count >= MAX_WORKERS) { printf("系统已满,无法添加更多员工!\n"); return; } Worker new_worker; printf("请输入员工ID: "); scanf("%d", &new_worker.id); printf("请输入员工姓名: "); scanf("%s", new_worker.name); printf("请输入员工年龄: "); scanf("%d", &new_worker.age); printf("请输入员工薪资: "); scanf("%f", &new_worker.salary); worker[worker_count++] = new_worker; printf("员工信息添加成功!\n"); } // 保存员工信息到文件 void save_workers_to_file() { FILE *fp; if ((fp = fopen("worker_list.txt", "wb")) == NULL) { printf("打开文件失败!!!!\n"); exit(0); } for (int i = 0; i < worker_count; i++) { if (fwrite(&worker[i], sizeof(Worker), 1, fp) != 1) { printf("文件写入错误!!!!\n"); } } fclose(fp); printf("员工信息已保存到文件。\n"); } // 加载员工信息从文件 void load_workers_from_file() { FILE *fp; if ((fp = fopen("worker_list.txt", "rb")) == NULL) { printf("没有找到保存的员工信息文件。\n"); return; } worker_count = 0; while (fread(&worker[worker_count], sizeof(Worker), 1, fp) == 1) { worker_count++; } fclose(fp); printf("员工信息已从文件加载。\n"); } // 主菜单 void main_menu() { int choice; do { printf("\n员工信息管理系统\n"); printf("1. 添加员工信息\n"); printf("2. 删除员工信息\n"); printf("3. 修改员工信息\n"); printf("4. 查询员工信息\n"); printf("5. 保存员工信息到文件\n"); printf("6. 加载员工信息从文件\n"); printf("0. 退出系统\n"); printf("请选择操作: "); scanf("%d", &choice); switch (choice) { case 1: add_worker(); break; case 5: save_workers_to_file(); break; case 6: load_workers_from_file(); break; case 0: printf("感谢使用员工信息管理系统!\n"); break; default: printf("无效的选择,请重新输入!\n"); } } while (choice != 0); } int main() { main_menu(); return 0; } ``` #### 3. 关键点解析 - **结构体定义**:`Worker` 结构体用于存储员工的基本信息,包括ID、姓名、年龄和薪资等字段[^1]。 - **文件操作**:通过 `fopen`、`fwrite` 和 `fread` 函数实现数据的持久化存储[^2]。 - **模块化设计**:每个功能被封装为独立的函数,便于维护和扩展[^3]。 #### 4. 学习建议 - 深入理解 C 语言中的结构体和文件操作相关知识。 - 尝试在现有功能基础上增加新的功能模块,例如按薪资排序或导出员工信息为 CSV 文件。
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值