C语言实现企业员工管理系统开发

C语言实现企业员工管理系统开发攻略

1. 确定功能需求和数据结构

在开始编写代码之前,需要先确定功能需求和相应的数据结构。对于企业员工管理系统,通常需要包括以下功能:

  • 添加员工
  • 删除员工
  • 修改员工信息
  • 查询员工信息
  • 显示员工列表

其中,员工的信息通常包括姓名、年龄、性别、职位等。根据这些需求,可以定义如下数据结构:

// 定义 Employee 结构体,表示员工信息
typedef struct Employee{
    char name[20];  // 姓名
    int age;        // 年龄
    char gender;    // 性别
    char position[20];  // 职位
    struct Employee *next;  // 链表的下一个员工
} Employee;

// 定义全局变量,表示员工列表的头指针
Employee *head = NULL;

2. 实现功能模块

添加员工

添加员工的过程包括输入员工信息和将员工添加到列表中两个步骤。具体代码如下:

void addEmployee() {
    Employee *new_employee = (Employee*)malloc(sizeof(Employee));
    printf("请输入员工姓名:");
    scanf("%s", new_employee->name);
    printf("请输入员工年龄:");
    scanf("%d", &new_employee->age);
    printf("请输入员工性别:");
    scanf(" %c", &new_employee->gender);
    printf("请输入员工职位:");
    scanf("%s", new_employee->position);

    new_employee->next = head;
    head = new_employee;

    printf("添加成功!\n");
}

删除员工

删除员工需要指定员工的姓名。由于员工信息保存在链表中,需要按照以下步骤进行:

  1. 找到需要删除的员工,同时找到该员工的前一个员工;
  2. 将前一个员工的指针指向需要删除的员工的下一个员工,即跳过需要删除的员工。

具体代码如下:

void deleteEmployee() {
    char name[20];
    printf("请输入需要删除的员工姓名:");
    scanf("%s", name);

    Employee *pre = NULL;
    Employee *cur = head;

    while(cur != NULL && strcmp(cur->name, name) != 0) {
        pre = cur;
        cur = cur->next;
    }

    if(cur == NULL) {
        printf("没有找到该员工!\n");
        return;
    }

    if(pre == NULL) {
        head = cur->next;
    } else {
        pre->next = cur->next;
    }

    free(cur);
    printf("删除成功!\n");
}

修改员工信息

修改员工信息同样需要指定员工的姓名。和删除员工类似,需要先找到需要修改的员工,然后修改相关信息。具体代码如下:

void modifyEmployee() {
    char name[20];
    printf("请输入需要修改的员工姓名:");
    scanf("%s", name);

    Employee *cur = head;
    while(cur != NULL && strcmp(cur->name, name) != 0) {
        cur = cur->next;
    }

    if(cur == NULL) {
        printf("没有找到该员工!\n");
        return;
    }

    printf("请输入员工姓名:");
    scanf("%s", cur->name);
    printf("请输入员工年龄:");
    scanf("%d", &cur->age);
    printf("请输入员工性别:");
    scanf(" %c", &cur->gender);
    printf("请输入员工职位:");
    scanf("%s", cur->position);

    printf("修改成功!\n");
}

查询员工信息

查询员工信息需要指定员工的姓名,查找员工并输出其相关信息即可。代码如下:

void queryEmployee() {
    char name[20];
    printf("请输入需要查询的员工姓名:");
    scanf("%s", name);

    Employee *cur = head;
    while(cur != NULL && strcmp(cur->name, name) != 0) {
        cur = cur->next;
    }

    if(cur == NULL) {
        printf("没有找到该员工!\n");
        return;
    }

    printf("姓名:%s\n", cur->name);
    printf("年龄:%d\n", cur->age);
    printf("性别:%c\n", cur->gender);
    printf("职位:%s\n", cur->position);
}

显示员工列表

显示员工列表需要遍历链表,依次输出每一个员工的信息。代码如下:

void displayList() {
    printf("姓名\t年龄\t性别\t职位\n");

    Employee *cur = head;
    while(cur != NULL) {
        printf("%s\t%d\t%c\t%s\n", cur->name, cur->age, cur->gender, cur->position);
        cur = cur->next;
    }
}

3. 完善程序并测试

将上述五个功能模块组合起来,形成完整的程序。在编写程序时,还需要添加程序界面、数据的存储、输入合法性的验证等功能。

下面给出两个示例:

示例1:添加一个员工并查询

1. 添加员工
2. 删除员工
3. 修改员工信息
4. 查询员工信息
5. 显示员工列表
0. 退出

请选择操作:1
请输入员工姓名:张三
请输入员工年龄:25
请输入员工性别:M
请输入员工职位:工程师
添加成功!

