人力资源管理系统_第1页
人力资源管理系统_第2页
人力资源管理系统_第3页
人力资源管理系统_第4页
人力资源管理系统_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

论文PAGE1完整程序设计源代码请联系本人,参见豆丁备注和信息。/lzj781219摘要全球范围内的企业内部在发生巨变,未来企业成功的关键是依靠企业人力资源,人才之争已经成为市场竞争中的核心内容之一,以人为本成为企业立足和发展的根本。有效的管理企业的人力资源,为企业提供强有力的储备力量,使之成为企业发展的主动力。通过人力资源的有效管理,掌握最新的、准确的企业人力资源信息,并对其进行复杂的统计与分析,从而充分发挥每个员工的潜能,为企业创造更大的价值。企业员工管理系统是一个企业单位不可缺少的部分,是适应现代企业制度,推动企业企业员工管理走向科学化、规范化、自动化的必要条件。它的内容对于企业的决策者和管理者来说都至关重要,所以企业员工管理系统应该能够为用户提供充足的信息和快捷的查询手段,以帮助企业领导了解企业现有的人力资源状况。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在许多缺点,如:效率低、安全性差、时间一长就会产生大量的文件和数据积压,这对于查找、更新和维护都带来了不少的困难。因此,为了加快企业的信息化步伐,提高企业的管理水平以在激烈的社会竞争中立于不败之地,建设和完善企业员工管理系统已经变得十分必要和迫切。本系统详细介绍了企业企业员工管理系统的开发与设计,包括了开发一个管理信息系统的5个阶段:系统开始和可行性研究、系统分析和设计、程序设计、系统测试和技术培训、项目总结和评估。关键词:企业员工管理,信息系统。AbstractInternalbusinessesworldwideinupheaval,thekeytobusinesssuccessinfutureistorelyontheenterprisehumanresources,talentcompetitionhasbecomeoneofthecorecontentofmarketcompetition,peoplebecometheenterprisebasedonthefundamentalanddevelopment.Theeffectivemanagementoftheenterprisehumanresources,provideastrongreserveforcefortheenterprise,makeitbecomethedrivingforceofenterprisedevelopment.Theeffectivemanagementofthehumanresources,graspthelatestinformationonhumanresources,accurateenterprise,andcarryoncomplicatedstatisticsandanalysistoit,thusgivefullplaytoeachemployee'spotential,tocreategreatervaluefortheenterprise.Humanresourcesmanagementsystemisanindispensablepartofbusinessunits,istoadapttothemodernenterprisesystem,promotethenecessaryconditionofhumanresourcesmanagementtoscientific,standardized,automatedenterprise.Itscontentisveryimportantforbusinessdecision-makersandmanagers,sothehumanresourcemanagementsystemshouldbeabletoprovidethesufficientinformationandthequickinquirymethodfortheuser,inordertohelptheenterpriseleaderstounderstandtheenterpriseexistinghumanresourcescondition.Butthepeoplehavesincealwaysusedthetraditionalartificialwaymanagementdocumentfile,thismanagementwayhasmanyshortcomings,suchas:lowefficiency,poorsecurity,alongtimewillproducethemassivedocumentsandthedatabacklog,thisregardingthesearch,therenewalandthemaintenancehasallbroughtmanydifficulties.Therefore,inordertospeedupthepaceofinformationtechnologyenterprises,improvethemanagementlevelofenterprisestoremaininvincibleinthefiercesocialcompetition,theconstructionandtheconsummationhumanresourcesmanagementsystemhasbecomeverynecessaryandurgent.Thesystemdescribedindetailthedevelopmentanddesignofenterprisehumanresourcesmanagementsystem,includingthe5stagesofthedevelopmentofamanagementinformationsystem:thesystemstartswiththefeasibilitystudy,systemanalysisanddesign,programdesign,systemtestandtechnicaltraining,theprojectsummaryandtheappraisal.Keywords:humanresourcemanagement,informationsystem.

