数据结构课程设计-职工管理系统
目录目录 一、前言----------------------------------------------------------------------2 二、需求分析----------------------------------------------------------------3 三、概要设计----------------------------------------------------------------4 四、详细设计----------------------------------------------------------------5 五、调试分析----------------------------------------------------------------6 六、用户使用说明----------------------------------------------------------7 七、测试结果----------------------------------------------------------------8 八、总结---------------------------------------------------------------------11 九、主要参考文献和附录------------------------------------------------12 前言前言 员工管理系统是一个工作单位不可缺少的管理工具, 它管理的数据对于公司的决策者和 管理者来说都至关重要, 所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手 段。 但一直以来各个公司基本上都是靠传统的人工方式来管理员工信息, 这种管理方式存在 着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信 息的查找、更新和维护都带来了不少的困难。 当今社会,信息迅速膨胀,随着各个公司的规模增大, 有关信息管理工作所涉及的数据 量越来越大,员工信息量也大大增加,利用传统的手工查询、 登记、修改等方法的处理速度 远远跟不上公司的需求,有的公司不得不靠增加人力、物力来进行信息管理。 随着计算机技术的不断提高, 计算机作为知识经济时代的产物, 其强大的功能已为人们 深刻认识, 它已进入人类社会的各个行业和领域并发挥着越来越重要的作用, 成为人们工作 和生活中不可缺少的一部分。 而作为计算机应用的一部分, 使用计算机对员工进行管理, 具有手工管理所无法比拟的 优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 这些优点能够极大地提高员工管理的效率, 也是公司的科学化、 正规化管理和与世界接轨的 重要条件。 员工管理系统作为一种管理软件正在各公司中得到越来越广泛的应用, 且已达到了良好 效果。 需求分析需求分析 员工信息管理系统是企业管理中的一个重要内容, 随着时代的进步, 企业也逐渐变得庞 大起来。如何管理好企业内部员工的信息,成为企业管理中的一个大问题。在这种情况下, 开发一个人力资源管理系统就显得非常必要 现在,市场上可以选购的应用开发产品很多, 流行的也有数十种。在目前市场上这些众 多的程序开发工具中, 有些强调程序语言的弹性与执行效率; 有些则偏重于可视化程序开发 工具所带来的便利性与效率的得高, 各有各的优点和特色, 也满足了不同用户的需求。 然而, 语言的弹性和工具的便利性是密不可分的, 只强调程序语言的弹性, 却没有便利的工具作配 合, 会使一些即使非常简单的界面处理动作, 也会严重地浪费程序设计师的宝贵时间; 相反, 如果只有便利的工具, 却没有弹性的语言作支持, 许多特殊化的处理动作必需要耗费数倍的 工夫来处理,使得原来所标榜的效率提高的优点失去了作用。 本系统结合公司实际的人事、 制度,经过实际的需求分析, 采用功能强大的 Visual C++ 6.0 作为开发工具而开发出来的管理系统。整个系统从符合操作简便、界面友好、灵活、实 用、安全的要求出发,本管理系统具有如下功能: 1、问题描述 对单位的员工进行管理,包括插入、删除、查找、排序等功能。 2、要求 员工对象包括姓名、性别、年龄、职位、工龄等信息。 (1)新增一名员工:将新增员工对象按姓名以字典方式员工管理文件中, 基本信息中的编号是按照添加顺序自动增加的。 (2)删除一名员工:从员工管理文件中删除一名员工对象,分为根据编号 删除、根据姓名删除。 (3)查询:从员工管理文件中查询符合某些条件(编号、姓名)的员工。 (4)修改:根据编号检索出对象,既可以对整个对象修改,也可对某个属 性修改。 (5)排序:按照年龄、工龄对所有的员工排序(降序) ,也可以回复排序以 前的员工现实状态。 3、实现提示 员工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。 (1)当启动程序是,自动从文件(message.txt)中读出员工信息 (2)由键盘输入员工对象存入链表当中。 (3)对员工对象中的“编号、年龄、工龄“按字典顺序进行排序。 (4)对排序后的员工对象进行增、删、查询、修改、排序等操作。 (5)当退出程序时,将此刻单链表中存储的数据写入到文件(message.txt) 中去,保存起来。 3 概要设计概要设计 (一)数据类型定义: typedef struct{ int num; //编号 char name[MAX_NUM];//姓名 int age; //年龄 char job[MAX_NUM];//职位; int workTime;// 工龄 }People; ypedef struct node{ People people; struct node * next; int len;//表示链表长度 }linklist; (二)流程图: (图 1) (三)各程序模块之间的层次图: (图 2) 详细设计详细设计 1、主菜单模块:显示员工管理系统的主菜单,供用户选择所需的功能,通过自己定义 的 void main()函数来实现。 2、添加员工模块: 输入员工的编号、 姓名、年龄、职位、工龄以,通过自己定义的 void addMessage()函数来实现。 3、查询员工信息模块: 浏览所有员工的相关信息, 通过自己定义的 void searchPeople ()函数来实现。 (1)按员工姓名查询:可以按员工工号来查询员工的相关信息,通过自己定义的void searchPeopleByName( )函数来实现。 (2)按员工编号查询:可以按员工职务来查询员工的相关信息,通过自己定义的void searchPeopleByNum( )函数来实现。 (3)退出。 4、删除员工模块:删除需要删除的员工的所有信息,通过自己定义的 void deletePeople( )函数来实现。 (1)按员工姓名删除模块:可以按员工工号来删除员工的相关信息,通过自己定义的 void deletePeopleByName( )函数来实现。 (2)按员工编号删除模块:可以按员工编号删除员工的相关信息,通过自己定义vo