《2.员工管理系统》由会员分享,可在线阅读,更多相关《2.员工管理系统(38页珍藏版)》请在金锄头文库上搜索。
1、word课程设计(论文)任务书 信息学院 学院 16通信卓越 专业 1 班一、课程设计(论文)题目员工管理系统二、课程设计(论文)工作自 2 2017年 06月 19 日起至2017年 06月 25日三、课程设计(论文) 地点: 信息机房205 四、课程设计(论文)容要求:1本课程设计的目的(1)熟练掌握C语言的基本知识和技能;(2)掌握线性表的链式存储结构;(3)掌握线性链表的创建算法;(4)熟悉掌握多线性链表的增加、删除算法;(5)培养分析、解决问题的能力;提高学生的科技论文写作能力。 2课程设计的任务及要求每个员工的信息包括:编号、性别、出生年月、学历、职务、住址等。系统能够完成员工信息
2、的查询、更新、插入、删除、排序等功能。1)基本要求:(1) 排序:按不同关键字,对所有员工的信息进行排序。(2) 查询:按特定条件查找员工。(3) 更新:按编号对某个员工的某项信息进行修改。(4) 插入:加入新员工的信息。(5) 删除:按编号删除已离职的员工的信息。2)创新要求: 提高算法效率,降低时间复杂度和空间复杂度3)课程设计论文编写要求(1)要按照课程设计模板的规格书写课程设计论文(2)论文包括目录、正文、心得体会、参考文献等(3)课程设计论文用A4纸统一打印,装订按学校的统一要求完成4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程:40分; (3)完成调试:20
3、分;(4)回答问题:20分。5)参考文献:(1)严蔚敏,吴伟民.数据结构. :清华大学,2012.(2)严蔚敏、吴伟民、米宁.数据结构题集. :清华大学,2009.(3)谭浩强. C程序设计(第4版):清华大学,2013.(4)何钦铭、雁、越.数据结构课程设计. :大学,20136)课程设计进度安排容 天数地点构思及收集资料 2图书馆编程设计与调试 5实验室撰写论文 3图书馆、实验室学生签名: 2017年 06 月 19 日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差(); (2)设计分析(20分):优()、良()、中()、一般()、差(); (3
4、)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规性及考勤是否降等级:是()、否()评阅人: 职称: 副教授 2017年 06 月 25 日目录一、问题描述4二、容简介5基本要求:52.2. 算法思想:52.3. 模块划分:62.4. 数据结构:72.5. 源程序:72.6. 测试情况:34三、小结38四、参考文献39一、 问题描述(描述要求编程解决的问题)本次课程设计所制作的员工管理系统,选择用C+语言、利用链表、函数等知识对员工的
5、信息、数据进行收集管理,具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、成本低、充足的信息、快捷的查询手段等优点。这些优点能够极提高员工管理的效率,也是企业的科学化、正规化管理和与世界接轨的重要条件。 本次课程设计的是一个基于员工数据信息的数据管理系统,通过这个员工管理系统,对员工的数据信息进行管理,企业的管理员就可以按照菜单选择相应的操作,快捷高效地对员工信息执行查询、更新、插入、删除、排序等基本功能。本次课程设计建立的一个“员工管理系统”,如图1所示,该员工管理系统需要我们利用编程知识解决以下几点问题:(1) 该员工管理系统可以编写存放一定量的员工基本信息,存放
6、的员工的人数应该在100人以,每个员工的信息应该包括:员工编号、员工、员工性别、员工出生年月、员工学历、员工职务、员工、员工家庭住址、员工的工资等。(2) 该员工管理系统在保证能满足录入职工号不出现重复的情况下,录入的职工号信息可以按照要求以文件形式保存。(3) 该员工管理系统是建立职工信息管理的文件的情况下,并且可以实现对其按照不同关键字,如出生年月、员工的编号、员工的工资、员工的等对所有员工的信息进行从大到小的排序。(4) 该员工管理系统还应该可以按照特定条件查找员工、按编号对某个员工的某项信息进行修改、加入新员工的信息、按编号删除已经离职的员工的信息,在满足这些基本功能的情况下,本程序尽
7、可能地对其进行简化算法并提高算法效率,降低时间复杂度和空间复杂度。图1:员工管理系统系统功能结构图二、容简介基本要求:(给出程序要达到的具体的要求。) 该员工管理系统能够管理员工的编号、性别、出生年月、学历、职务、住址、工资等这些基本信息,除此之外,系统还可以实现员工信息的查询、更新、插入、删除、排序等功能,该功能的具体要求如下所示。 (1)排序:按不同关键字,如出生年月排序、员工工资排序、排序、员工编码这些关键字对所有员工的信息进行排序。 (2)查询:从员工管理文件中查询符合某些条件的员工,可以通过关键字查询的信息有:员工部门查询、出生年月查询、员工学历查询、员工职务查询、员工住址查询、查询
8、、员工编码查询、员工性别查询。 (3)修改:先按编号检索某个需要修改信息的员工对象,对其某些属性进行修改,这些属性包括:员工的编号、性别、出生年月、学历、职务、住址、工资等。 (4)插入:新增一名员工,将新增员工信息加入员工管理文件当中。 (5)删除:按编号删除已离职的员工的信息。2.2. 算法思想:(描述解决相应问题算法的设计思想。)(1) 排序算法 在排序算法中,员工管理系统提供了四种排序操作,实现了系统的基本排序操作。这些排序操作分别为:对员工出生年月进行排序,对员工进行排序,对员工工资进行排序,对员工编号进行排序。在排序算法中,利用链表的指针的移动遍历整个职工信息表,利用if语句判断链
9、表上两两之间排序数据的大小,再从大到小的排序。(2)删除算法 在删除算法中,创新点事将删除算法拆分为查找要删除职工信息所在的节点位置为一个算法,删除节点为另一个算法,这样做不仅使算法更为简单清晰,还将一个函数可以被删除函数、修改函数两个函数调用,提高了算法的效率。(3)链式存储算法 因为员工的编码是不可重复的,所以锁定信息时,只需要从职工的编码确定职工的节点,节省了算法的时间复杂度和空间复杂度。(4)查询算法: 在查询算法中,职工管理系统提供了其中多种查询操作,实现了系统的人性化查询操作,这些操作分别为:对进行查询、对性别进行查询、对出生年月进行查询、对工作年月进行查询、对学历进行查询、对职位
10、进行查询、对住址进行查询、对进行查询等一系列操作。在查找算法中,利用链表的指针的移动扫描整个员工信息表,利用if语句判断字符串是否匹配,将匹配的员工信息全部输出,如图2所示。图2:查询算法程序流程(5)排序算法 在排序算法中,员工管理系统提供了四种查询操作,实现了系统的基本排序操作,这些排序操作分别为:对进行排序,对性别进行排序,对出生年月进行排序,对工作年月进行排序。排序算法中,利用链表的指针的移动扫描整个员工信息表,将需要比较的两个数据拆分成一个算法,其余数据为另一个算法,利用if语句判断同一链表相邻数据的大小,并在链表中从头结点开始,从大到小排列,如图3所示。图3:排序算法程序流程2.3
11、. 模块划分:(描述所设计程序的各个模块(即函数)功能。) 根据员工管理系统问题的分析和设计需求,可以得到该员工管理系统可以分为五个模块分别为菜单选择模块、信息输入模块、信息游览模块、信息修改模块、信息删除模块。其系统功能结构如下图所示(1) 菜单选择:用于完成接受管理人员的命令,是职工信息管理的入口,用户所进行的各种操作均需要在此模块中进行选择,并且进而调用其他模块,从而实现相应的功能。(2) 信息输入模块:完成职工信息的输入功能,输入职工的信息,包括、出生年月、职工号、性别、职务、工资、地址、工资等。(3) 信息游览模块:完成一件录入的员工信息的查询,查询方式有按编号查询、按查按学历查询、
12、按员工职务查询、按员工部门进行查询、按出生年月进行查询、按员工住址进行查询、按员工、按员工性别进行查询等八种查询方式。(4) 信息修改模块:查询要修改员工数据所对应的节点,完成员工信息的修改功能。(5) 信息删除模块:查询要删除员工数据所对应的节点,完成对员工信息的删除功能。2.4. 数据结构:(给出所使用的基本抽象数据类型,所定义的具体问题的数据类型,以及新定义的抽象数据类型。)根据系统功能结构图的描述,可以构造出该系统的抽象数据类型和相对应的函数,其方法名和功能如下表1所示模块函数或数据结构功能链表数据类型Typedef struct node定义链表节点struct Employee定义
13、职工信息Link Create(Link Head)初始化链表系统处理模块Link Add(Link Head)插入职工信息Link Del(Link Head)删除职工信息Link Modify(Link Head)修改职工信息Void Save_ByFile(Link Head,fstream& ofile)保存职工信息bool Search(Link Head)Link Search_Unique_Front(Link Head)查询职工信息Link Sort(Link Head)职工信息排序输出模块void Display_List(Link Head)显示职工信息表1:系统功能结构表
14、2.5. 源程序:(给出所有源程序清单,要求程序有充分的注释语句,至少要注释每个函数参数的含义和函数返回值的含义。)/*员工管理系统*/*头文件*/#include #include /字符串头文件#include /写入、读出操作文件的头文件#include /*控制cin、cout之类的一些操纵运算子比如setfill, setw, setbase, setprecision等I / O流控制头文件*/#include / 将文件中的函数声明放到工程中头文件#include /*调用 getch()cprintf()cputs()kbhit()之类的函数的头文件*/#include /malloc、free、exit等常用函数的头文件using namespace std;struct Employee/定义结构体类型Employee,声明职工的结构作为链表节点。string m_Code;/定义字符串m_Code为职工代码string