目录摘要 1第1章 系统设计的目的和内容 3第2章开发工具和环境介绍 42.1IIS简介 42.2JSP开发环境 52.3Java的特点 6 72.5Struts2 102.6C/S结构 112.7Web服务器 12 13 14第3章系统总体设计 153.1需求分析 153.2开发及运行环境 153.3系统流程图 16第4章数据库设计 174.1数据库系统概述 174.2数据库总体设计 18第五章数据库设计 205.1表关系图 205.2数据库表设计 21管理员表 21待办事项表 21待办事项类型表 21员工表 22部门表 22请假表 22考勤表 234.3数据库的连接原理 23第6章系统各功能模块的详细设计 256.1登陆 256.2添加待办事项 276.3考勤签到 286.4工资查看 306.5添加员工 316.6请假查看 32第七章软件的测试 347.1功能调试 347.1.1链接测试 347.1.2数据库调试 347.2测试方法 357.3测试的概述 357.3.1测试的概念和意义 351.1.1 测试的特性 357.3.2测试的重要性和范围 367.4单元测试 367.5集成测试 377.6系统测试 377.7测试过程 387.7.1主页面的登录模块测试 387.8其他错误 38系统设计的收获和体会 40结论 41致谢 42参考文献 43系统设计的目的和内容今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。计算机已经成为我们学习和工作的得力助手,我们的生活也越来越离不开它。随着现代科技的进步,用计算机来进行考勤的管理也成为现代化企业运作必不可少的一部分。在过去我们的考勤工作都是人工完成的,不仅浪费了很多的人力跟物力,而且无法保证其准确性和透明度;给企业的管理带来了许多的不便。现在利用计算机来管理我们的考勤工作,大大降低了工作人员的工作量,提高了工作效率,使原本复杂和枯燥无味的工作变得简单而轻松了。计算机技术特别是数据库技术的发展为企业建立管理信息系统,甚至对改变管理思想起着不可估量的作用。实践证明信息技术已在企业的管理层面扮演越来越重要的角色。员工信息管理系统中主要包括了员工的基本信息(姓名、性别、所属部门等),查询员工的基本信息,可根据员工的实际工资情况或实际的出勤情况查看员工的基本信息等。通过考勤系统我们能很容易地对公司员工的信息有一个基本的了解,可以很方便地知道员工的出勤情况,通过对员工出勤信息的了解,就能计算出员工的实际工资。一切的统计和计算都计算机代为管理了,员工信息管理系统对企业的合理化管理起到了很大的作用,它为企业信息化的建设打响了头炮,企业的信息化建设已成为现代各个企业发展的需要。

