《简单职工管理系统课程 数据结构》由会员分享,可在线阅读,更多相关《简单职工管理系统课程 数据结构(26页珍藏版)》请在金锄头文库上搜索。
1、课程设计(论文)题 目 名 称 简单的职工管理系统 课 程 名 称 数据结构课程设计 学 生 姓 名 学 号 系 、 专 业 信息工程系、网络工程 指 导 教 师 2014 年 12 月 16 日摘 要建立一个“简单的职工管理系统” ,系统以菜单方式工作,编写存放有职工基本信息,包含职工工号,姓名,性别,出生年月,学历,职务,工资,住址,电话等,并且要求录入职工号不重复;录入的职工号信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作,建立职工信息管理的文件。关键词:职工信息管理;文件;浏览;查询;修改;插入;删除;排序1目 录1 问题描述 .22 需求分析 .23 概要设计
2、 .331 抽象数据类型定义 .332 模块划分 .34 详细设计 .441 数据类型的定义 .442 主要模块的算法描述 .65 测试分析 .76 课程设计总结 .12参考文献 .12附录(源程序清单) .1321 问题描述1.对单位的职工进行管理,包括插入、删除、查找、排序等功能。2.要求职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2)删除一名职工:从职工管理文件中删除一名职工对象。(3)查询:从职工管理文件中查询符合某些条件的职工。(4)修改:检索某个职工对象,对其某些属性进行修改。(5)排
3、序:按某种需要对职工对象文件进行排序。3.实现提示职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。(1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。(2)对职工对象中的姓名按字典顺序进行排序。(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。4.选做内容将职工对象按散列法存储,并设计解决冲突的方法。在此基础上实现增、删、查询、修改、排序等操作。2 需求分析 1. 该程序可用于对企业员工情况基本信息的存储、更新、查询、输出等操作,以实现对企业员工的管理。 2. 其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多个员工信息,也可对个
4、别员工信息进行适当的删除或修改。以便随时更新员工信息。 3. 程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据两种不同的方法查询:按工作证号查询和按姓名查询。以满足不同的需要。33 概要设计31 抽象数据类型定义struct employee /定义一个职工信息的结构体int num;char name10;char sex; int age;char xueli30;int wage;char addr30;char tel20;em100; 32 模块划分各模块的功能和实现1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的 void menu
5、()函数来实现。2.输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的 void input()函数来实现。3.保存模块:将内存中职工的信息输出到磁盘文件中,可以通过自己定义的 void save(int)函数来实现。4.浏览模块:浏览所有职工的相关信息,通过自己定义的 void display()函数来实现。5.删除模块:删除需要删除的职工的所有信息,通过自己定义的 void del()函数来实现。6.添加模块:添加需要添加的职工的相关信息,通过自己定义的 void add()函数来实现。7.按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的 void
6、 search_num()函数来实现。8.按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的 void search_xuelil 函数来实现。9.按职工的电话号码查询模块:可以按职工的电话来查询职工的相关信息,通过自己定义的 void search_tel 函数来实现。410.修改模块:可以修改需要修改的职工的相关信息,通过自己定义的void modify()函数 来实现。11.退出系统模块:退出职工信息管理系统,通过头文件 windows.h 中的exit(0)函数来实现。4 详细设计41 数据类型的定义(1)职工管理系统类型#include #include #
7、include #include #include #include #include #include (2)队列类型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; ; /-个人习惯:取别名- 5typedef struct Employee
8、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 L
9、ink Sort(Link Head); /-函数实现- Link Create(Link Head) /创建一个带头节点的空链表。 Head=(Link)new Node; if(!Head) coutm_Code=; Head-m_Name=; Head-m_Year=0; Head-m_Sex=; Head-m_Post=; Head-m_Department=; Head-m_Wage=0; Head-Next=NULL; return Head; 642 主要模块的算法描述菜单开始根 据 菜 单 输 入 n 的 值 选 择 程序保存结束是否继续进行NYYY5添加职工信息6修改职工信息
10、2浏览职工信息3查询职工信息4删除职工信息7退出1录入职工信息85 测试分析1.运行程序,进入职工信息管理系统的主菜单:图 1:进入主菜单界面2.输入数字“1”进行录入职工信息:图 2:录入职工信息3.输入“y”返回主菜单(界面同图 1) 。 84.输入“2”浏览职工信息:图 3:浏览职工信息5.输入“y”后继续,输入“3”进行查询职工信息:图 4:按职工号及学历查询职工信息10图 5:按电话号码查询职工信息6.进入主菜单,输入“4”进行删除职工信息:图 6:删除职工信息107.进入主菜单输入“5”进行添加职工信息:图 7:添加职工信息118.进入主菜单输入“6”进行修改职工信息:图 8:修改
11、职工信息9.进入主菜单输入”7”退出职工信息管理系统。116 课程设计总结通过这次课程设计,增加了我们对软件技术的了解,虽然还不明确软件技术包含的具体内容,但从学习数据结构这门课程开始,已发现程序设计的好处,它对我们的学习也有很大的帮助。在学习数据结构的过程中也学到并巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。在具体操作中对这学期所学的数据结构的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我们以后的数据结构学习奠定了基础,同时体会到数据结构具有语句简洁,使用灵活,执行效率高等特点。发现上机操作的重要作用,特别是对数组和循环有了深刻的理解。通过黄老师的
12、精心指导及我的实际操作,我学会 了数据结构程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。在此我要非常感谢我的指导老师黄同成老师,感谢老师认真细心地为我解答我在数据结构中遇到的疑难问题,感谢老师为我指出我在实际操作中出现的问题并及时帮我纠正过来。因为老师一直对我认真细心地辅导,使我对数据结构这门功课有了浓厚的兴趣并认真去学习它,所以我的这门功课有了很大的进步。参考文献1 黄同成,黄俊民,董建寅数据结构M 北京:中国电力出版社, 20082 董建寅,黄俊民,黄同成数据结构实验指导与题解M 北京:中国电力出版社,20083 严蔚敏,吴伟民. 数据结构(C 语言版)M. 北京:清华