职工信息管理系统 附源代码_第1页
职工信息管理系统 附源代码_第2页
职工信息管理系统 附源代码_第3页
职工信息管理系统 附源代码_第4页
职工信息管理系统 附源代码_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第一章 问题定义 在当今社会,互联网空间的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。当前大量企业的职工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。本程序是一个关于职工信息管理的系统通过这个系统用户可以简捷、方便的对职工信息进行增加、修改、添加、查询、浏览等功能,它不仅可以帮助企业单位达

2、到员工管理办公自动化、节约管理成本、更能达到提高企业单位工作效率的目的。第二章 可行性分析2.1 技术可行性分析此系统是职工信息管理系统,用visual c+ 6.0结合windows 7操作系统开发而成的,大家都知道这项技术已经相当成熟了,因此从技术方面讲开发此职工信息管理系统是可行的。2.2 社会可行性分析社会可行性研究是对系统投入使用后对社会可能带来的影响进行分析,比如是否为人们所接受,是否为社会带来收益。2.3 经济可行性分析 软件工程课程设计主要是对项目的经济效益进行评价,一方面是支出的费用,其中包括设备购置费,软件开发费,管理和维护费,人员工资和培训费等。另一方面是取得的收益中可以

3、用钱来衡量的那部分(收益的另一部分难以用钱来表示)。基于企业的现有计算机及配套设备,建设MIS系统。不但能大大坚守重复性书面报告,降低办公费用,提高办公室效率,而且能提高监测数据效用。由于职工信息管理系统是一个比较小型的系统,所以从人力、物力、财力等方面来说都是可行的。 第三章 需求分析3.1设计目的要求熟练掌握C语言的基本知识和编辑技能; 基本掌握结构化程序设计的基本思路和方法。3.2 设计要求要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观! 2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干

4、条记录的输入。 3、浏览功能:完成对全部职工信息的显示。 4、查找功能:完成按职工的职工号查询职工的相关信息,并显示。 完成按职工的学历查询职工的相关信息,并显示。 完成按职工的电话号码查询职工的相关信息,并显示。 5、删除功能:通过输入职工的姓名完成对该名职工的信息进行删除。 6、添加功能:完成添加新职工的信息的任务。 7、修改功能:通过输入职工的姓名完成对该名职工的信息进行修改。 8、退出职工信息管理系统。3.3 设计说明本系统所实现的主要功能:(1)添加新成员,实现对新加入职工信息的录入,所有的信息当中主码即职工信息编号必须填写。(2)删除职工信息,当公司有职工因故离职时,需要删除员工信

5、息时,释放掉它所占据的数据库空间,就可以在列表中选中所要删除的记录,然后点击删除。如果确认删除则在弹出的消息框中点击确定即可删除所选的记录。(3)修改员工信息,由于某种原因可能导致在记录员工信息时出现错误,需要对员工信息进行修改。在员工信息系统主窗口中选择所要修改的成员信息进行修改,点击修改后将会弹出消息框,如果确认修改则点击确定,则修改数据成功。(4)显示职工信息,在删除职工信息和添加职工信息成功后,点击显示按钮则可对职工信息记录进行更新,显示职工信息的最记录。(5)检索信息,点击此按钮则可以显示出当前那一条或几条员工信息,用名字来查看员工信息。综上本系统可以对员工信息实现科学自动的管理,其

6、中包括显示职工基本信息,并实现信息的添加、删除、显示、及检索。经过调试,程序性能良好。3.4开发环境 宏碁4750G (英特尔i5-480M CPU DDR3 1333 2内存 显卡 32位 旗舰版)第四章 概要设计4.1系统设计思想在设计时考虑以下几个方面: (1)有高度的容错机制,不会因小的失误造成死循环。 (2)简洁并且有条理性。 (3)错误报警机制可以提醒用户进行正确的操作。 (4)可选择性,在进行修改、删除等操作时可按不同方式进行,方便用户操作。 (5)功能齐全,充分考虑到用户的实际需求。(6)操作简单。因为使用者多为非计算机专业人员,所以该系统要求设 计的操作方便,易于维护。一个软

