数据结构简单的职工管理系统
- 格式:doc
- 大小:507.00 KB
- 文档页数:23
目录一、前言—--——--—-——-———-—————-———-——-———-—————---—-——————-—--————————-————————2二、需求分析—-———-—---—-——————————-———--——-—--——-————-—--——————————---—----—3 三、概要设计—-——-——-—————-———-—-—————————--——-----—--—--————--——-—---—-—————4四、详细设计—-———-———————--—-—-————-—-—————-—-—-———————-——-——-—-----————-—-—5五、调试分析————-————————-—————-——-————--—-——-——--——--—--—---—--——---—--—-——6六、用户使用说明—--——————-————-————-—-—-—-—--—————————-—————-—-———————-——-7 七、测试结果——————-—--—---——--——————--—-———----———--——-—-—-————————---—-———-8八、总结—-———---—-—--———-———-—--—---——--—————--—-—--—————--————————---—----—-11九、主要参考文献和附录—--——-——-—-————--——-——-—--———---—————-——-———————12前言员工管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来各个公司基本上都是靠传统的人工方式来管理员工信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。
辽宁工业大学课程设计说明书题目:数据结构课程设计学院(系):电子与信息工程学院专业班级:计算机科学与技术专业学号:学生姓名:指导教师:教师职称:副教授起止时间: 2009.12.01—2009.12.08课程设计(论文)任务及评语院(系):电子与信息工程教研室:软件工程目录第1章课程设计目的与要求 (1)1.1课程设计目的 (1)1.2课程设计的实验环境 (1)1.3课程设计的预备知识 (1)1.4课程设计要求 (1)第2章课程设计内容 (2)2.1第五类题目 (2)2.2题目的具体实现 (2)2.3题目内容 (2)2.4思考题解析 (16)总结 (18)参考文献 (19)第1章课程设计目的与要求1.1 课程设计目的本课程设计是计算机科学与技术专业、软件工程专业的专业技术实践课。
本实践课的主要目的是:使学生学会利用在课堂中学过的理论知识,解决相应的实际问题,深入理解和灵活掌握所学的内容,培养学生理论和实践相结合的能力,培养学生分析问题解决问题的能力。
同时,在实验步骤规范化、程序设计方法等方面受到比较系统和规范的训练。
通过实践设计使学生进一步加深对程序设计的规范化及对复杂程序设计步骤的理解。
1.2 课程设计的实验环境PC机,WindowsXP,Win-tc。
1.3 课程设计的预备知识C语言程序设计、高级程序设计应用、数据结构。
1.4 课程设计要求(1)认真查找资料,分析每个题目应选择的数据结构(逻辑结构和物理结构);(2)按时到实验室调试程序,遵守实验室的规章制度,爱护设备;(3)每个题目编写源程序时,每个子功能定义为相应的子函数,在主函数中调用各子函数,程序结构清晰,有必要的注释,可读性强。
(4)程序健壮性强,当数据输入错误时,要进行相应的处理;(5)分析算法的时间复杂度,要求算法的效率尽可能高;(6)对于排序算法,要验证排序算法的稳定性。
第2章课程设计内容2.1 第五类题目1、简单的职工管理系统a.问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。
数据结构员工管理系统一、前言数据结构员工管理系统是一种基于计算机技术和信息管理的管理系统,主要用于协调和管理企业或机构的人事事务,如员工基础信息、工资管理、考核等,方便将数据按照某种规则分类处理和管理,使管理人员能够更好地了解员工情况、加强员工管理、提高企业生产效率和员工满意度等。
本文将对数据结构员工管理系统的设计、实现和功能等方面进行详细介绍。
二、系统设计该系统基于MVC架构设计,将模型(Model)、视图(View)和控制器(Controller)进行了分离,简化了程序结构和实现难度。
其中,M表示业务模型,V表示用户界面,C表示控制器。
主要包括以下五个模块:1. 用户登录和权限管理模块:主要实现用户登录和权限管理,以区分管理员和普通员工的权限。
2. 员工基础信息模块:主要包括员工基本信息(如员工号、姓名、性别、年龄、身份证号、联系方式等)、工龄、职位、部门、入职时间、家庭住址等。
3. 工资管理模块:主要包括员工薪资计算和管理模块,包括基础薪资、津贴、奖励和交通补贴等。
4. 员工考勤管理模块:主要实现员工考勤信息,包括上班时间、下班时间、迟到、早退、请假、加班等。
5. 员工绩效管理模块:主要是对员工的绩效进行管理和考核,包括个人绩效、部门绩效、公司绩效等考核指标。
三、系统功能1. 员工信息管理:通过该系统,管理员可以随时查询员工的基础信息、工资信息、考勤信息、绩效考核信息等。
2. 工资管理:系统可以自动计算每个员工的工资,包括基础工资、津贴、奖励和交通补贴等,从而可以减少人工计算时间,提高工资管理的准确性和效率。
3. 员工考勤管理:员工可以直接在系统中申请请假、加班等,管理员可以及时审核,确保员工的考勤情况的准确性和公正性。
4. 绩效管理:根据设定的考核标准,通过该系统可以对员工个人、部门和企业整体的绩效进行定量评估,反映企业或机构的整体运营能力和员工管理效果。
5. 系统备份与恢复:系统还可以设置自动备份数据并进行定期备份以及手动恢复数据等操作,确保数据的安全性和完整性。
#include <string>#include <iostream>#include <fstream>#include <iomanip>#include <memory.h>#include <stdio.h>#include <conio.h>#include <stdlib.h>using namespace std;struct Employee{//声明职工的结构作为链表节点。
//-----数据域-----string m_Code;string m_Name;unsigned short int m_Year; string m_Sex;string m_Post;string m_Department;unsigned int m_Wage;//链表节点的指针域---struct Employee* Next;};//-----个人习惯:取别名-------typedef struct Employee Node;typedef Node* Link;//-------函数声明-------------Link Create(Link Head);void Release(Link Head);Link Add(Link Head);bool Search(Link Head);Link Search_Unique(Link Head);void Display_List(Link Head);void Display_Node(Link pNode);Link Modify(Link Head);Link Del(Link Head);void Save_ByFile(Link Head,fstream& ofile); Link Sort(Link Head);//-------函数实现--------------------------Link Create(Link Head){//创建一个带头节点的空链表。
目录一、问题描述 1二、测试数据 1三、算法思想 1四、模块划分 1五、数据结构 2六、源程序 2七、测试情况 7八、设计体会 8参考文献 9一、问题描述(1)自定义一个类型表示员工各信息,定义一个顺序表存储员工信息,包括员工编号、姓名、性别、职务、出生年月、学历、电话、地址等。
(2)系统能够完成员工信息的输入、输出、查询、更新、插入、删除、排序等功能,并且数据能由文件导入和导出到文件。
(3)通过菜单选择进行哪一项操作,并输出每一项操作结果。
二、测试数据1 李一女 1989.10.2 本科职员 188******** 广西南宁2 苏三女 1986.3.18 本科职员 180******** 广西北海3 孙大云女 1987.12.1 本科秘书 180******** 广西柳州5 陈二男 1986.7.12 硕士经理 150******** 广西梧州三、算法思想线性表是最常用且最简单的一种线性结构,由数据元素组成,而数据元素又可以包含若干个数据项。
线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,通常用数组表示。
对顺序表的操作可借鉴数组的算法。
在本次课程设计中的员工管理信息系统,每个员工为一个数据元素,包括编号、姓名、性别、学历等数据项。
用一个数组来存储员工信息,对其进行的输入、删除、输出等操作可由一般数组的算法变换而得。
四、模块划分(1)自定义一个数据类型ElemType,表示员工信息,定义一个顺序表List,将员工信息存放于顺序表中,包括员工的编号、姓名、性别、职务、出生年月、学历、电话、地址等,并完成顺序表的初始化;(2)void ListInput(List &L,int n),函数作用是输入员工信息,需要一个循环完成每个员工信息的输入,最后要修改表长;(3)int LocateElem(List L,int num),函数作用是在顺序表里查找某编号员工的信息,从第一个员工开始找,通过编号的两两比较,若找到与要查找员工的编号一致的员工,则返回员工的位置,并在主函数中输出此与员工的信息;(4)void ListInsert(List &L,ElemType e)函数功能是新员工信息的插入,先判断表是否满或此员工的信息是否已存在,若是则不进行插入操作;否则,保持员工编号顺序不变,找到插入点的位置,把从插入点后一位的数据都往后移一个位置,把新信息插入,最后使表长增1;(5)void ListDelete(List &L,int bh)函数作用是员工信息的删除,若表空或所要删除的员工信息不存在,则不进行下一步操作;否则,把删除点后的数据都往前移覆盖其前一个元素,最后使表长减1;(6)void BubbleSort(List &L)函数功能是通过冒泡法试员工信息按编号从小到大排序,进行n-1趟,每趟使小编号的员工信息往上放在表的前端,把编号大的员工信息往下沉到表的末端;(7)ChangeM(List &L),更新员工信息,由菜单选择需要修改的信息项进行修改,并保存新的信息;(8)void newFile(List &L),生成一个新的txt文件,存放员工信息,存入计算机内存;(9)void readFile(List &L),把员工信息从文件中导出;(10)void main()主函数,通过菜单和各函数的调用实现各部分的操作。
数据结构员工管理系统正文:1.引言本文档旨在设计一个数据结构员工管理系统,用于管理公司内部的员工信息。
该系统将实现员工的基本信息维护、部门管理、工资管理、考勤管理等功能,以提高员工管理的效率和准确性。
2.系统概述2.1 系统目标员工管理系统的目标是简化公司内部的员工管理流程,提供一个可靠、高效的方式来记录和查询员工的信息、工资、考勤等。
2.2 主要功能- 员工信息维护:包括员工的基本信息(姓名、性别、年龄、联系方式等)、入职和离职信息、职位信息等。
- 部门管理:包括部门的创建、修改、删除,以及部门人员的调动和查询。
- 工资管理:包括员工的薪资设置、薪资发放记录、薪资查询等。
- 考勤管理:包括员工的考勤打卡记录、请假记录、加班记录等。
3.系统设计3.1 数据结构设计3.1.1 员工信息表员工信息表存储员工的基本信息,包括员工ID、姓名、性别、年龄、联系方式等字段。
3.1.2 部门表部门表存储部门的信息,包括部门ID、部门名称、部门描述等字段。
3.1.3 工资表工资表存储员工的工资信息,包括员工ID、基本工资、奖金、扣款等字段。
3.1.4 考勤表考勤表存储员工的考勤记录,包括员工ID、打卡时间、请假记录、加班记录等字段。
3.2 模块设计3.2.1 员工信息管理模块该模块实现对员工信息的增删改查功能,包括员工基本信息的维护、员工入职和离职操作等。
3.2.2 部门管理模块该模块实现对部门信息的增删改查功能,包括部门的创建、修改、删除,以及部门人员的调动和查询等操作。
3.2.3 工资管理模块该模块实现对员工工资信息的设置和查询功能,包括薪资设置、薪资发放记录的查询等操作。
3.2.4 考勤管理模块该模块实现对员工考勤信息的记录和查询功能,包括考勤打卡记录、请假记录、加班记录的记录和查询等操作。
4.系统实施4.1 开发环境本系统开发环境为Java语言,使用Eclipse开发工具,数据库使用MySQL。
4.2 系统架构本系统采用三层架构,分为表现层、业务逻辑层和数据访问层。
员工管理系统数据结构一、引言员工管理系统是一个用于管理和跟踪员工信息的软件系统。
它使用数据结构来存储和组织员工的相关数据,包括个人信息、工作经历、薪资、考勤记录等。
本文将详细介绍员工管理系统的数据结构设计和实现。
二、数据结构设计1. 员工信息员工信息是员工管理系统的核心数据之一,包含以下字段:- 员工ID:每一个员工在系统中的惟一标识符。
- 姓名:员工的姓名。
- 性别:员工的性别。
- 出生日期:员工的出生日期。
- 联系方式:员工的联系方式,如手机号码或者电子邮件地址。
- 部门:员工所属的部门。
- 职位:员工的职位。
- 入职日期:员工的入职日期。
为了高效地存储和检索员工信息,可以使用以下数据结构:- 哈希表:将员工ID作为键,员工信息作为值,用于快速查找和更新员工信息。
- 链表:用于处理哈希表中的冲突,当发生冲突时,将冲突的员工信息链接到同一哈希桶中。
2. 工作经历工作经历是记录员工在不同公司的工作经历的数据,包含以下字段:- 公司名称:员工曾经工作的公司名称。
- 职位:员工在该公司的职位。
- 入职日期:员工在该公司的入职日期。
- 离职日期:员工在该公司的离职日期。
为了存储员工的工作经历,可以使用以下数据结构:- 数组:用于存储员工的多个工作经历记录。
3. 薪资薪资是记录员工薪资信息的数据,包含以下字段:- 基本工资:员工的基本工资。
- 奖金:员工的奖金。
- 补贴:员工的补贴。
- 扣款:员工的扣款。
- 实际工资:员工的实际工资。
为了存储员工的薪资信息,可以使用以下数据结构:- 树状数组:用于高效地计算员工的实际工资,支持快速的更新和查询操作。
4. 考勤记录考勤记录是记录员工出勤情况的数据,包含以下字段:- 日期:考勤记录的日期。
- 上班时间:员工的上班时间。
- 下班时间:员工的下班时间。
- 考勤结果:员工的考勤结果,如正常、迟到、早退、缺勤等。
为了存储员工的考勤记录,可以使用以下数据结构:- 链表:用于按照日期顺序存储员工的考勤记录。
一、设计题目[问题描述]每个员工的信息包括:编号、姓名、性别、出生年月、学历职务、电话、住址等。
系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
[基本要求](1)排序:按不同关键字,对所有员工的信息进行排序。
(2)查询:按特定条件查找员工。
(3)更新:按编号对某个员工的某项信息进行修改。
(4)插入:加入新员工的信息。
(5)删除:按编号删除已离职的员工的信息。
二、运行环境Mrosoft Visual C++6.0三、算法设计的思想构造链表存储用户记录。
四、算法的流程图五、算法设计分析(1)构造顺序表存储用户记录。
(2)利用冒泡法对用户名和号码分别进行排序(3)利用直接查找法进行查找六、源代码#include"stdio.h"#include"stdlib.h"#include "string.h"//定义节点类型typedef struct node{char id[10];char name[10];char sex[10];char birth[10];char xueli[10];char zhiwu[10];char phone[10];char address[10];struct node *next;}node,*linklist;//头插法生成单链表int creatlist(linklist &L){linklist p;p=(linklist)malloc(sizeof(node));if(!p){return (0);}else{printf("请输入员工编号\n");scanf("%s",p->id);printf("请输入员工姓名\n");scanf("%s",p->name);printf("请输入员工性别\n");scanf("%s",p->sex);printf("请输入员工生日\n");scanf("%s",p->birth);printf("请输入员工学历\n");scanf("%s",p->xueli);printf("请输入员工职务\n");scanf("%s",p->zhiwu);printf("请输入员工电话\n");scanf("%s",p->phone);printf("请输入员工地址\n");scanf("%s",p->address);}p->next=L->next;L->next=p;}//初始化单链表int initlist(linklist &L){L=(linklist)malloc(sizeof(node));if(!L)return (0);L->next=NULL;return 1;}//显示所有员工信息void display(linklist &L){linklist p;for(p=L->next;p;p=p->next){printf("编号 %s",p->id);printf("姓名 %s",p->name);printf("性别 %s",p->sex);printf("生日 %s",p->birth);printf("学历 %s",p->xueli);printf("职务 %s",p->zhiwu);printf("电话 %s",p->phone);printf("地址 %s\n",p->address);}}//按id删除int del(linklist &L,char id[10]){node *p;node *r;p=L->next;r=L;while(!(strcmp(p->id,id)==0)&&p){r=p;p=p->next;}if(!p)printf("\n删除位置不合理\n");else{r->next=p->next;free(p);printf("删除成功\n");}return 1;}//查询idint searchid(linklist &L,char id[10]) {node *p;p=L;while(p){if(strcmp(p->id,id)==0){printf("编号 %s",p->id);printf("姓名 %s",p->name);printf("性别 %s",p->sex);printf("生日 %s",p->birth);printf("学历 %s",p->xueli);printf("职务 %s",p->zhiwu);printf("电话 %s",p->phone);printf("地址 %s\n",p->address);}p=p->next;}return 1;}//查询姓名int searchname(linklist &L,char name[10]) {node *p;p=L;while(p){if(strcmp(p->name,name)==0){printf("编号 %s",p->id);printf("姓名 %s",p->name);printf("性别 %s",p->sex);printf("生日 %s",p->birth);printf("学历 %s",p->xueli);printf("职务 %s",p->zhiwu);printf("电话 %s",p->phone);printf("地址 %s\n",p->address);}p=p->next;}return 1;}//修改int xiugai(linklist &L,char id[10]) {node *p;p=L;while(p){if(strcmp(p->id,id)==0){printf("请输入员工编号\n");scanf("%s",p->id);printf("请输入员工姓名\n");scanf("%s",p->name);printf("请输入员工性别\n");scanf("%s",p->sex);printf("请输入员工生日\n");scanf("%s",p->birth);printf("请输入员工学历\n");scanf("%s",p->xueli);printf("请输入员工职务\n");scanf("%s",p->zhiwu);printf("请输入员工电话\n");scanf("%s",p->phone);printf("请输入员工地址\n");scanf("%s",p->address);}p=p->next;}return 1;}//排序void Sort(linklist &L){。
数据结构课程设计简单的职工管理系统简单的职工管理系统设计1. 引言本文旨在设计一个简单的职工管理系统,用于匡助管理者进行职工信息的录入、查询、修改和删除等操作。
该系统基于数据结构的相关知识,通过合理的数据结构设计和算法实现,实现对职工信息的高效管理。
2. 功能需求2.1 职工信息录入系统提供一个录入界面,管理者可以输入职工的基本信息,包括职工编号、姓名、性别、年龄、职位等。
系统应该能够对输入的信息进行合法性验证,并将信息存储到合适的数据结构中。
2.2 职工信息查询系统提供一个查询界面,管理者可以根据职工的编号、姓名、职位等条件进行查询。
系统应该能够根据查询条件从数据结构中快速定位到符合条件的职工信息,并将结果展示给管理者。
2.3 职工信息修改系统提供一个修改界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行修改。
系统应该能够根据选择的职工信息,提供可修改的字段,并对输入的修改信息进行合法性验证,并更新数据结构中对应的职工信息。
2.4 职工信息删除系统提供一个删除界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行删除。
系统应该能够根据选择的职工信息,从数据结构中删除对应的职工信息,并给出相应的提示。
3. 数据结构设计为了高效地管理职工信息,我们可以采用链表作为基本的数据结构。
每一个节点表示一个职工信息,包括职工编号、姓名、性别、年龄、职位等字段。
节点之间通过指针进行连接,形成一个链表结构。
3.1 链表节点设计每一个链表节点包含以下字段:- 职工编号(int)- 姓名(string)- 性别(string)- 年龄(int)- 职位(string)- 指向下一个节点的指针(Node*)3.2 链表操作设计- 初始化链表:创建一个空链表,并初始化头节点指针为NULL。
- 添加节点:根据输入的职工信息创建一个新节点,并将其插入到链表的合适位置。
- 删除节点:根据职工的编号或者姓名等条件,找到对应的节点,并将其从链表中删除。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define LL long longusing namespace std;const int N = 1000;int sum=0;struct NODE {char name[100];char sex[10];char bir_date[20];char work_date[20];char xueli[100];char zhiwu[50];char address[100];char phonenum[20];} people[N];struct node {char name[100];char sex[10];char bir_date[20];char work_date[20];char xueli[100];char zhiwu[50];char address[100];char phonenum[20];} p;bool cmp_up_name(NODE a,NODE b){return strcmp(,)<0 ? true:false; }int cmp_down_name(NODE a,NODE b){return strcmp(,)>0 ? true:false; }int cmp_up_sex(NODE a,NODE b){return strcmp(a.sex,b.sex)<0 ? true:false;}int cmp_down_sex(NODE a,NODE b){return strcmp(a.sex,b.sex)>0 ? true:false;}int cmp_up_bir_date(NODE a,NODE b){return strcmp(a.bir_date,b.bir_date)<0 ? true:false;}int cmp_down_bir_date(NODE a,NODE b){return strcmp(a.bir_date,b.bir_date)>0 ? true:false;}int cmp_up_work_date(NODE a,NODE b){return strcmp(a.work_date,b.work_date)<0 ? true:false; }int cmp_down_work_date(NODE a,NODE b){return strcmp(a.work_date,b.work_date)>0 ? true:false; }int cmp_up_xueli(NODE a,NODE b){return strcmp(a.xueli,b.xueli)<0 ? true:false;}int cmp_down_xueli(NODE a,NODE b){return strcmp(a.xueli,b.xueli)>0 ? true:false;}int cmp_up_zhiwu(NODE a,NODE b){return strcmp(a.zhiwu,b.zhiwu)<0 ? true:false;}int cmp_down_zhiwu(NODE a,NODE b){return strcmp(a.zhiwu,b.zhiwu)>0 ? true:false;}int cmp_up_address(NODE a,NODE b){return strcmp(a.address,b.address)<0 ? true:false;}int cmp_down_address(NODE a,NODE b){return strcmp(a.address,b.address)>0 ? true:false;}int cmp_up_phonenum(NODE a,NODE b){return strcmp(a.phonenum,b.phonenum)<0 ? true:false; }int cmp_down_phonenum(NODE a,NODE b){return strcmp(a.phonenum,b.phonenum)>0 ? true:false; }void out_list(){printf("\n");printf("\t\t\t\t【1】姓名\n");printf("\t\t\t\t【2】性别\n");printf("\t\t\t\t【3】出生年月\n");printf("\t\t\t\t【4】工作年月\n");printf("\t\t\t\t【5】学历\n");printf("\t\t\t\t【6】职务\n");printf("\t\t\t\t【7】地址\n");printf("\t\t\t\t【8】电话号码\n");printf("\t\t\t\t【9】返回\n");}void out_up_or_down(){printf("\n");printf("\t\t\t\t【1】升序\n");printf("\t\t\t\t【2】降序\n");}void next_people(int n) {for(int i=sum; i>n; i--) {strcpy(people[i].name,people[i-1].name);strcpy(people[i].sex,people[i-1].sex);strcpy(people[i].bir_date,people[i-1].bir_date);strcpy(people[i].work_date,people[i-1].work_date);strcpy(people[i].xueli,people[i-1].xueli);strcpy(people[i].zhiwu,people[i-1].zhiwu);strcpy(people[i].address,people[i-1].address);strcpy(people[i].phonenum,people[i-1].phonenum);}strcpy(people[n].name,);strcpy(people[n].sex,p.sex);strcpy(people[n].bir_date,p.bir_date);strcpy(people[n].work_date,p.work_date);strcpy(people[n].xueli,p.xueli);strcpy(people[n].zhiwu,p.zhiwu);strcpy(people[n].address,p.address);strcpy(people[n].phonenum,p.phonenum);sum++;}void add_people() {getchar();printf("请输入该员工的姓名:");gets();printf("请输入该员工的性别:");gets(p.sex);printf("请输入该员工的出生年月:");gets(p.bir_date);printf("请输入该员工的工作年月:");gets(p.work_date);printf("请输入该员工的学历:");gets(p.xueli);printf("请输入该员工的职务:");gets(p.zhiwu);printf("请输入该员工的住址:");gets(p.address);printf("请输入该员工的电话:");gets(p.phonenum);//system("pause");if(sum==0) {next_people(0);return ;}int n=sum;sort(people,people+sum,cmp_up_name);for(int i=0; i<=n-1; i++) {if(i==sum-1) {next_people(i+1);break;}else if(strcmp(,people[i].name)<0) {next_people(i);break;}else if(strcmp(,people[i].name)==0) {next_people(i+1);break;}else if(strcmp(,people[i].name)*strcmp(,people[i+1].name)==0) {next_people(i+1+1);break;}else if(strcmp(,people[i].name)*strcmp(,people[i+1].name)<0) { next_people(i+1+1);break;}}sort(people,people+sum,cmp_up_name);}void de_people() {getchar();loop_3:printf("\n请输入要删除的职工的名字:\n");char str[100];gets(str);bool mark=true;for(int i=0; i<sum; i++) {if(strcmp(str,people[i].name)==0) {for(int j=i+1; j<sum; j++) {strcpy(people[j-1].name,people[j].name);strcpy(people[j-1].sex,people[j].sex);strcpy(people[j-1].bir_date,people[j].bir_date);strcpy(people[j-1].work_date,people[j].work_date);strcpy(people[j-1].xueli,people[j].xueli);strcpy(people[j-1].zhiwu,people[j].zhiwu);strcpy(people[j-1].address,people[j].address);strcpy(people[j-1].phonenum,people[j].phonenum);}sum--;printf("\n删除成功!\n");return ;}}printf("\n未找到此人,请检查您的输入是否有误。