《人事信息管理系统(含源代码)(共22页).doc》由会员分享,可在线阅读,更多相关《人事信息管理系统(含源代码)(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上*实践教学*兰州理工大学计算机与通信学院2013年春季学期C程序设计课程设计题 目: 人事信息管理系统 专业班级: 计算机二班 姓 名: 刘俊锋 学 号: 指导教师: 廖成斌 成 绩: 专心-专注-专业前 言 人事信息管理系统是一种典型的管理信息系统。管理信息系统(MIS)是一门跨越若干领域的新学科。在强调管理,强调信息的现代社会中越来越普及。管理系统能够实现管理信息系统化是一个企事业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。一直以来人们使用传统人工的方式管理档案,这种管理方式
2、存在着许多缺点。如:效率低、保密性差。时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。因此,随着企业的壮大和发展,传统的管理方式已不在适应企业的需要。而使用计算机对人事信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高企事业单位人事信息管理工作的效率,是企事业单位人事管理部门的科学化、正规化管理的重要途径,也是企事业单位与世界接轨的重要途径。人事信息资源管理系统是企业员工管理的一个重要内容。当今社会人员流动越来越频繁,人事管理工作也变得越来越复杂。如果能够实现人事管理的自动化,
3、无疑将给企业管理部门带来很大的方便。人事信息管理就是把分散在企业单位的职工信息实行统一、集中、规范的收集管理,建立分类编号管理、电脑存储查询等现代化、专业化的管理系统。企业人事管理的对象是企业、企业化管理的事业单位及职工本人。人事信息管理为企业单位和个人提供信息输入、信息修改、信息查询、工资调整、依据信息出具个人的基本档案等服务;为企业单位和个人提供信息的收集、整理、保管服务。目 录摘 要我们组本次课程设计的主要任务是开发设计一个人事管理系统。该人事管理系统主要完成员工资料的管理,包括职工资料和在职记录的添加、修改、查询和删除,以及一些辅助项目的管理,如工作部门管理、基本工资信息管理和技能工资
4、信息。人事信息管理系统是典型的信息管理系统(MIS),本系统是用C语言编写,此信息管理系统可以实现职工信息的高效查询,修改,删除等操作,使职工信息关系系统化,规范化和自动化。该系统可以满足人事管理日常工作的需要,实现无纸化办公,以模糊组合查询的方式,提供了相同数据源多库表的查询,为人事住处的管理提供了方便、快捷的操作方式。由人事部门提出需求,并提供相关表格、数据格式,开发人员进行需求分析,与人事部门确定核准后,进行系统设计,然后进行编码、测试、调试,由人事部门试运行,提出改进意见,最后以软件系统的形式正式运行。在这个过程中,我们遇到了很多困难,比如一开始无法利用查询软件来进行人事信息的操作,接
5、着在老师的一步一步指导下,发现程序依然存在很多的细节问题,比如人事信息过简陋,最后我们小组经过讨论,对程序进行局部休整,把这些问题一一解决,最后程序基本完善,就是眼下的这样。当然肯定还有一些瑕疵,敬请用户在使用的过程中向我们提出,不胜感谢!刚开始拿到这个题目感觉有点茫然不知从何下手,最后经过老师的指点我们有了一个大体的设计理念,在加上查看相关数据库设计的书籍、上网查找相关资料我们的头脑中有了较为清晰的设计思路。然后我们就顺着自己的思路一步步地开始了我们的设计。 首先是进行需求分析,其中包括功能需求,性能需求,数据需求,运行需求。因为我们对于人事管理都没有太多的了解,这其中有什么需求我们也不是很
6、清除,最后我们又通过调查,再加上参考类似系统的设计思想我们终于完成了需求分析这项首要任务。再下来是根据需求分析我们更进一步地确定了该系统的功能,进而划分模块,确定各模块的功能。在此基础上确定该系统中所涉及的各个实体,以及与各实体相关的属性。画出E-R图,得出其关系模式。然后就可进一步进行详细的设计。 关键词: 信息管理系统 系统开发 人事信息管理1需求分析电脑已经深入到我们日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂
7、的工作。然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。 1.1问题描述随着企事业单位的发展,人员会越来越多,少则几十人、多则上万人。例如一个企业分很多部门,每个部门又分为许多科或室等,而其下又分为各级领导和员工。用笔和纸传统的手工管理档案,这中管理方式存在着不易更新、不易存放、不安全、容易丢失、难以备份等重大缺陷,管理起来效率低下而且很可能造成管理上的混乱。而自己建立简单的电子文档对信息管理进行管理虽然克服了以上的缺点,但查询效率较低,特别是当数据量十分庞大时,劣势尤其明显。因此开发一个既可以存储信息,又可以进行
8、更新、查询、管理等功能,同时价格又能为广大消费者接受的多功能电子人事信息管理系统就显得十分必要。1.2系统功能本系统实现的是人事信息管理系统,在设计系统时,结合人事信息管理的实际流程需要,系统在实现上应该具有如下功能: a. 提供增加、删除、修改用户帐户的功能。 b. 员工各种信息的输入和修改。 c. 对于转出、辞职、离退员工信息的删除。 d. 按照某种条件,查询、统计符合条件的员工信息。 e. 提供对员工、部门、岗位等各种条件的查询。1.3编程环境与工具编程语言采用C语言,开发环境为VisualC+。.程序的总体模块根据需求描述,整个系统划分若干个功能模块。开 始显示菜单功能选择输入选项根据
9、所选项调用相应函数 返回主菜单按6退出整个程序 选择项在1-6之间 按照提示执行增加、 查找、删除等 输入错误输入正确图1系统功能模块图.2 系统各模块的功能描述系统各子模块的设计如下:(1)输入记录模块void Appendworker(WR *head,int *i,int N) char ch; WR *p;int n;p=head; n=0; while(nnumber); printf(请输入姓名:); scanf(%s,p-name); printf(请输入性别:); scanf(%s,p-sex); printf(请输入年龄:); scanf(%s,p-age); printf(
10、请输入电话号:); scanf(%s,p-IDcard); printf(请输入工资:); scanf(%s,p-summary); (*i)+;p+;printf(使用E或e结束?n);getchar();ch=getchar(); if(ch=e|ch=E)break; ; (2)查询记录模块void Searchworker(WR *head,int i)int number=0,x=0,y=0;char num20; WR *p;p=head; fflush(stdin);printf(请输入您要查询的职工号:); scanf(%s,num); while(numberi)x=0;y=
11、0;while(ynumbery=numy)x+;else break;y+;if(x=(strlen(p-number)+1) printf(职工号,姓名,性别,年龄,电话号,工资); printf(%10s %10s %5s %10s %12s %10sn,p-number,p-name,p-sex,p-age,p-IDcard,p-summary);break;else p+;number+;if(number=i)printf(职工号不存在!n);(3)删除记录模块void Deleteworker(WR *head, int *N)int y,i;int a,b;char Delet
12、enumber20;WR *p;y=0;i=0;p=head; fflush(stdin); printf(请输入您要删除的职工号:); scanf(%s,&Deletenumber); while(y*N)a=0;b=0;while(bnumberb=Deletenumberb)a+;else break;b+;if(a=(strlen(p-number)+1)while(i(*N-y)*p=*(p+1);i+;(*N)-;printf(删除成功n);return;else p+;y+; if(y=*N)printf(职工号不存在!n); (4)增加记录模块void Addworker(WR
13、 *head, int *i,int N) WR *p;int n=0;p=head; fflush(stdin);while(nnumber); printf(请输入姓名:); scanf(%s,p-name); printf(请输入性别:); scanf(%s,p-sex); printf(请输入年龄:); scanf(%s,p-age); printf(请输入电话号:); scanf(%s,p-IDcard); printf(请输入工资:); scanf(%s,p-summary); (*i)+; (5)修改记录模块void Amendworker(WR *head,int N)int
14、y=0,a,b;char Amendnumber20;WR *p;p=head; fflush(stdin);printf(请输入您要修改的职工号:); scanf(%s,&Amendnumber); while(yN)a=0;b=0;while(bnumberb=Amendnumberb)a+;else break;b+;if(a=(strlen(p-number)+1)printf(职工号,姓名,性别,年龄,电话号,工资); printf(%10s %10s %5s %10s %12s %10sn,p-number,p-name,p-sex,p-age,p-IDcard,p-summary
15、);printf(开始进行修改); printf(n请输入职工号:);scanf(%s,p-number);printf(请输入姓名:);scanf(%s,p-name);printf(请输入性别:);scanf(%s,p-sex);printf(请输入年龄:);scanf(%s,p-age);printf(请输入电话号:);scanf(%s,p-IDcard);printf(请输入工资:);scanf(%s,p-summary);return;else p+;y+; if(y=N)printf(职工号不存在!n);3详细设计4.1修改职工信息测试测试数据:在系统中查询1个名称为刘XX的职工信
16、息,如图5所示。图5测试结果:输入修改的姓名刘XX,显示了第一个姓名为刘XX的职工信息,输入修改后的信息:孙XX 性别 女 。第一个姓名为刘XX的通讯录修改成功,如图6所示。图6测试数据:在系统中不存在职工号99的职工信息,输入后,提示姓名不存在,如图5设计总结为了加深对课堂理论学习的理解,提高应用水平,增强动手能力,为毕业设计做准备,我们进行了本次人事信息管理系统的课程设计。我们组本次课程设计的主要任务是开发设计一个人事管理系统。该人事管理系统主要完成员工资料和薪酬的管理,包括工资料和薪酬记录的添加、修改、查询和删除,以及一些辅助项目的管理,如工作部门管理、基本工资信息管理和技能工资信息。从
17、浅的层次来说,通过这次设计我将所学知识与实际结合了起来,将课本知识系统化,使得我对课本知识有了更加深刻的理解。对于我更深层的意义是让我体会到了团队与合作的力量,这次我们小组共三个人,在这期间我们为选择开发语言等许多问题有过争执与分歧,但就是在这其中我们才得以成长,最终我们算是圆满地完成了任务。我希望今后有更多类似的机会使自己得到更多锻炼。通过这次的实验,我明白了编程的艰辛与编程结束并使之运行的喜悦,了解到了C语言编程的来之不易,明白了要学习的东西还很多,懂得了一些简单的计算机编程的原理,明确了以后的学习之路还很长。参考文献1苏小红等著。C语言大学使用教程 北京:电子工业出版社,20042苏小红
18、等著。C语言大学使用教程习题与实验指导 北京:电子工业出版社,20043王连相,付朝青著。C/C+程序设计教程(第二版) 中国铁道出版社 20114王连相,付朝青著。C/C+程序设计上机指导与测试(第二版) 中国铁道出版社 20115谭浩强.C语言程设计. 北京:清华大学出版社,20056c语言程序设计教程 北京大学出版社7c语言程序设计实例精粹 电子工业出版社 8C语言程序设计 高等教育出版9The C Programming Language 机械工业出版社致谢在此特别感谢廖成斌及王连相老师的恳切教导,在编写该系统的时候,由于我们自身水平不够,遇到了一系列的问题,没有两位老师的悉心讲解,这
19、个程序也不会像现在这样完善,谢谢!附件1 程序源代码#include#include#includestruct worker /构建结构体char number20; char name15; char sex20; char age20; char IDcard20; char summary20;typedef struct worker WR;void Appendworker(WR *head,int *i,int N) / 输入职工子函数 char ch; WR *p;int n;p=head; n=0; while(nnumber); printf(请输入姓名:); scanf(
20、%s,p-name); printf(请输入性别:); scanf(%s,p-sex); printf(请输入年龄:); scanf(%s,p-age); printf(请输入电话号:); scanf(%s,p-IDcard); printf(请输入工资:); scanf(%s,p-summary); (*i)+;p+;printf(使用E或e结束?n);getchar();ch=getchar(); if(ch=e|ch=E)break; ; void Searchworker(WR *head,int i) /查询职工子函数int number=0,x=0,y=0;char num20;
21、WR *p;p=head; fflush(stdin);printf(请输入您要查询的职工号:); scanf(%s,num); while(numberi)x=0;y=0;while(ynumbery=numy)x+;else break;y+;if(x=(strlen(p-number)+1) printf(职工号,姓名,性别,年龄,电话号,工资); printf(%10s %10s %5s %10s %12s %10sn,p-number,p-name,p-sex,p-age,p-IDcard,p-summary);break;else p+;number+;if(number=i)pr
22、intf(职工号不存在!n);void Deleteworker(WR *head, int *N) / 删除职工子函数int y,i;int a,b;char Deletenumber20;WR *p;y=0;i=0;p=head; fflush(stdin); printf(请输入您要删除的职工号:); scanf(%s,&Deletenumber); while(y*N)a=0;b=0;while(bnumberb=Deletenumberb)a+;else break;b+;if(a=(strlen(p-number)+1)while(i(*N-y)*p=*(p+1);i+;(*N)-
23、;printf(删除成功n);return;else p+;y+; if(y=*N)printf(职工号不存在!n); void Addworker(WR *head, int *i,int N) / 增加职工子函数 WR *p;int n=0;p=head; fflush(stdin);while(nnumber); printf(请输入姓名:); scanf(%s,p-name); printf(请输入性别:); scanf(%s,p-sex); printf(请输入年龄:); scanf(%s,p-age); printf(请输入电话号:); scanf(%s,p-IDcard); pr
24、intf(请输入工资:); scanf(%s,p-summary); (*i)+; void Amendworker(WR *head,int N) / 修改职工子函数int y=0,a,b;char Amendnumber20;WR *p;p=head; fflush(stdin);printf(请输入您要修改的职工号:); scanf(%s,&Amendnumber); while(yN)a=0;b=0;while(bnumberb=Amendnumberb)a+;else break;b+;if(a=(strlen(p-number)+1)printf(职工号,姓名,性别,年龄,电话号,
25、工资); printf(%10s %10s %5s %10s %12s %10sn,p-number,p-name,p-sex,p-age,p-IDcard,p-summary);printf(开始进行修改); printf(n请输入职工号:);scanf(%s,p-number);printf(请输入姓名:);scanf(%s,p-name);printf(请输入性别:);scanf(%s,p-sex);printf(请输入年龄:);scanf(%s,p-age);printf(请输入电话号:);scanf(%s,p-IDcard);printf(请输入工资:);scanf(%s,p-sum
26、mary);return;else p+;y+; if(y=N)printf(职工号不存在!n); char Menu(void) / 菜单函数char ch; printf( t n); printf( t * n); printf( t 欢迎进入人事信息管理系统 n); printf( t n); printf( t n); printf( t 1-输入职工信息 n); printf( t n); printf( t 2-查询职工信息 n); printf( t n); printf( t 3-删除职工信息 n); printf( t n); printf( t 4-添加职工信息 n);
27、printf( t n); printf( t 5-修改职工信息 n); printf( t n); printf( t 6- 结束 n); printf( t n); printf( t * n); printf( t n); scanf( %c,&ch); return ch;main() /主函数char ch; int N; int i=0; WR *WR1; printf(请输入最大人数:n);scanf(%d,&N);WR1=(WR*)malloc(sizeof(WR)*N); while(1)fflush(stdin);ch=Menu(); switch (ch)case 1:Appendworker(WR1,&i,N); break; case 2:Searchworker(WR1,i); break; case 3:Deleteworker(WR1,&i);break; case 4:Addworker(WR1,&i,N);break; case 5:Amendworker(WR1,i);break; case 6:printf(程序执行结束,谢谢使用!n);free(WR1);exit(0); break; default:printf(输入错误!n);break;