7、件的好坏,关键在于产品便于维护。4.2 功能划分该系统可以按功能进行模块划分,如图1所示。 职工信息管理系统信息输入信息浏览信息查询信息修改信息删除按编号查询按姓名查询菜单选择 图4-1 系统模块图其中:(1) 菜单选择模块完成用户命令的接受,此模块也是职工信息管理的入口,用户所要进行的各种操作均需在此模块中进行选择,并进而调用其他模块实现相应的功能。(2) 信息输入模块完成职工信息的输入功能,输入信息包括职工号、姓名、性别。出生年月、学历、职务、工资、住址、电话等。(3) 信息浏览模块完成已录入职工信息的显示。(4) 信息查询模块完成职工信息的查询,查询时对应有按编号查询和按姓名查询两种方式

8、。(5) 信息修改模块完成职工信息的修改功能。(6) 信息删除功能模块完成职工信息的删除功能。4.3 数据结构本系统中主要的数据结构就是职工的信息,包含职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等,在处理过程中各项可以作为一个职工的不同属性来进行处理。4.4 程序流程图系统的执行应从功能菜单选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如图2所示:菜单开始根据菜单输入n的值选择程序保存结束是否继续进行 NY YY5添加职工信息6修改职工信息2浏览职工信息3查询职工信息4删除职工信息7退出1录入职工信息 图4

9、-2 程序流程图第五章 详细设计5.1 核心算法及说明本程序运用c+编写,使用顺序表的数据结构来实现。本程序中定义了一个结构体worker。其中在worker结构体中包含了职工的基本信息(工号、姓名、性别、年龄、学历、工资、地址、电话)。程序还定义了几个功能函数(输入、删除 、添加、查找、修改、统计),这七个函数是彼此相互独立的功能模块。另外,为了防止工厂信息外泄,还增加了一个预置密码的功能。5.2各个功能模块的处理流程对应于总体设计时的系统模块图,各个功能模块的处理流程如下:5.2.1 输入功能 在本功能中,是在进入管理系统后进行的对职工进行的输入操作功能, 其中,包括要输入的职工人数,职工

10、的工号,姓名,性别(w-女 m-男),年龄,学历,工资,住址,电话 功能流程图:是输入职工所有信息职工数是否大于所需人数是否小于所需人数否返回管理系统是输入功能图5-1 录入功能流程图5.2.2浏览功能本功能将所有职工及其信息全部输出,包括职工人数,职工的工号,姓名,年龄,学历,工资,住址,电话。输出完毕,按任意键返回管理系统。功能流程图:否输出所有职工信息显示功能职工表是否为空是返回管理系统图5-2 显示功能流程图5.2.3 查找功能进行该项功能时,只需输入职工的姓名,系统就会按姓名差找到该职工,并输出该职工的所有信息。按姓名查找,能快速的找到你要找到的信息,大大的节省了时间。 功能流程图:

11、查找栏职工表是否为空是返回系统主界面否输入姓名查找并输出职工信息图5-3 查询功能流程图5.2.4 删除功能在此功能模块中用户可先根据输入姓名查找到职工,同时可查看要删除的职工的信息,然后由用户进行删除。若不存在要删除的信息提示用户退出并返回主界面。 功能流程图:删除栏判断容量超出容量返回主界面未达到容量输入姓名并显示全部信息删除根据提示继续或返回主界图 5-4 删除功能流程图5.2.5 修改功能本功能中我们首先提示用户通过输入姓名查找到所要修改的职工信息并全显示出来,修改时我们设计可以让用户单独修改某一项或者修改多项,通过选数字1、2、3、4实现。 功能流程图:修改栏输入姓名判断是否存在否返

12、回主界面是显示全部信息按提示继续修改或返回主界面图 5-5 修改功能流程图5.2.6 添加功能在本功能中用户可以在容量范围内进行添加职工信息,超出容量给予提示并返回主界面,添加时通过输入姓名进行各项信息的添加。添加完成后根据提示继续添加或返回主界面。 功能流程图:添加栏判断信息返回主界面输入姓名根据提示添加根据提示继续或返回主界面图5-6 添加功能流程图5.2.7 退出系统 在主界面中选择退出系统,即可成功退出。5.3 课程设计过程中遇到的问题1.对一些知识掌握得不够熟练,在编写程序的过程中出现错误,经过查阅书本以及询问老师、和同学们讨论后改正了错误。2.编程的方法选择得不够好,程序不够精炼。

