首页 大型软件项目实训报告30

大型软件项目实训报告30

举报
开通vip

大型软件项目实训报告30大型软件项目实训报告教学单位专业班级学生姓名学号指导教师目录TOC\o"1-5"\h\zHYPERLINK\l"bookmark4"\o"CurrentDocument"1实训目的1HYPERLINK\l"bookmark6"\o"CurrentDocument"2实训时间和地点1HYPERLINK\l"bookmark8"\o"CurrentDocument"3实训单位简介1HYPERLINK\l"bookmark10"\o"CurrentDocument"4实训内容2HYPERLI...

大型软件项目实训报告30
大型软件项目实训报告教学单位专业班级学生姓名学号指导教师目录TOC\o"1-5"\h\zHYPERLINK\l"bookmark4"\o"CurrentDocument"1实训目的1HYPERLINK\l"bookmark6"\o"CurrentDocument"2实训时间和地点1HYPERLINK\l"bookmark8"\o"CurrentDocument"3实训单位简介1HYPERLINK\l"bookmark10"\o"CurrentDocument"4实训内容2HYPERLINK\l"bookmark12"\o"CurrentDocument"4.1实训期间完成的学习任务2HYPERLINK\l"bookmark14"\o"CurrentDocument"Oracle数据库2HYPERLINK\l"bookmark16"\o"CurrentDocument"4.1.2软件测试3HYPERLINK\l"bookmark18"\o"CurrentDocument"4.1.3Java课程4HYPERLINK\l"bookmark20"\o"CurrentDocument"4.1.4职场交际与沟通7HYPERLINK\l"bookmark22"\o"CurrentDocument"4.1.5面试技巧7HYPERLINK\l"bookmark24"\o"CurrentDocument"4.1.6SSH框架8HYPERLINK\l"bookmark26"\o"CurrentDocument"4.2实训期间完成的实践项目10HYPERLINK\l"bookmark28"\o"CurrentDocument"项目简介10HYPERLINK\l"bookmark30"\o"CurrentDocument"4.2.2需求 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 10HYPERLINK\l"bookmark32"\o"CurrentDocument"4.2.3总体 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 11HYPERLINK\l"bookmark34"\o"CurrentDocument"4.2.4详细设计134.2.5编码154.2.6测试用例27HYPERLINK\l"bookmark38"\o"CurrentDocument"5实训收获与体会29HYPERLINK\l"bookmark40"\o"CurrentDocument"6致谢291实训目的针对具体软件工程项目,全面掌握软件工程管理,软件需求,软件总体设计,软件详细设计,软件测试等阶段的方法和技术。通过该实训项目,使我们进一步理解和掌握软件开发模型,软件生命周期,软件过程等理论在软件项目开发过程中的意义和作用。培养我们按照软件工程的原理,方法,技术, 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 和规范进行软件开发的能力,对技术文档的编写能力,从而提高我们的软件工程的综合能力,提高软件项目的管理能力。2实训时间和地点1•实训时间:2011年11月1月~2012年1月6日2•实训地点:沈阳东软实训中心3实训单位简介东软是中国最大的IT解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 与服务提供商,1991年,东软创立于中国东北大学,目前,公司拥有员工217000余名,在中国建立了6个软件研发基地,8个区域总部,在40多个城市建立营销与服务网络,在大连,南海,成都和沈阳分别建立3所东软信息学院和1所生物医学与信息工程学院,在沈阳,大连,南京,成都和无锡等13地建立了分布式实训基地,在美国,日本,欧洲,中东设有子公司。东软以软件技术为核心,通过软件与服务的结合,软件与制造的结合,技术与行业管理能力的结合,提供行业解决方案以及相关软件产品,平台与服务。在软件与服务方面,东软在国内市场定位于为社会基础设施和企业信息化提供全面解决方案和服务的公司。东软的软件和解决方案包括:各种软件与中间件产品、行业解决方案及实施、咨询与服务。在软件产品方面,东软的网络安全产品,人力资源管理系统保持市场占有率第一的地位;在行业解决方案方面,东软为中国的电信、电力、社保、教育、税务、金融、证券、交通、烟草、广电、医疗、电子政务、企业管理等行业提供解决方案,其中在电信、电力、社保、烟草、税务、企业、电子政务保持市场领先的地位。同时,东软在国际合作和服务外包方面取得了长足的发展,业务覆盖汽车电子、手机、数字电视、DVD、金融、证券、ERP等嵌入式和应用软件领域,可以为客户提供软件开发,联合研发,软件测试与系统维护,实施与咨询,IT技术支持以及业务流程外包等服务。沈阳东软实训基地依托东软沈阳软件园,是目前我国规模最大的集大学生实训和软件人才培训为一体的人才培训基地,可容纳5000多人同时进行培训,每年可为10000多名大学生和软件人才提供实训。教室内配备有中央空调,饮水机,投影仪,白板,麦克及音箱。关于实训中心的计算机配置如下:intelPD925(3.0/800/2*2MB)/963芯片/单条1G(ddr2667)/80GSATA3.0Gb/s/1000M卡/无光驱/无软驱/17寸显示屏/USB键盘/USB光电鼠标。4实训内容4.1实训期间完成的学习任务在东软实训中心,我们学习了很多知识。主要课程有以下几种:oracle数据库,java基础,软件测试,标准日本语初级(下),IT日语,面试与沟通技巧,职场交际,素质拓展训练以及SSH集成框架等。4.1.1Oracle数据库数据查询语言SQL:所谓SQL语言,它可以在oracle数据库中创建,存储,更新,检索和维护数据,其主要功能就是实现数据的查询和数据的插入,删除,修改等操作。它在书写上类似于英文,简洁清晰,易于理解。SQL语言可以分为四类:数据库控制语言(控制对数据库的访问,启动和关闭等),数据库定义语言(用来创建,删除及修改数据对象),数据库操纵语言(用来操纵数据库的内容,包括查询),数据库事务处理(实现对数据的交易过程的完整控制)。数据操作:数据库操作语句则包含以下内容,insert插入新行,update修改更新已存在的行,delete删除表中已存在的行;数据库事务,事务是由相关操作构成的一个完整的操作单元。两次连续成功的commit或rollback之间的操作,称为一个事务,以及表的锁定,锁用来保证数据的一致性,当多个会话同时修改一个表时,需要对数据进行相应的锁定。游标:游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。它主要就是用于临时存储从数据库中提取的数据块。在某些情况下,需要把数据从存放在磁盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库。这样会提高数据处理的速度,反之频繁的磁盘数据交换会降低效率。存储过程和函数:存储过程和函数也是PL/SQL块,是存入数据库的PL/SQL块。它们以命名的数据库对象形式存储于数据库中,但是因为代码不保存在本地,用户可以在任何客户机上登录到数据库,并调用或修改代码。(5)触发器:触发器必须由事件才能触发。触发器的触发事件分可为3类,分别是DML事件、DDL事件和数据库事件。每类事件包含若干个事件,数据库的事件是具体的,在创建触发器时要指明触发的事件。4.1.2软件测试(1)什么是软件测试?软件测试是指通过人工或自动手段运行或测试某个系统功能,验证软件是否能达成期望功能,贯穿软件生产过程的始终的一套完整的质量体系。(2)软件测试的目的是什么?证明软件能够正确完成其预定的功能。它是为了发现错误而执行的过程,证明程序有错而不是程序无错误。一个好的测试是第一时间发现程序中存在的错误,发现至今尚未发现的错误。(3)软件测试的原则所谓软件测试的原则,是指尽早并不断的进行测试,避免测试自己设计的程序,合法的输入数据,非法输入数据,程序修改之后进行回归测试,注意测试中群集现象,设计合理测试用例,对测试结构进行检查,严格执行测试 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 ,排除测试的随意性,保留测试计划,全部测试用例,出错统计,最终分析报告。(4)关于软件测试与软件质量保证的区别在性质方面,软件测试是技术性工作,而软件质量保证是管理性工作。在对象方面,软件测试的对象是软件产品,而软件质量保证的对象是整个软件过程,覆盖公司各个领域。在手段方面,软件测试以事后检验为主,而软件质量保证强调缺陷的预防。(5)软件工程师的素质要想成为一名合格的软件测试工程师,首先在技术方面,应该掌握如下能力:编程语言,数据库理论,计算机网络技术,软件工程,数据结构,计算机原理,软件测试基础,软件测试设计,软件测试工具,软件质量管理,以及外语。其次,一名合格的软件测试工程师,应该具有一定的编程经验,较强的沟通能力,严谨,敢于承担,稳重的做事风格,具有怀疑和破坏精神,善于自我总结,自我督促。最后,软件测试工程师应该有耐心和细心,并且注重团队合作。4.1.3Java课程StrutsStruts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.Struts框架可分为以下四个主要部分,其中三个就和MVC模式紧密相关:模型(Model),本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的。视图(View),View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。控制器(Controller),本质上是一个Servlet,将客户端请求转发到相应的Action类。一堆用来做XML文件解析的工具包,Struts是用XML来描述如何自动产生一些JavaBean的属性的,此外Struts还利用XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)。⑵SpringSpring是轻量级的J2EE应用程序框架。其核心是个轻量级容器(container),实现了IoC(InversionofControl)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供one-stopshop的框架整合方案。Spring不会特別去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架夠新夠好,例如Spring有自己的MVC框架方案,因为它觉得现有的MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在Spring中整合您的Struts框架。Spring的核心概念是IoC,IoC的抽象概念是「依赖关系的转移」,像是「高层模组不应该依赖低层模组,而是模组都必须依赖于抽象」是IoC的一种表现,「实现必须依赖抽象,而不是抽象依赖实现」也是IoC的一种表现,「应用程序不应依赖于容器,而是容器服务于应用程序」也是IoC的一种表现。Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题。Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。使用Spring构建的应用程序易于单元测试。Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或localEJBs来实现业务接口,却不会影响调用代码。Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。Spring为数据存取提供了一致的框架,不论是使用JDBC或0/Rmapping产品(如Hibernate)。Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。Spring没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象许多开发人员,我们从来没有为Struts高兴过,并且感到在MVCwebframework中还有改进的余地。在某些领域,例如轻量级的IoC容器和AOP框架,Spring有直接的竞争,但是在这些领域还没有已经较为流行的解决方案。Spring也得益于内在的一致性。所有的开发者都在唱同样的的赞歌,基础想法依然是ExpertOne-on-OneJ2EE设计与开发的那些。并且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。(3)HibernateHibernate是一个开放源代码的对象映射框架,它对JDBC进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在java的客户端程序使用,也可以在servlet/jsp的web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate为面向对象的领域模型到传统的关系模型数据库的映射,提供了一个使用方便的框架。同时,它也是目前java开发中最为流行的数据库持久层框架。Hibernate不仅负责从java类到数据库表的映射,还提供了面向对象的数据查询检索机制,从而极大的缩短的手动处理SQL和JDBC上的开发时间。Hibernate的核心接口一共有六个,分别为:Session,SessionFactoryTransaction,Query,Criteria,Configuration。这六个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。(4)MVCMVC是模型(model),视图(view),控制器(controller)的缩写,它是一种软件设计的典范,用于组织代码用一种业务逻辑和数据显示分离的方法。它强制性的使应用程序的输入,处理和输出分开。使用MVC应用程序被分成三个核心部件,模型,视图和控制器。它们各自处理自己的任务。视图:视图是用户看到并与之交互的界面,MVC好处是它能为应用程序处理很多不同的视图,在视图中,其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型:模型表示企业数据和业务规则,在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJB这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用模式的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击web页面中的超链接和发送html表单时,控制器本身不输出任何东西和做任何处理,它只是接受请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。(5)AjaxAjax是一种客户端方法,可以与J2EE,.NET,PHP等脚本交互,它是Asynchronous,javascript,XML的缩写。使用ajax时经常会出现以下问题:不同于Iframe和隐藏框架,通过XHR作出请求不会修改浏览器的历史记载,但如果使用后退按钮,就会出现问题;ajax不会修改地址栏中显示的链接;使用ajax不要过度,javascript会在客户端的浏览器上运行,如果有数千行javascript代码,可能会让用户觉得速度太慢;ajax允许异步完成操作。那么,如何使用ajax,有以下步骤:首先,一个客户端事件触发一个ajax事件,接着,向服务器作出请求,可能调用servlet,CGI脚本或任何服务器端技术,服务器可以做你想做的事,包括访问DB,甚至访问另一个系统。然后,请求返回到浏览器,最后,调用callback函数。4.1.4职场交际与沟通沟通的功能从管理的角度看主要有控制、协调、激励、交流等作用。有效沟通不仅仅能传递意义,还对其加以理解并让各方达到共识。在企业的实际经营管理中有效的沟通所起的作用是显而易见的。无论是企业管理者还是普通的职工,都是企业竞争力的核心要素,做好沟通工作,无疑是企业各项工作顺利进行的前提。有效沟通在企业管理中的重要性主要表现在:准确理解公司决策,提高工作效率,化解管理矛盾。公司决策需要一个有效的沟通过程才能施行,沟通的过程就是对决策的理解传达的过程。决策表达得准确、清晰、简洁是进行有效沟通的前提,而对决策的正确理解是实施有效沟通的目的。在决策下达时,决策者要和执行者进行必要的沟通,以对决策达成共识,使执行者准确无误的按照决策执行,避免因为对决策的曲解而造成的执行失误。4.1.5面试技巧基本注意事项在面试过程中,我们应该做到谦虚谨慎,求职者在回答一些比较有深度的问题时,切记不可不懂装懂,不明白的地方要虚心请教或坦白说不懂,这样才会给用人单位留下诚实的好印象;另外,在面试时,我们要做到随机应变,当求职者一人面对众多考官时,心理压力很大,面试的成败大多取决于求职者是否能够机制果断,随机应变,能当场把自己的各种聪明才智发挥出来;同时,我们在面试的过程中,要学会扬长避短,每个人都有自己的特长和不足,无论在性格上还是在专业上都是如此,因此在面试时,一定要注意扬我所长,避我所短。必要时可宛转的说明自己的长处和不足,用其他方法加以弥补;面试时如何消除紧张感?首先,要保持一颗“平常心”,在竞争面前,人人都会紧张,这是一个普遍的规律。其常用的方法是或大声的讲话,把面对的考官当熟人对待,或掌握讲话的节奏,慢慢道来;其次,不要把成败看的太重,胜败乃兵家常事,要时刻这样提醒自己,如果这次不成,还有下一次机会;第三,不要把考官看的过于神秘,并非所有的考官都是经验丰富的专业人才,可能在陌生人面前也会紧张,认识到这一点就用不着对考官过于畏惧,精神也会自然放松下来。然而,重要的还是要准备充分。实践证明,面试时准备的越充分,紧张程度就越小,考官提出的问题你都会,就不会紧张了;最后,要增强自信心。(3)面试时应注意的礼仪首先,注意服饰要得体,即服饰与自己的身材,身份相符,表现出朴实,大方,明快,稳健的风格,并且,要与自己应聘的职业相协调,能体现自己的个性和职业特点。一般说来,服饰要给人以整洁,大方得体的感觉,穿着应以保守,庄重一点为好,不要追求时尚,浓妆艳抹。其次,遵守时间。面试时,千万不能迟到,而且最好能够提前十分钟到达面试地点,以有充分的时间调整自己紧张的情绪,也表示求职的诚意。假如依照约定的时间匆匆前往,对方也许已经在等你,那样就显得你欠礼貌,欠诚意,同时还容易使你情绪紧张而影响面试效果。第三,表情要自然,动作要得体,进门时,不要紧张,表情越自然越好,在对方没有请你坐下时切勿急于坐下,请你坐下时,应说声谢谢,坐下后要保持良好的坐姿。对于女生来讲,动作更应该得当,任何轻浮的表情或动作都可能会让招聘人员对你不满,另外各种手势也要恰当得体,自然。第四,要讲究文明礼貌,进门时应主动打招呼,如果是对方主动约4自己面谈,一定要感谢对方给自己这样一个机会,如果是自己约对方面谈,一定要表示歉意。面谈时,决不能东张西望,心不在焉,不要不停的看手表,否则,显得对对方不尊重。最后,是一个听的学问,要有耐心,对对方提起的任何话题,都应该耐心倾听,不能表现出心不在焉,或不耐烦的神色,要尽量让对方兴致勃勃的讲完,不要轻易打断或插话,,同时要细心,具备足够的敏感性,善于理解对方的弦外之音。4.1.6SSH框架(1)什么是SSH?SSH为struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DACK现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DACffl件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。框架搭建步骤首先,添加myeclipse数据源;接着,添加hibernate框架(配置log4j);第三,添加spring框架;第四,添加struts2框架;第五,处理冲突的jar包;第六,配置web.xml,启动spring框架;第七,配置spring的公共部分(即事务管理);第八,配置web.xml,启动hibernate框架;最后,定义乱码过滤器com.ehr.util.EncodingFilter。4.2实训期间完成的实践项目421项目简介项目名称:人事管理系统项目说明:人事管理系统,用于描述最终用户关于人事管理方面的业务流程,它主要具有以下功能:对员工的基本信息进行管理,此外,它还将提供员工信息更改或删除等的功能,使公司的人事管理方便快捷而又清晰。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效地程序结构支持各种数据操作的执行。本人职责:员工离职信息管理,主要实现离职员工信息的查询,修改和删除操作,并且可以添加即将离职员工的信息。4.2.2需求分析(1)总体目标随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;人事管理系统是各个系统的重要组成部分,是所有业务系统中数据量最大、业务管理内容最多,建设工期最长、实时性最强的业务子系统,它包含很多的功能模块,如员工管理、部门管理、岗位管理、离职管理、试用期管理、调动管理等业务系统。对于系统执行的重要操作自动记录操作人和操作日期。操作人默认为当前登录人员。操作日期默认为当天。集中数据管理、分布式应用,实现信息的全面共享,为决策者提供最新的人力资源数据。图1系统数据流程图423总体设计(1)系统分析用户进入人事管理系统前,需要通过系统的权限验证,如登录用户不具备该系统的操作权限,提示越权信息,禁止进入该系统。当用户进入系统后,共有5个模块可以使用,分别为:查询部门管理模块、查询岗位管理模块、员工信息管理模块和部门岗位调动管理,还有员工离职模块。如果用户要退出人事管理系统,单击“退出系统”按钮即可。图3系统流程图(2)模块设计本系统中的员工离职信息管理模块中,实现已经离职员工信息的查询,编辑,删除等操作,对于即将离职的员工,可进行添加离职员工信息处理。(3)功能说明在员工离职信息管理模块中,对于已经离职的员工,可对相关员工的离职信息进行查询,删除和修改操作,若有其他员工选择离职,则可进行添加操作。(1)关系模式离职员工信息(离职编号、员工姓名、部门名称、岗位名称、离职日期、离职类型、离职去向、是否加入人才库、备注)图4E--R图4.2.4详细设计该阶段主要是确定目标系统应该怎样具体的实现所要求的系统,得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成某种程序设计语言书写的程序。图5模块流程图(2)数据库的详细设计设计数据库系统时首先应该充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:数据库需求分析,数据库概念设计,数据库逻辑设计,数据库物理设计表1离职员工信息表列名称数据类型长度是否为空说明idint10N离职编号depNamevarchar50N部门名称empNamevarchar50N员工姓名postNamevarchar50N岗位名称dimissionDatedate10N离职日期dimissionTypechar50N离职类型isEntryLiberarystring10N是否进入人才库dimissionDestinationvarchar50N离职去向dimissionRemarkvarchar50Y备注模块流程图开始图6模块流程图425编码对象的调用流程是:jsp->Action->Service->DAO->Hibernate。数据的流向是ActionFormBean接受用户的数据,Action将数据从ActionFromBean中取出,圭寸装成VO或PO,再调用业务层的Bean类,完成各种业务处理后再forward。而业务层Bean收到这个PO对象之后,会调用DAO接口方法,进行持久化操作。实体类编写publicclassDimission{longdimissionld;Employeesemployees;//离职员工编号Departmentsdepartments;//离职部门Postsposts;//离职岗位StringdimissionDate;//离职日期CodedimissionType;//离职类型StringdimissionDestination;//离职去向CodeisEntryLiberary;//是否加入到数据库StringdimissionRemark;//离职备注}实体类属性配置v/many-to-one>v/hibernate-mapping>业务逻辑层IDimissionBiz,在该接口中,主要封装了数据的增删改查的方法。publicinterfaceIDimissionBiz{SerializableaddDimission(Dimissiondimission);voidmodifyDimission(Dimissiondimission);voiddeleteDimission(Serializabledimissionld);voiddeleteDimission(Dimissiondimission);DimissionfindById(Serializabledimissionld);ListfindAll();}业务逻辑层DimissionBiz,在该类中,主要封装了一些方法,同时详细编写了findAII()。publicclassDimissionBizimplementsIDimissionBiz{IDimissionDaodimissionDao;//重要publicIDimissionDaogetDimissionDao(){returndimissionDao;}publicvoidsetDimissionDao(IDimissionDaodimissionDao){this.dimissionDao=dimissionDao;}publicSerializableaddDimission(Dimissiondimission){returndimissionDao.addDimission(dimission);}publicvoiddeleteDimission(Serializabledimissionld){dimissionDao.deleteDimission(dimissionld);}publicvoiddeleteDimission(Dimissiondimission){dimissionDao.deleteDimission(dimission);}publicListfindAll(){System.out.println("DimissionBiz.findAll()");Listldds=dimissionDao.findAll();ListlpsvoList=newArrayList();for(com.ehr.entity.Dimissiondimission:ldds){com.ehr.entity.vo.DimissionVodimission2=newcom.ehr.entity.vo.DimissionV)();dimission2.setDimissionId(dimission.getDimissionId());EmployeesVoe=newEmployeesV»();e.seteId(dimission.getEmployees().geteld());e.setEmpName(dimission.getEmployees().getEmpName());dimission2.setEmployees(e);DepartmentsVod=newDepartments\6();d.setdId(dimission.getDepartments().getdId());d.setDepName(dimission.getDepartments().getDepName());dimission2.setDepartments(d);Posts®p=newPostsV6();p.setpld(dimission.getPosts().getpld());р.setPostName(dimission.getPosts().getPostName());dimission2.setPosts(p);dimission2.setDimissionDate(dimission.getDimissionDate());dimission2.setDimissionDestination(dimission.getDimissionDestination());CodeVoc1=newCodeV6();c1.setCodeld(dimission.getlsEntryLiberary().getCodeld());c1.setType(dimission.getlsEntryLiberary().getType());c1.setTypename(dimission.getlsEntryLiberary().getTypename());dimission2.setIsEntryLiberary(c1);dimission2.setDimissionRemark(dimission.getDimissionRemark());CodeVoc=newCodeV)();с.setCodeId(dimission.getDimissionType().getCodeld());c.setType(dimission.getDimissionType().getType());c.setTypename(dimission.getDimissionType().getTypename());dimission2.setDimissionType(c);lpsvoList.add(dimission2);}returnIpsvoList;}publicDimissionfindByld(Serializabledimissionld){returndimissionDao.findByld(dimissionld);}publicvoidmodifyDimission(Dimissiondimission){dimissionDao.modifyDimission(dimission);}}在DAO层,主要负责与持久化对象的交互,在该层,封装了数据的增删改查操作。publicinterfaceIDimissionDao{SerializableaddDimission(Dimissiondimission);voidmodifyDimission(Dimissiondimission);voiddeleteDimission(Serializabledimissionld);voiddeleteDimission(Dimissiondimission);DimissionfindById(Serializabledimissionld);ListfindAll();DimissionDao4OrclpublicclassDimissionDao4OrclextendsHibernateDaoSupportimplementsIDimissionDao{publicSerializableaddDimission(Dimissiondimission){SerializabledimissionId=super.getHibernateTemplate().save(dimission);returndimissionId;}publicvoiddeleteDimission(Serializabledimissionld){Dimissiondimission=findByld(dimissionld);super.getHibernateTemplate().delete(dimission);}publicvoiddeleteDimission(Dimissiondimission){super.getHibernateTemplate().delete(dimission);}publicListfindAll(){Stringhql="fromDimission";returnsuper.getHibernateTemplate().find(hql);}publicDimissionfindByld(Serializabledimissionld){Dimissiondimission=super.getHibernateTemplate().get(Dimission.class,dimissionld);returndimission;}publicvoidmodifyDimission(Dimissiondimission){super.getHibernateTemplate().update(dimission);}}allDimission.jsp页面离职信息管理页面v/script>varmaxdate="2012-12-31";varmindate="2010-01-01";vardmd;varcurrentrowindex;调用日期函数。functionsd(){vardate=newDate();maxdate=(date.getFullYear()-18)+"-"+(date.getMonth()+1)+"-"+date.getDay();mindate=(date.getFullYear()-80)+"-"+(date.getMonth()+1)+"-"+date.getDay();}varIdds=nuII;varcurrentrowindex=nuII;vardimission=nuII;varresult;varemp;$(document).ready(function(){$("#table").hide();$("#t").show();abc();abc1();abc2();abc3();getAII();});该函数主要是调用码表中的离职类型和是否加入人才库这两项信息。functionabc(){$.ajax({type:"POST",url:"HYPERLINK"http://10.10.31.15:8080/ehr/code/code_fi"http://10.10.31.15:8080/ehr/code/code_findAII.action",dataType:"json",error:function。{alert("操作失败,请重试!");},success:function(data){list=data.Ics;showCode(Iist);}});}functionshowCode(Iist){vardimissionType=$.grep(list,function(data,i){returndata.type=='离职类型";});$.each(dimissionType,function(i,code){varcode=""+code.typename;$("#dimissionType").append(code);});varisEntryLiberary=$.grep(list,function(data,i){returndata.type==是否加入人才库";});$.each(isEntryLiberary,function(i,code){varcode=""+code.typename;$("#isEntryLiberary").append(code);});}该函数主要是调用员工表中的员工姓名这一项信息。functionabc1(){$.ajax({type:"POST",Url:"HYPERLINK"http://10.10.31.15:8080/ehr/employees/"http://10.10.31.15:8080/ehr/employees/employees_findAll.action",dataType:"json",error:function。{alert("操作失败,请重试!");},success:function(data){list=data.les;showEmp(list);}});}functionshowEmp(){$.each(list,function(i,employees){varemployees=""+employees.empName;$("#empName").append(employees);});}该函数主要是调用部门表中的部门名称这一项信息。functionabc2(){$.ajax({type:"POST",url:"HYPERLINK"http://10.10.31.15:8080/ehr/departme"http://10.10.31.15:8080/ehr/departments/departments_findAll.action",dataType:"json",error:function。{alert("操作失败,请重试!");},success:function(data){list=data.lds;showDep(list);}});}functionshowDep(){$.each(list,function(i,departments){vardepartments=""+departments.depName;$("#depName").append(departments);});}该函数主要是调用岗位表中的岗位名称这一项信息。functionabc3(){$.ajax({type:"POST",url:"HYPERLINK"http://10.10.31.15:8080/ehr/posts/"http://10.10.31.15:8080/ehr/posts/posts_findAll.action",dataType:"json",error:function。{alert("操作失败,请重试!");},success:function(data){list=data.lpvos;showPosts(list);}});}functionshowDepPost(){for(vari=0;i"+posts.postName;$("#postName").append(posts);});}删除离职员工信息的函数。functiondeletethis(i){vardimission=ldds[i];vardata="dimissionld="+dimission.dimissionld;if(confirm("确认删除离职员工"+dimission.dimissionld+"吗?")){$.ajax({type:"POST",url:"HYPERLINK"http://10.10.31.15:8080/ehr/dimissio"http://10.10.31.15:8080/ehr/dimission/dimission_delete.action",data:data,dataType:"json",cache:false,error:function(){alert("操作失败,请重试!");},success:function。{removeat(index);clearTable();alert("删除成功!");}});$("#table").hide();$("#t").show();clearTable();getAll();}}functionremoveat(index){varltvs=newArray();for(vari=0;i
本文档为【大型软件项目实训报告30】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥15.0 已有0 人下载
最新资料
资料动态
专题动态
is_072127
暂无简介~
格式:doc
大小:384KB
软件:Word
页数:0
分类:
上传时间:2020-09-18
浏览量:5