第2章开发工具和环境介绍2.1IIS简介IIS是InternetInformationServer的缩写,它是微软公司主推的Web服务器。在Windows2000安装光盘中就包含IIS5.0。IIS与WindowsNTServer完全集成在一起。所以用户能够利用在WindowsNTServer和NTFS(NTFileSystem,NT的文件系统)内置的安全特性,建立强大、灵活而安全的Internet或Intranet站点,能让您在企业内部网络或广域网络上,轻松共享文件和资讯。IIS5.0是Windows2000Server中最快的Web服务器,并与MicrosoftActiveDirectory目录服务完全整合,这种结合能够使以Web为基础的应用软件更可靠、更具有延展性。这项新一代的电子商务解决方案把旧资料和应用软件整合到全球资讯网(WWW)中,让公司能重新定义内部与外部的不同商务处理流程。IIS的一个重要特性是支持ASP.NET,是ASP.NET程序得以成功运行的先决条件,严格意义来说,必须在机器安装配置IIS服务器环境,否则ASP.NET将无法运行和正常使用,也无法实现其功能。IIS5.0是Windows2000Server所提供的服务,所以能和Windows2000Server上的其他服务紧密地合作,通过它们之间的合作,能够使一个网页正常得以运行、使用。2.2JSP开发环境JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。JSP全名为JavaServerPages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以<%,%>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。2.3Java的特点 1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(javanet),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。本系统采用的数据库为SQLServer2005数据库,采用B/S结构的工作模式。B/S结构是随着计算机网络技术的发展而出现的一种先进的计算模式。SQLServer的全称是MicrosoftSQLServer,由美国微软公司制作并发布的一种性能优越的关系型数据库管理系统,具有强大的数据库创建、开发、设计和管理功能。它不仅是一个完整的数据库,而且具有强大的扩展性。它是Windows操作系统最为流行的数据库,比较适合小型、中型、大型应用程序的后台数据库。它同时也适用于电子商务、数据仓库、和在线商业应用程序等。SQLServer2005是在SQLServer2000的基础上扩展升级的产品。它继承了SQLServer以前版本的所有优点,同时又增加了许多新的功能,与微软公司的其他产品具有良好的兼容性。它提供的几十种向导,覆盖了几乎所有的数据库操作(数据库的创建、维护、作业、警告、数据复制、转换等)。SQLServer2005支持B/S模式的体系结构。SQLServer2005的关系数据引擎是为WindowsDNA环境下的应用程序提供的基本报务之一,是一个具有高度可伸缩性、可靠性和安全性的数据存储引擎。SQLServer2005是一种高性能的关系型数据库管理系统,在SQLServer2000的基础上大大扩展了系统的性能、可靠性和易用性,逐渐成为OLTP(在线事务进程)、DW(数据仓库)和e商务应用最好的数据库平台。主要特点体现在以下几个方面:1.简便的操作方式 SQLServer2005界面友好、操作简单,同时包含一整套的管理和开发工具,企业管理器就是其中的图形化集成管理工具,用户不用记住各种命令和SQL语句就可以完成各种常规操作。2.以Brower/Server为设计结构SQLServer2005按B/S结构(B/S结构的系统有3个基本组成部分:浏览器、服务器、浏览器与服务器的连接件)设计而成,Brower/Server结构将任务合理地分配到服务器与客户端,减少了网络拥挤,提高了整体性能。3.支持多个不同的开发平台数据库开发人员可以使用任意一种开发平台编写应用程序来访问SQLServer。其中微软的产品VisualStudio可以帮助用户方便、快捷地开发新的SQLServer应用程序。4.支持企业级的应用程序SQLServer2005关系数据库引擎具备完善、强大的数据处理功能,充分保护数据完整性。SQLServer2005企业版在32位处理器上能支持超过数十万亿字节容量的数据库。5.支持XMLSQLServer2005引入了支持XML功能的特性。XML是扩展标记语言(ExtensibleMarkupLanguage的英文缩写),可用于描述一个数据集的内容以及数据如何在Web页中显示或输出到某个设备。它以可扩展、易用和安全的特点,成为建设大型Web站点最好的数据存储设备之一。6.数据仓库支持SQLServer2005中包括析取和分析汇总数据以进行联机分析处理(OLAP即在线分析处理)的工具,使联机分析处理成为可能。同时SQLServer2005提供了英文查询工具和编程接口,使得以英文为基础设计、管理和查询数据库成为了可能。7.语言排序规则在SQLServer2005以前的版本中,所有的数据库被限制在一个代码页以及语言集排序次序中,当使用英文版SQLServer数据库系统时,所有的语言排序规则就必须依赖英文的排序次序,SQLServer2005在Windows排序规则的基础上增加了一套新的排序规则,它代替了代码页和排序次序,为开发多国语言的数据库应用系统提供方便。8.全文搜索和文档管理功能全文搜索和文档管理功能被默认包含于SQLServer2005的所有版本中,这些功能可以在关系表的纯文本中执行文本查询和搜索所有的索引列,全文搜索功能还可以与SQL语句结合使用。9.增强了分布式查询功能SQLServer2005引入了一个OPENROWSET函数,可以在指定分布式查询中查询一个特定的连接信息,同时授予了“OLEDB”数据源更多的SQL操作权。SQLServer还有很多功能特点,因篇幅有限,在这里就不逐一向大家介绍了。2.5Struts2struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。运行流程:服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。以登录为例:第一次进login.jsp会先实例化Form、把默认值(String默认为空字符串,整形默认为0)赋给表单元素。输入用户名密码提交表单、提交到action属性的login.do,通过ActionServlet读struts-config.xml文件找到action下的path属性找到.do,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的excute方法。HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。实际应用:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。Transaction接口负责事务相关的操作,也可以设计编写自己的底层事务处理代码。2.6C/S结构C/S结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。C/S结构的优点:C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。对客户端的操作系统一般也会有限制。可能适应于Win98,但不能用于win2000或WindowsXP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。C/S架构软件的优势与劣势:(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。(3)C/S架构的劣势是高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。2.7Web服务器Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。目前最新版本是6.0。Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。系统运行环境主要有软件运行平台和硬件运行平台。1.软件运行平台户界面户好,简单易懂,易学易用。并且价格适中,适合于中小型学校中数据吞吐量不太大的情况下使用。2.硬件运行平台硬件运行平台见表2-1。表2-1硬件运行平台表本章主要对软件开发过程中的一些必要条件进行了论述。在详述了IIS后,对本系统的主要技术JSP进行了介绍,其中主要介绍了什么是JSP的脚本语言。之所以本系统采用了JSP,而没有采用asp、PHP。是因为JSP更接近于平时学习的语言,执行速度较高,而且开发效率很高,更广泛地被人们所使用。本章还对系统的运行平台进行了介绍。相信通过本章的论述,一定会对本系统的开发环境有一个深入的、透彻的了解。为了实现本系统,可行性分析与需求分析是必不可少的重要环节,由其是需求分析阶段。第3章系统总体设计3.1需求分析(1)部门管理:可以管理公司内部所有部门。(2)事务管理:能制订日程安排和任务计划,能将一个任务设置分阶段目标,为每个阶段任务给出倒计时和定时提醒,用户记录该任务的进度日志,任务完成后能按任务打印或统计任务完成情况。(3)考勤管理:管理员可以代打考勤,员工也可以登陆自己给自己打考勤。(4)请假管理:员工可以在线进行请假,管理员可以查看到请假日期,和原因等。(5)员工管理:添加公司内部员工,修改和删除员工信息。(6)工资管理:系统会自动根据员工的基本工资和考勤计算每个月工资。3.2开发及运行环境系统开发平台:MyEclipse6.0.1数据库:SQLServer2000运行平台:WindowsXP/Windows2000/Windows2003分辨率:最佳效果1024×768像素3.3系统流程图管理后台管理后台待办事项请假管理考勤管理工资管理添加待办事项修改待办事项待办事项查看删除待办事项我要请假查看修改请假信息查看请假信息查看删除请假信息考勤签到查看考勤部门管理添加部门查看修改部门查看部门删除部门员工管理添加员工查看修改员工查看员工删除员工查看工资查看工资查询统计第4章数据库设计数据库是系统信息的有效中心,一个优秀的数据库设计应考虑到系统工程的功能,系统的执行速度,以及是否可能引起系统工作的异常等。数据库的设计合理与否不仅直接影响到程序设计的质量,而且影响到系统的实现4.1数据库系统概述(1) 数据(Data)数据是数据库中存储的对象。数据在大多数人头脑中的第一反映就是数字。其实数字只是最简单的一种数据,是数据的一种传统和狭义的理解。广义的理解,数据的种类很多,文字,图形,图象,声音等都是数据,可以对数据做以下定义:描述事物的符号记录称为数据。(2) 数据库(DataBase)数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库是指长期存在计算机内的,有组织的,可共享的数据集合。数据库中的数据按一定的数据模型组织,描述和存储,具有较高的数据独立性和易扩展性,并可以为各种用户共享。(3) 数据库管理系统(DataBaseManagementSystem,简称DBMS)数据库管理系统是位于用户和操作系统之间的一层数据管理软件。它主要有以下几个方面的功能:①数据定义功能DBMS提供数据定义语言,用户通过它可以方便的对数据库中的数据对象进行定义。②数据操纵功能DBMS还提供数据操纵语言,用户可以使用这语言操纵数据实现对数据库的基本操作。如查询,插入,删除和修改等。③ 数据库的运行管理数据库在建立,运行和维护时由数据库管理系统统一管理,统一控制,以保证数据的安全性,完整性,多用户对数据的并发使用乃发生故障后的系统恢复。④ 数据库的建立和维护功能它包括数据库初始的输入,转换功能,数据库的转存,恢复功能,数据库的重组织功能和性能监视。这些功能通常是由一些实用的程序完成的。4.2数据库总体设计数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。数据库是通过数据库管理系统(DBMS-DATABASEMANAGEMENTSYSTEM)软件来实现数据的存储、管理与使用。数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。数据库是通过数据库管理系统(DBMS-DATABASEMANAGEMENTSYSTEM)软件来实现数据的存储、管理与使用。数据库是一个共享的、集成的计算机结构,它包括最终用户数据和元数据。一个好的数据库并不是随意产生的,其内容结构必须经过精心设计。设计优良的数据库会使数据管理变得容易,并产生有价值的信息;而设计糟糕的数据库则会成为冗余数据的滋生地。冗余数据经常会造成难以跟踪的错误。关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则被称为规范化形式,即范式。在数据库设计过程中,对数据库进行检查和修改并使它符合范式的过程叫做规范化。规范化是给实体分配属性的过程。它能够减少数据冗余,有助于进一步消除由于冗余引起的数据异常。规范化不能够消除数据冗余;相反,它通过生成有控制的冗余来连接数据库表。规范化通过一系列称为范式的阶段来完成。第一范式:设R是一个关系模式。如果R的每个属性的值域都是不可分的简单数据项(成为原子)的集合,则称这个关系模式属于第一范式。第一范式要求每一个数据项都不能拆分成两个或两个以上的数据项。第二范式(2NF):若关系模式R是1NF,而且每一个非主属性都完全函数依赖于R的候选键,则R称为第二范式。如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主关键字段的数指都依赖于该数据表的主键字段,那么该数据表满足第二范式。第三范式(3NF):如果关系模式R是1NF,而且它的任何一个非主属性都不传递地依赖于任何候选键,则R称为第三范式。如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数值之间不存在函数依赖关系,那么该数据表满足第三范式。数据表规范化的程度越高,数据冗余就越少,同时造成人为错误的可能性就越少;同时,规范化的程度越高,在查询检索时需要做的关联等工作就越多,数据库在操作过程中需要访问的数据表以及之间的关联也就越多。因此,在数据库设计的规范化过程中,要根据数据库需求的实际情况,选择一个折中的规范化程度。第五章数据库设计5.1表关系图5.2数据库表设计我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:*每一个实体要转换成一个关系*所有的主键必须定义非空(NOTNULL)*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。根据E-R模型,铝窗设计管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。管理员表英文名中文名类型是否主键id编号int是Name登陆名Nvarchar(50)Pass登陆密码Nvarchar(50)待办事项表英文名中文名类型是否主键id编号int是Title主题Nvarchar(50)DoType_ID类型intDoType外键Text内容textInTime日期datetimeWorker_ID员工编号intWorker外键待办事项类型表英文名中文名类型是否主键id编号int是Type类型名称Nvarchar(50)员工表英文名中文名类型是否主键id编号int是login登陆名varcharName姓名nvarcharAge年龄IntTel手机nvarcharaddress地址nvarcharmid证件号码varcharBuMen_ID部门编号intBuMen外键Pass密码varcharMoney基本工资float部门表英文名中文名类型是否主键id编号int是Type部门名称Nvarchar(50)请假表英文名中文名类型是否主键id编号int是Title标题nvarcharText原因TextIntime请假日期DatetimeWorker_ID请假员工IntWorker外键Read已读状态Intstate审核状态Int考勤表英文名中文名类型是否主键ID编号Int是Worker_ID员工编号IntWorker外键InTime签到时间datetime4.3数据库的连接原理采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO(DataAccessObject,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。其思想如图3.10所示:封装使用封装使用DataSourceDataAccessObjectBusinessObjectDataSourceDataAccessObjectBusinessObject创建/使用获取/修改创建/使用获取/修改DataTransferObjectDataTransferObject图3.10DAO模式类图图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下:publicDBContent(){ StringCLASSFORNAME="com.SqlServer.jdbc.Driver";//连接数据库的驱动 Stringurl="jdbc:SqlServer://localhost:3306/gy1"; Stringuser="root";//连接数据库的用户名 Stringpassword="root";//连接数据库的密码 try{ Class.forName(CLASSFORNAME); con=DriverManager.getConnection(url,user,password);//加载数据库的驱动 stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); } catch(Exceptionex){ ex.printStackTrace(); } } 在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。第6章系统各功能模块的详细设计在管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。6.1登陆输入登陆信息输入登陆信息发送请求判断登陆角色员工登陆管理登陆登陆名是否填写员工是否存在管理是否存在密码是否正确密码是否正确登陆成功truetruetruetruefalsetruetruefalse主要实现功能代码如下:request.setCharacterEncoding("UTF-8"); Stringloginname=request.getParameter("name"); StringPWD=request.getParameter("pwd"); Stringauthor=request.getParameter("author"); if("管理员".equals(author)) { Admina=newAdminServer().Login(loginname); if(a==null) out.print("<script>alert('没有该用户');location.replace('../login.jsp');</script>"); elseif(!a.getPass().equals(PWD)) out.print("<script>alert('您输入的密码有误');location.replace('../login.jsp');</script>"); else { session.setAttribute("admin",a); out.print("<script>location.replace('../admin/worker.jsp');</script>"); } } else { Workerw=newWorkerServer().Login(loginname); if(w==null) out.print("<script>alert('没有该用户');location.replace('../login.jsp');</script>"); elseif(!w.getPass().equals(PWD)) out.print("<script>alert('您输入的密码有误');location.replace('../login.jsp');</script>"); else { session.setAttribute("worker",w); out.print("<script>location.replace('../worker/do.jsp');</script>"); } }6.2添加待办事项员工可以添加自己的待办事项以达到提醒的作用,主要实现功能代码如下:request.setCharacterEncoding("UTF-8"); Workerw=(Worker)session.getAttribute("worker"); Stringtitle=request.getParameter("do_title"); StringtypeID=request.getParameter("do_type"); Stringintime=request.getParameter("do_intime"); Stringtext=request.getParameter("do_text"); Stringid=request.getParameter("id"); Stringparam=request.getParameter("param"); Dod=newDo(); if(param==null) { d.setTitle(title); d.setText(text); SimpleDateFormatdd=newSimpleDateFormat("yyyy-MM-dd"); d.setIntime(dd.parse(intime)); } intcount=0; if(id==null||id.equals("null")) count=newDoServer().Add(d,w.getId(),Integer.parseInt(typeID)); elseif(param==null) { d.setId(Integer.parseInt(id)); count=newDoServer().Edit(d,Integer.parseInt(typeID)); } elseif(param.equals("del")) count=newDoServer().Del(Integer.parseInt(id)); if(count==0) out.print("<script>alert('操作失败');location.replace('../adddo.jsp');</script>"); else out.print("<script>alert('操作成功');location.replace('../do.jsp');</script>");6.3考勤签到管理员可以给员工代打考勤,主要功能代码如下:<% intstartindex=0; if(request.getParameter("startindex")!=null) startindex=Integer.parseInt(request.getParameter("startindex")); intpagesize=5; Stringkey="datediff(day,intime,getdate())=0"; intrcount=newWorkerServer().GetCount(key); List<KaoQing>kqs=newKaoQingServer().GetAll(startindex,pagesize,key); request.setAttribute("kqs",kqs);%>6.4工资查看工资主要根据员工的基本工资和考勤进行计算,主要相关代码如下:<% Dated=newDate(); intyear=d.getYear()+1900; intmonth=d.getMonth(); if(request.getParameter("year")!=null) { year=Integer.parseInt(request.getParameter("year")); month=Integer.parseInt(request.getParameter("month")); } Workerw=(Worker)session.getAttribute("worker"); List<Money>ms=newMoneyServer().Get(year,month,w.getId()); request.setAttribute("ms",ms); %> <formmethod="post"action="money.jsp"> 年份: <selectname="year"> <% for(inti=0;i<3;i++) { %> <optionvalue="<%=year-i%>"> <%=year-i%>年 </option> <%}%> </select> <selectname="month"> <optionvalue="1">1月</option> <optionvalue="2">2月</option> <optionvalue="3">3月</option> <optionvalue="4">4月</option> <optionvalue="5">5月</option> <optionvalue="6">6月</option> <optionvalue="7">7月</option> <optionvalue="8">8月</option> <optionvalue="9">9月</option> <optionvalue="10">10月</option> <optionvalue="11">11月</option> <optionvalue="12">12月</option> </select>6.5添加员工主要功能代码如下:request.setCharacterEncoding("UTF-8"); Stringid=request.getParameter("id"); Stringlogin=request.getParameter("w_login"); Stringname=request.getParameter("w_name"); Stringage=request.getParameter("w_age"); Stringtel=request.getParameter("w_tel"); Stringaddress=request.getParameter("w_address"); Stringmid=request.getParameter("w_mid"); StringbmID=request.getParameter("w_bumen"); Stringparam=request.getParameter("param"); String[]authors=request.getParameterValues("author"); Workerw=newWorker(); if(param==null) { w.setLogin(login.toString()); w.setName(name); w.setAge(Integer.parseInt(age)); w.setTel(tel); w.setAddress(address); w.setMid(mid); } intcount=0; intwid=0; if(id==null||id.equals("null")) count=wid=newWorkerServer().Add(w,Integer.parseInt(bmID)); elseif(param==null) { w.setId(Integer.parseInt(id)); wid=Integer.parseInt(id); count=newWorkerServer().Edit(w,Integer.parseInt(bmID)); } elseif(param.equals("del")) count=newWorkerServer().Del(Integer.parseInt(id)); } if(count==0) out.print("<script>alert('操作失败');location.replace('../addworker.jsp');</script>"); else out.print("<script>alert('操作成功');location.replace('../worker.jsp');</script>");6.6请假查看管理员可以看到所有的请假条,并可以看到已读和未读状态,主要实现功能代码如下:<% Workerw=(Worker)session.getAttribute("worker"); intstartindex=0; if(request.getParameter("startindex")!=null) startindex=Integer.parseInt(request.getParameter("startindex")); intpagesize=5; intrcount=newLeaveServer().GetCount(""); List<Leave>ls=newLeaveServer().GetAll(startindex,pagesize,""); request.setAttribute("ls",ls);%><tableid="sqltable"> <trclass="title"> <td>编号</td> <td>请假标题</td> <td>请假日期</td> <td>审核状态</td> <td>阅读状态</td> <td>操作</td> </tr> <c:forEachitems="${ls}"var="l"> <trclass="rows"> <td>${l.id}</td> <td>${l.title}</td> <td>${ime}</td> <td>${l.stateText}</td> <td>${l.readText}</td> <td> <ahref='leaveread.jsp?id=${l.id}'>阅读</a> <c:iftest="${l.state==0}"> <ahref='Ref/leave.jsp?val=1&&id=${l.id}'>通过</a> <ahref='Ref/leave.jsp?val=2&&id=${

温馨提示

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

评论

0/150

提交评论