请选择操作:4
请输入需要查询的员工姓名:张三
姓名:张三
年龄:25
性别:M
职位:工程师

请选择操作:0

示例2:添加多个员工并显示员工列表

1. 添加员工
2. 删除员工
3. 修改员工信息
4. 查询员工信息
5. 显示员工列表
0. 退出

请选择操作:1
请输入员工姓名:张三
请输入员工年龄:25
请输入员工性别:M
请输入员工职位:工程师
添加成功!

请选择操作:1
请输入员工姓名:李四
请输入员工年龄:30
请输入员工性别:M
请输入员工职位:项目经理
添加成功!

请选择操作:5
姓名  年龄  性别  职位
李四  30  M   项目经理
张三  25  M   工程师

请选择操作:0

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现企业员工管理系统开发 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++编程语言实现单链表详情

    C++编程语言实现单链表详情 本文将详细讲解如何使用C++语言实现单链表。单链表是一种非常常见的数据结构,它由多个节点组成,在每个节点中存储一个数据元素和指向下一个节点的指针。本文将分步骤介绍如何设计和实现单链表。 1、单链表节点的定义 在C++中,我们可以定义一个节点类来表示单链表中的每个节点。每个节点中包含两个成员变量,一个是存储数据元素的变量,另一个是…

    C 2023年5月24日
    00
  • C/C++语言printf命令使用方法

    C/C++语言printf命令使用方法 一、printf命令的作用 printf命令是C语言和C++语言中的一个常用的输出函数,用于将指定的文字、字符、数字等信息输出到屏幕上。其语法为: printf("格式化字符串", 输出参数); 其中,格式化字符串是一个包含格式控制字符和普通字符的字符串,控制字符串中使用%占位符表示需要输出的变量的…

    C 2023年5月23日
    00
  • Dev-C++同时编译多个C或C++文件方法

    使用Dev-C++同时编译多个C或C++文件,需要进行如下步骤: 新建工程 打开Dev-C++,选择File -> New -> Project -> Console Application,点击“OK”按钮。在弹出的对话框中,输入项目名称和存储路径,点击“Next”按钮。 添加文件 在工程中,先新建一个主函数所在的.c或.cpp文件,然后…

    C 2023年5月23日
    00
  • VS2019开发Linux C++程序的实现步骤

    实现步骤: 安装Visual Studio 2019(注意:需要安装Linux工作负载) 在VS中安装Linux C++开发组件 在VS中创建一个新的Linux C++ 项目(例如console应用程序项目) 配置Linux环境,包括SSH连接、CMake、交叉编译器等。可以参考官方文档和其他教程进行配置。 编写C++代码并进行调试。在VS中按F5可启动调试…

    C 2023年5月23日
    00
  • vc6.0中c语言控制台程序中的定时技术(定时器)

    在VC6.0的控制台程序中,我们可以通过定时器技术来实现在指定的时间间隔内执行某个代码段的功能。下面是使用定时器的完整攻略: 步骤1:创建控制台程序 首先,我们需要创建一个控制台程序项目,并在main函数中添加代码,以便我们在程序执行时可以看到输出结果。 #include <stdio.h> int main() { printf("程…

    C 2023年5月22日
    00
  • C语言实现时区转换函数的实例

    C语言实现时区转换函数的实例 时区转换是编程中经常需要的一个功能。本文将为大家介绍如何使用C语言实现时区转换函数的实例,帮助大家快速掌握时区转换的实现方法。 什么是时区转换? 时区转换是将一个时间从一个时区转换到另一个时区的过程。由于地球是由多个时区组成的,因此如果在不同的时区中,同一时间点实际上在时钟上会显示不同的时间。时区转换可以让我们方便地在不同的时区…

    C 2023年5月23日
    00
  • C++ Cartographer源码中关于MapBuilder的声明与构造

    在C++ Cartographer源码中,MapBuilder模块的声明与构造均源于同一文件map_builder.h。这个文件定义了MapBuilder类,是生成地图的核心类之一,因为它将传递的轨迹数据和传感器数据相融合,生成完整的地图。下面展示了MapBuilder类的声明: class MapBuilder { public: … void Loa…

    C 2023年5月22日
    00
  • C语言中while(1)和while(0)的区别

    下面我会详细讲解 C 语言中 while(1) 和 while(0) 的区别,并且提供两个示例来说明它们的不同之处。 while(1) 和 while(0) 的区别 在 C 语言中,while(1) 和 while(0) 分别表示一个无限循环和一个循环不执行的语句。但是,它们实际上有一些细微的差别。 while(1) while(1) 可以被认为是一个无限循…

    C 2023年5月10日
    00
合作推广
合作推广
分享本页
返回顶部