13、类的封装性不够好。3.考虑得不够周全,防错机制不够强,对一些错误操作不能够做出合理的处理。5.4程序的优缺点 优点: 1. 应用文件进行存储,方便简单易于实现。2. 有良好的人机交互界面,各操作清晰明了,提示到位。3. 输入错误不至于使系统崩溃,不符合要求的输入能进行返回或重新进行所要的操作。4. 在修改过程中,有很多选项进行选择,用户可根据自己的需要选择某一项进行修改操作。5. 本程序可自行退出,不至于强行退出程序。6. 一个函数可被多个操作进行调用,代码利用率高,省去了一些多余代码的编写。 缺点:1.程序使用线性表进行存储,容量有限,不能进行大量的数据存储。2.在查找功能函数中,只用了通过

14、姓名来查找,由于职工可能存在重名的问题,这就可能会导致查找时出现差错。第六章 系统测试6.1 设置测试数据根据以下几个例子分析测试:1. 录入:职工号:; 姓名:杨平; 性别: 男; 学历:本科; 年龄:34; 工资:3400; 地址:太原; 电话:xxx 职工号:; 姓名:刘娜; 性别: 女; 学历:硕士; 年龄:32;工资:4500; 地址:太原; 电话:xxx2.显示职工信息3.按姓名搜索职工信息,例:杨平4.按工号降序排序5.删除职工号位的职工信息6.退出6.2 测试结果分析(1) 系统主菜单分析如图分析: 图6-1 主菜单(2) 职工信息录入分析图如图所示: 图6-2 信息录入(3)

15、 职工信息显示分析图如图所示: 图6-3 信息显示(4) 查询职工信息如图所示: 图 6-4 信息查询(5) 职工信息排序分析图如图所示: 图6-5 信息排序(6) 职工信息删除分析图如图所示: 图6-6 信息删除第七章 用户使用说明 这是一个职工信息管理系统,具有录入、输出、删除、查询、修改、保存、载入数据、计算总支出信息等功能,建立一个含有工号、性联系方式、姓名、性别等成员的类的变量。查看输入的数据记录调试过程中,可按照有关提示进行相关操作:职工数据录入按“1”键;浏览职工数据按“2”键;修改职工数据按“3”键;删除职工数据按“4”键;查找职工数据按“5”键;排序职工数据按“6”键;保存职

16、工数据按“7”键;退出职工管理系统按“0”键;运行系统时首先输出系统标题,进入主界面。它们分别有各自所代表的操作数。由用户输入操作数执行相应的操作。此功能由switch语句实现,当用户输入不同的操作数程序将进入不同的函数模块。进入各个函数后的运作过程在“成员函数”中已给出。本系统主要的算法都是与顺序表有关的算法,在查找时是将文件中保存的记录读出送到一个结构体数组中。然后将输入的信息与相应的结构体中的成员进行顺序比较。修改时也是将结构体数组中的某个成员的属性进行修改。删除操作对应于顺序表的删除操作,其具体过程为:如果查到要删除的记录在数组中的位置为i就用一个for循环将i后的记录全部前移一位,然

17、后将count减1。全部输出是将文件中保存的记录赋给一个数组,然后用一个for循环将数组的内容全部输出显示。详细步骤:(1)根据正确的提示安装软件。 (2)Intel486以上系列、AMD K6 以上系列等PC台式机和便携式电脑都可运行。(3) 打开该程序系统,浏览菜单,根据需要选择功能,进行各项操作。操作如下:点击开始菜单,进入菜单选择。输入:将所需的信息输入。输出:职工基本信息。输入:根据不同的需要选择,当信息输入显示出错误时,进入浏览信息,找出错误。当错误不能改正,则退出浏览信息。进入查询信息:则屏幕会出现已一个对话框按姓名查找,把相应的所需信息的状态(是否借出)。当查询不能显示需要时进

