员工综合管理系统_第1页
员工综合管理系统_第2页
员工综合管理系统_第3页
员工综合管理系统_第4页
员工综合管理系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

洛阳理工学院课程设计报告课程名称数据结构设计题目职员管理系统课程设计任务书设计题目:职员管理系统_________________________________________________________设计内容和要求:[问题描述]每个职员信息包含:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成职员信息查询、更新、插入、删除、排序等功效。[基础要求](1)排序:按不一样关键字,对全部职员信息进行排序。(2)查询:按特定条件查找职员。(3)更新:按编号对某个职员某项信息进行修改。(4)插入:加入新职员信息。(5)删除:按编号删除已离职职员信息。课程设计评语成绩:指导老师:_______________年月日序言职员管理系统是一个工作单位不可缺乏管理工具,它管理数据对于企业决议者和管理者来说全部至关关键,所以职员管理系统应该能够为用户提供充足信息和快捷查询手段。但一直以来各个企业基础上全部是靠传统人工方法来管理职员信息,这种管理方法存在着很多缺点,如:效率低、保密性差,另外时间一长,将产生大量文件和数据,这对于信息查找、更新和维护全部带来了不少困难。当今社会,信息快速膨胀,伴随各个企业规模增大,相关信息管理工作所包含数据量越来越大,职员信息量也大大增加,利用传统手工查询、登记、修改等方法处理速度远远跟不上企业需求,有企业不得不靠增加人力、物力来进行信息管理。伴随计算机技术不停提升,计算机作为知识经济时代产物,其强大功效已为大家深刻认识,它已进入人类社会各个行业和领域并发挥着越来越关键作用,成为大家工作和生活中不可缺乏一部分。而作为计算机应用一部分,使用计算机对职员进行管理,含有手工管理所无法比拟优点。比如:检索快速、查找方便、可靠性高、存放量大、保密性好、寿命长、成本低等。这些优点能够极大地提升职员管理效率,也是企业科学化、正规化管理和和世界接轨关键条件。职员管理系统作为一个管理软件正在各企业中得到越来越广泛应用,且已达成了良好效果。需求分析职员信息管理系统是企业管理中一个关键内容,伴随时代进步,企业也逐步变得庞大起来。怎样管理好企业内部职员信息,成为企业管理中一个大问题。在这种情况下,开发一个人力资源管理系统就显得很必需现在,市场上能够选购应用开发产品很多,流行也有数十种。在现在市场上这些众多程序开发工具中,有些强调程序语言弹性和实施效率;有些则偏重于可视化程序开发工具所带来便利性和效率得高,各有各优点和特色,也满足了不一样用户需求。然而,语言弹性和工具便利性是密不可分,只强调程序语言弹性,却没有便利工具作配合,会使部分即使很简单界面处理动作,也会严重地浪费程序设计师宝贵时间;相反,假如只有便利工具,却没有弹性语言作支持,很多特殊化处理动作必需要花费数倍工夫来处理,使得原来所标榜效率提升优点失去了作用。本系统结合企业实际人事、制度,经过实际需求分析,采取功效强大VisualC++6.0作为开发工具而开发出来管理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全要求出发,本管理系统含有以下功效:1、问题描述对单位职员进行管理,包含插入、删除、查找、排序等功效。2、要求职员对象包含姓名、性别、年纪、职位、工龄等信息。(1)新增一名职员:将新增职员对象按姓名以字典方法职员管理文件中,基础信息中编号是根据添加次序自动增加。(2)删除一名职员:从职员管理文件中删除一名职员对象,分为依据编号删除、依据姓名删除。(3)查询:从职员管理文件中查询符合一些条件(编号、姓名)职员。(4)修改:依据编号检索出对象,既能够对整个对象修改,也可对某个属性修改。(5)排序:根据年纪、工龄对全部职员排序(降序),也能够回复排序以前职员现实状态。3、实现提醒职员对象数无须很多,便于一次读入内存,全部操作不经过内外存交换。(1)当开启程序是,自动从文件(message.txt)中读出职员信息(2)由键盘输入职员对象存入链表当中。(3)对职员对象中"编号、年纪、工龄"按字典次序进行排序。(4)对排序后职员对象进行增、删、查询、修改、排序等操作。(5)当退出程序时,将此刻单链表中存放数据写入到文件(message.txt)中去,保留起来。概要设计(一)数据类型定义:typedefstruct{ intnum;//编号 charname[MAX_NUM];//姓名 intage;//年纪 charjob[MAX_NUM];//职位; intworkTime;//工龄}People;ypedefstructnode{ Peoplepeople; structnode*next; intlen;//表示链表长度}linklist;(二)步骤图:(图1)(三)各程序模块之间层次图:(图2)具体设计1、主菜单模块:显示职员管理系统主菜单,供用户选择所需功效,经过自己定义voidmain()函数来实现。2、添加职员模块:输入职员编号、姓名、年纪、职位、工龄以,经过自己定义voidaddMessage()函数来实现。3、查询职员信息模块:浏览全部职员相关信息,经过自己定义voidsearchPeople()函数来实现。(1)按职员姓名查询:能够按职员工号来查询职员相关信息,经过自己定义voidsearchPeopleByName()函数来实现。(2)按职员编号查询:能够按职员职务来查询职员相关信息,经过自己定义voidsearchPeopleByNum()函数来实现。(3)退出。4、删除职员模块:删除需要删除职员全部信息,经过自己定义voiddeletePeople()函数来实现。(1)按职员姓名删除模块:能够按职员工号来删除职员相关信息,经过自己定义voiddeletePeopleByName()函数来实现。(2)按职员编号删除模块:能够按职员编号删除职员相关信息,经过自己定义voiddeletePeopleByNum()函数来实现。(3)退出5、修改模块:能够修改需要修改职员相关信息,经过自己定义voideditMessage()函数来实现。(1)修改整条统计,能够修改该职员全部信息,经过自己定义voideditAll()函数来实现。(2)修改部分统计,能够修改该职员部分信息,经过自己定义voideditSome()函数来实现。(3)退出。6、职员信息排序模块:能够根据要求要求对职员信息排序,经过自己定义voidsort()函数来实现。(1)按年纪排序:能够按职员工号对职员信息排序,经过自己定义voidsortByAge()函数来。(2)按工龄排序:能够按职员工龄对职员信息排序,经过自己定义voidsortByWorkTime()函数来实现。(3)回复原排序:能够回复排序前次序,经过自己定义voidsortByNum()函数来实现。(4)退出。7、退出系统模块:退出职员信息管理系统,通exit(0)函数来实现。函数调用图:(图3)测试结果(一)当操作人员运行程序时,弹出DOS界面以下:(二)依据提醒语,输入1,添加职员信息,操作以下界面:(三)在主菜单输入2,进入输出职员功效,操作以下:添加职员、展示全部职员信息功效实现。(四)在主菜单输入3,查询职员信息按编号查询,测试以下:按姓名查询,测试以下:以上查询功效测试功效。(五)在主菜单,输入4,删除职员功效:按编号删除,测试以下:按姓名删除以下:以上测试完成。(六)在主菜单输入5,进入修改信息功效:(七)在主菜单输入6,进入排序功效:按年纪排序,测试以下:按工龄排序相同操作,测试成功。回复排序,回复到未排序状态,测试成功。(八)退出,将全部职员信息写入message.txt文件中,实现永久保留。退出系统,测试完成。总结在本系统开发过程中因为时间也比较仓促、准备不充足,系统肯定会存在部分缺点和不足。对职员信息管理整个步骤不够熟悉,在需求分析时未能做到完全满足用户需求。课程设计中我们碰到很多问题。我们在开发时,我们查阅了很多资料,了解到即是对职员编号号,姓名,年纪,工龄等复杂多样信息,能够较清楚,快捷而操作方便现代化管理系统。搞清了这个基础概念以后,我们又具体了解了老师所讲设计要求和注意事项,大致确定了总体设计思绪,初步提出问题处理方案,和系统大致设计方案和框架,接下来我们就着手编程。在编程过程中,先是依据系统所要求,找出所需要知识点。编完程序,我们在机房进行了一次又一次调试,找出了其中错误,一一纠正,而且修改了其中不太完善部分,努力争取做到实用而且正确尽管本管理系统存在着很多不足,但其功效全方面、易于以后程序更新、数据库管理轻易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需。经过开发这个系统,我组掌握了项目基础开发过程,用到知识巩固了我对C语言学习,但在这次设计中最大收获并不是掌握这几门开发工具应用,而是学会了设计系统思维方法。经过此次课程设计,我们对数据结构知识掌握了很多,并能将它用以程序编写中,而且提升了自己处理实际问题能力。-----------------------------------------------------------附录:源代码#include"stdio.h"#include"stdlib.h"#include"string.h"#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2typedefstructLNode{ charid[20]; charname[10]; charsex[10]; charbirth[10]; charedu[10]; charduty[10]; charphone[20]; charaddress[30]; structLNode*next;}LNode,*Linklist;//定义节点类型intCreatList(Linklist&L){ Linklistp; p=(Linklist)malloc(sizeof(LNode)); 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->edu); printf("请输入职员职务\n"); scanf("%s",p->duty); printf("请输入职员电话\n"); scanf("%s",p->phone); printf("请输入职员地址\n"); scanf("%s",p->address); } p->next=L->next; L->next=p;}//头插法生成单链表intInitlist(Linklist&L){ L=(Linklist)malloc(sizeof(LNode)); if(!L) return(0); L->next=NULL; returnOK;}//初始化单链表voidDisplay(Linklist&L){ Linklistp; for(p=L->next;p;p=p->next) { printf("编号%s\n",p->id); printf("姓名%s\n",p->name); printf("性别%s\n",p->sex); printf("生日%s\n",p->birth); printf("学历%s\n",p->edu); printf("职务%s\n",p->duty); printf("电话%s\n",p->phone); printf("地址%s\n",p->address); printf("============================\n"); }}//显示全部职员信息intSearchID(Linklist&L,charid[20]){ LNode*p; p=L; while(p) { if(strcmp(p->id,id)==0) { printf("编号%s\n",p->id); printf("姓名%s\n",p->name); printf("性别%s\n",p->sex); printf("生日%s\n",p->birth); printf("学历%s\n",p->edu); printf("职务%s\n",p->duty); printf("电话%s\n",p->phone); printf("地址%s\n",p->address); } p=p->next; } returnOK;}//ID查询intSearchName(Linklist&L,charname[10]){ LNode*p; p=L; while(p) { if(strcmp(p->name,name)==0) { printf("编号%s\n",p->id); printf("姓名%s\n",p->name); printf("性别%s\n",p->sex); printf("生日%s\n",p->birth); printf("学历%s\n",p->edu); printf("职务%s\n",p->duty); printf("电话%s\n",p->phone); printf("地址%s\n",p->address); } p=p->next; } returnOK;}//姓名查询voidSortID(Linklist&L,charid[20]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->id,q->id))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//编号排序voidSortName(Linklist&L,charname[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->name,q->name))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//姓名排序voidSortSex(Linklist&L,charsex[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->sex,q->sex))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//性别排序voidSortBirth(Linklist&L,charbirth[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->birth,q->birth))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//出生年月排序voidSortEdu(Linklist&L,charedu[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->edu,q->edu))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q } L=La; Display(L);}//学历排序voidSortDuty(Linklist&L,charduty[10]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->duty,q->duty))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//职务排序voidSortPhone(Linklist&L,charphone[20]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->phone,q->phone))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q } L=La; Display(L);}//电话排序voidSortAddress(Linklist&L,charaddress[30]){ LinklistLa; Linklistp,q,m;La=(Linklist)malloc(sizeof(LNode)); La->next=NULL; while(L->next) { for(q=L->next,p=L->next;p->next;p=p->next) { if((strcmp(p->next->address,q->address))>0) { m=p; q=p->next; } } if(q==L->next) { L->next=L->next->next; } else { m->next=q->next; } q->next=La->next; La->next=q; } L=La; Display(L);}//地址排序intAlter(Linklist&L,charid[20]){ LNode*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->edu); printf("请输入职员职务\n"); scanf("%s",p->duty); printf("请输入职员电话\n"); scanf("%s",p->phone); printf("请输入职员地址\n"); scanf("%s",p->address); } p=p->next; } returnOK;}//更改intDel(Linklist&L,charid[20]){ LNode*p; LNode*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"); } returnOK;}//按ID删除//主函数voidmain(){ LinklistL; inta; charm; charname[10];charid[20];charsex[10]; charbirth[10]; charedu[10]; charduty[10]; charphone[20]; charaddress[30]; Initlist(L); inty; intx=1; while(x) { printf("=========================\n"); printf("欢迎进入职员管理系统!\n"); printf("=========================\n"); printf("1-添加职员信息\n"); printf("2-查询职员信息\n"); printf("3-排序职员信息\n"); printf("4-显示全部职员信息\n"); printf("5-更改职员信息\n"); printf("6-删除职员信息\n"); printf("7-退出\n"); printf("请选择操作序号并按回车:"); scanf("%d",&y); switch(y) { case1:CreatList(L); do { printf("是否继续输入?(y/n)"); getchar(); scanf("%c",&m); if(m=='y') { CreatList(L); } } while(m!='n'); break; case2:printf("请输入查询方法(1按编号查询,2按姓名查找)"); scanf("%d",&a); if(a==1) { printf("请输入查询职员编号\n"); scanf("%s",&id);

温馨提示

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

评论

0/150

提交评论