18、入修改程序,把所输入的信息进行修改,使之正确能够正常运行或进入删除信息中,重新输入自己所要的信息。当信息输入正确,进入你所需要的菜单程序中:职工信息:显示职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等。管理员信息:显示出职工信息管理的负责人及他们的工号。附录:程序清单及程序流程图 程序流程图:保存菜单开始根据菜单输入n的值选择程序保存结束是否继续进行 NY YY5添加职工信息6修改职工信息2浏览职工信息3查询职工信息4删除职工信息7退出1录入职工信息 程序源代码:#include#includestring#include#define N 100/N作为最大职工总数int NU

19、M=0;/用来计算职工数目int count;/用来暂时记录当前操作第几个职工int f=0;/f作为开关using namespace std;string p;/p作为接收菜单选项的字符串class workerpublic:worker()void menu();/显示菜单 void add();/职工信息录入void show();/职工信息显示void showworker();/显示职工信息在屏幕上void search();/职工信息查找void sort();/职工信息排序void dele();/职工信息删除void modify();/职工信息修改 void save();

20、/职工信息以文件形式保存worker()private:string num,name,sex,edu,address,tel;int age,salary;worker wN;int main()w0.menu();return 0;void worker:menu()/主菜单函数实现coutendl;cout*endl;cout* *endl;cout* 职工信息管理系统主菜单 *endl;cout* *endl;cout* 1.职工信息录入 *endl;cout* 2.职工信息浏览 *endl;cout* 3.职工信息修改 *endl;cout* 4.职工信息删除 *endl;cout*

21、 5.职工信息查找 *endl;cout* 6.职工信息排序 *endl;cout* 7.职工信息保存 *endl;cout* 0.退出 *endl;cout* *endl;cout*endl;coutendl;cout请选择数字编号07i1;while(!(i1=0&i1=7)cout输入有误,请重新输入:i1;switch(i1)case 1:add();break;case 2:showworker();break;case 3:modify();break;case 4:dele();break;case 5: search();break; case 6:sort();break;c

22、ase 7:save();break;case 0:cout系统退出!endl;exit(0);default:break;void worker:add()/职工信息录入函数实现void save();int i,n;char a;cout请输入需要创建的职工人数:1100NUM;for(i=0;iNUM;i+)coutwi.num;;coutwi.sex;coutwi.age;;coutwi.salary;coutwi.address;coutwi.tel;wi.save();coutendl;cout录入完成!endl;getchar();cou

23、tendl;cout是否要继续进行(y or n)a;if(a=y)f=1;system(cls);w0.menu();cout请再次输入你的选择:n;coutendl;elsef=0;exit(0);void worker:show()/显示职工信息函数实现cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;coutnumtnametsextedutagetsalarytaddressttelendl;coutendl;void worker:modify()/职工信息修改函数实现if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl;menu();elsecout

24、职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(int i=0;iNUM;i+)twi.agetwi.salarytwi.addresstwi.telendl;cout请输入需要修改信息职工的工号:num1;int j=0,k;int flag=1;while(flag)for(;jNUM;j+)if(num1=wj.num)flag=0;k=j;break;if(flag)cout不存在此员工,请重新输入:num1;cout你选择的职工的信息为:endl;cout工号t姓名t性别t

25、学历t年龄t工资t地址t电话endl;twk.agetwk.salarytwk.addresstwk.telendl;coutendl;cout*endl;cout* 1.修改工号 *endl;cout* 2.修改姓名 *endl;cout* 3.修改性别 *endl;cout* 4.修改学历 *endl;cout* 5.修改年龄 *endl;cout* 6.修改工资 *endl;cout* 7.修改地址 *endl;cout* 8.修改电话 *endl;cout* 0.返回主菜单 *endl;cout*endl;coutendl

26、;cout请选择数字编号08i3;while(i38)cout输入有误,请重新输入:i3;switch(i3)case 1:coutwk.num;cout修改信息已保存,现返回主菜单:endl;menu();break;case 2:;cout修改信息已保存,现返回主菜单:endl;menu();break;case 3:coutwk.sex;cout修改信息已保存,现返回主菜单:endl;menu();break;case 4:;cout修改信息已保存,现返回主菜单:endl;menu();break;case 5:coutwk.age;cout修改

27、信息已保存,现返回主菜单:endl;menu();break;case 6:coutwk.salary;cout修改信息已保存,现返回主菜单:endl;menu();break;case 7:coutwk.address;cout修改信息已保存,现返回主菜单:endl;menu();break;case 8:coutwk.tel;cout修改信息已保存,现返回主菜单:endl;menu();break;case 0:menu();default:break;void worker:showworker()/职工信息显示函数实现if(NUM=0)cout没有职工信息存入,系统将返回主菜单endl

28、;menu();elsecout已保存的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(int i=0;iNUM;i+)twi.agetwi.salarytwi.addresstwi.telendl;cout是否返回主菜单? Y/Np;while(1)if(p=y|p=Y)menu();else if(p=n|p=N)cout系统退出!endl;exit(0);else coutp;void worker:search()if(NUM=0)cout没有职工信息存入,系统将返回主菜单e

29、ndl;menu();elsecout请选择查找方式:endl;cout*endl;cout* 1.按工号查找 *endl;cout* 2.按姓名查找 *endl;cout* 3.按工资查找 *endl;cout* 4.按学历查找 *endl;cout* 0.返回主菜单 *endl;cout*endl;coutendl;cout请选择数字编号04i4;while(i44)cout输入有误,请重新输入:i4;if(i4=1)string num2;cout请输入要查询的职工的工号:num2;int j=0,k;int flag=1;while(flag)for(;jNUM;j+)if(num2=

30、wj.num)flag=0;k=j;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk.agetwk.salarytwk.addresstwk.telendl;break;if(flag)flag=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=2)string name2;cout请输入要查询的职工的姓名:name2;int j2=0,k2;int flag2=1;while(flag2)for(;j2NUM;j2+)if(name2=

31、)flag2=0;k2=j2;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk2.agetwk2.salarytwk2.addresstwk2.telendl;break;if(flag2)flag2=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=3)int salary2;cout请输入要查询的职工的工资:salary2;int j3=0,k3;int flag3=1;while(flag3)for(;j3N

32、UM;j3+)if(salary2=wj3.salary)flag3=0;k3=j3;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk3.agetwk3.salarytwk3.addresstwk3.telendl;break;if(flag3)flag3=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=4)string edu2;cout请输入要查询的职工的学历:edu2;int j4=0,k4;int flag4=1;whi

33、le(flag4)for(;j4NUM;j4+)if(edu2=)flag4=0;k4=j4;cout查询的职工信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;twk4.agetwk4.salarytwk4.addresstwk4.telendl;break;if(flag4)flag4=0;cout不存在此职工!n返回主菜单 endl;break;else if(i4=0)menu();void worker:sort()/职工信息排序功能实现if(NUM=0)cout没

34、有职工信息存入,系统将返回主菜单endl;menu();elsecout请选择排序方式:endl;cout*endl;cout* 1.按工号排序(升序) *endl;cout* 2.按工号排序(降序) *endl;cout* 3.按姓名排序(升序) *endl;cout* 4.按姓名排序(降序) *endl;cout* 5.按工资排序(升序) *endl;cout* 6.按工资排序(降序) *endl;cout* 0.返回主菜单 *endl;cout*endl;coutendl;cout请选择数字编号06i5;while(i56)cout输入有误,请重新输入:i5;if(i5=1)for(in

35、t i=0;iNUM-1;i+)for(int j=0;jwj+1.num)string temp;temp=wj.num;wj.num=wj+1.num;wj+1.num=temp;cout按工号升序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;iNUM;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=2)for(int i=0;iNUM-1;i+)for(int j=0;jNUM-1-i;j+)if(wj.nu

36、mwj+1.num)string temp;temp=wj.num;wj.num=wj+1.num;wj+1.num=temp;cout按工号降序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;iNUM;i+)twi.agetwi.salarytwi.addresstwi.telendl;else if(i5=3)for(int i=0;iNUM-1;i+)for(int j=0;jwj+1.name)string temp;temp=;=wj+1.name;wj+1.name=temp;cout按姓名升序后的信息如下:endl;cout工号t姓名t性别t学历t年龄t工资t地址t电话endl;for(i=0;iNUM;i+)twi.agetwi.salarytwi.addresstwi.telend

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论