基于BS架构的企业报表管理系统的设计与实现_第1页
基于BS架构的企业报表管理系统的设计与实现_第2页
基于BS架构的企业报表管理系统的设计与实现_第3页
基于BS架构的企业报表管理系统的设计与实现_第4页
基于BS架构的企业报表管理系统的设计与实现_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计基于B/S架构的企业报表管理系统学生姓名:王恺学号:1021010513学院:华中软件学院专业:软件工程指导教师:2014年6月华中科技大学页共35页1引言1.1开发“基于B/S架构的企业报表管理系统”的背景改革开放以来,我国经济高速发展,在国家大力推进信息化建设的背景下,计算机技术得到了突飞猛进的发展,计算机的应用也普及到了经济和社会生活等各个领域。当计算机出现之后,人们利用计算机处理数据和界面设计的功能来生成、展示报表。运用合适的报表工具有利于加快开发效率,节省开发成本,并且后期的修改、维护也会更加方便。为了使企业工作更有效率会有分多种报表,所以就需要有一个将报表管理起来的系统,使分析,统计报表的时候更有效率。在这种环境下我们需要开发一个这样的系统。1.2报表管理系统的的优点及现状分析企业B/S结构报表的优势,它的强大的制表功能完全能解决在制作中国式复杂报表时遇到的难题。有了这样的报表工具开发人员的精力就能迅速集中在业务逻辑和数据组织上,而不必为琐碎的报表样式呕心沥血了。众所周知,报表系统已在各行各业广泛应用,特别是用友的Cell报表几乎覆盖了所有领域,包括财务、税务、铁道、航空、医疗、军队、人事、水利等等。客观的讲,用友华表的Cell报表已经成为当前报表领域的第一品牌,是报表市场的领导者。1.3企业报表系统的发展趋势随着报表管理系统的功能的发展和完善,越来越多的企业将用上更为先进的企业报表管理系统,报表管理系统是一个具有很好发展潜力的市场,将成为中国企业管理不可或缺的一部分,更有助于推动企业经济的发展,提高企业的综合竞争力。1.4本系统的特色本系统主要为那些具有非常多报表类型业务很复杂的公司,提供对各种报表的管理是企业更有效率,系统有两个模块,用户(也就是职员)可以对自己负责的报表进行上传,修改。可以对自己的个人信息进行察看,修改。管理员可以对报表进行各种操作,对员工汇总的报表进行分析的功能,还可以对员工信息进行管理。在设计时应满足如下几个目标:(1)采用人机对话的方式,查询信息方便、灵活,数据存储准确、安全;(2)用户进行报表录入方便快捷;(3)能使用户方便、快捷的查询个人,报表信息;(4)能够实现报表上传、下载功能;(5)在网络环境下实现数据的插入、删除、修改等功能;(6)管理员实现按照报表类型,报表录入时间对报表进行分类查询;(7)管理员实现对用户所做操作的审核功能;(8)管理员实现对于员工权限控制;(9)系统运行稳定、安全、可靠。1.5论文的结构本论文分为七章:第一章绪论介绍了报表管理系统的优点、现状、发展趋势和本系统的特色。可行性分析从技术、操作等方面作出可行性分析。第三章需求分析通过查资料、查询现在的报表管理系统,确定使用B/S结构,使网站能够承受更多的负荷。第四章总体设计详细设计了本系统的模块好人数据库设计方案。第五章详细设计介绍了关键模块的实现和数据库的逻辑设计。第六章系统设计介绍了测试方法,并得出测试结果。第七章结论说明了本系统的情况。2可行性分析随着报表的功能的发展和完善,越来越多的企业将用上更为先进的企业报表管理系统,报表管理系统是一个具有很好发展潜力的市场,将成为中国企业管理不可或缺的一部分,更有助于推动企业经济的发展,提高企业的综合竞争力。2.1市场可行性目前,中国企业逐渐开始认识到报表的重要性,很多企业开始用报表管理企业,但是报表的种类有太多,这使得人工管理报表费时费力,而且效率不高,而且也报表管理系统就是为解决这一问题而设计的.鉴于此,企业报表管理系统的市场前景时非常好的。2.2技术可行性现在,大容量的高速硬盘非常普遍,网络的速度也达到了普遍的提高,甚至达到100M,这些优势为企业报表管理系统的建设打下坚实的基础,所以,计算机的硬件速度已经不是问题。从软件上来讲,数据库技术相当成熟,并且出来数据库的能力也非常强,这为大量的数据处理和存储提供了保障。有了这些技术,我们开发企业报表管理系统的技术已经相当成熟。2.3应用可行性本系统是一种基于B/S构架的网上购物系统,此方案具有使用方便、界面直观等优点。管理员对销售信息进行管理操作简单、方便,用户可以没有专业网络知识就可以浏览该系统,管理员只要会使用就可以对该系统进行维护。因此,该系统在应用方面是可行的。3需求分析3.1市场调查调查主要是在实习单位对于做报表的项目组的前辈进行咨询,还有自己上网查阅相关的资料,对于国际上先进的报表管理分析公司进行了解,比如说sap和用友.我了解到整个报表管理系统时十分强大的,它包括各种企业报表的定制生成,对不同报表的管理以及对报表数据的统计,分析.作为一个个体我不可能做到面面俱到,所以只能模仿完成企业及报表管理系统中几个关键的模块。3.2用户需求分析随着互联网的高速发展,互联网分应用技术迅速发展。以及企业用报表管理企业的思想深入中国企业.越来越多的中国企业需要有能够一个系统对企业报进行管理.传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着

Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端B/S(浏览器--服务器)应用程序的应用而生,提高冷系统的可维护性。客户端只需安装浏览器就可以与服务器相连接,就可以运行程序,提高了系统的可扩展性。B/S构架的使用范围越来越大,特别是需求的增大,推动了AJAX技术的发展,它的部分程序能在客户端电脑上进行处理,从而大大减轻了服务器的负担;并增加了可交互性,进行实时刷新信息。此外,由于客户端和服务器端是分离的,所以应用程序的版本更新是在服务器端进行的,这样可以节省客户端的大量资源,节省时间。B/S结构受到了很多企业和公司的喜爱,B/S构架能充分的适应市场的需求。本系统就是采用的B/S构架进行开发的。3.3流程图图3.1流程图3.4系统用例图3.4.1管理员用例图:管理员是系统的核心用户,涉及到两大功能模块,具体功能,如图3.2所示图3.2管理员用例图3.4.2用户用例图图3.3用户用例图4总体设计4.1系统目标(1)操作简单、方便,提高资源的利用率和共享能力,加快搜索速度;(2)提高经营管理效率,减少管理的工作量,减少重复操作率。4.2系统模块总体设计利用层次图来表示本系统中各模块之间的关系,层次图是用树形结构的多个层次的的框图描绘数据的层次结构。顶层是一个单独的矩形图,代表整个数据结构,下面的各层框图代表各个数据的子集,最底层的框图代表组成数据的实际数据元素。利用层次图,对数据的描述越来越详细。本系统分为前台和后天两大模块,两个系统之间在数据库的访问上是紧密相连的,两个模块访问的是同一个数据库,只是访问的不同表中的数据。系统的两个模块每个又可分为多个模块。4.2.1用户模块根据需求分析我们知道,一个报表管理系统,一定需要操作的人员对报表进行相关的操作,在这个系统中我们将其称为用户,用户应该有下面的一些特征,首先得有权限登录相应的模块,其次用户能够对自己负责的部分进行相关的操作,再次能对自己的信息进行修改。用户拥有的一些功能收到管理员的限制。据此我们将用户分成了不同的模块。按功能可以分为如下几个模块:(1)个人信息查询模块:职员可以查看自己的个人信息;(2)个人信息修改模块:如果自己的信息需要修改,用户可以在用户模块修改,但需要管理员审核才能生效;(3)报表录入模块:用户将自己负责的报表上传导服务器;(4)报表查询模块:职员可以查询自己录入的报表;(5)报表修改模块:职员可以对自己已经上传得报表进行修改,修改结果需要让管理员审核,审核通过才可以生效;系统的用户功能模块如下图:图4.1系统用户功能模块4.2.2管理模块根据需求分析我们知道,一个报表管理系统,除了需要有操作报表录入的相关人员外还需要管理报表的人,在这个系统中我们将其称为管理员,管理应该有下面一些特征,首先管理员能够添加用户,管理用户信息。其次对于用户提交的一些信息进行审核。最后,管理员需要对报表进行一些分析。据此,管理员模块分成如下的几个模块。系统管理按功能分为以下几个模块:(1)报表信息管理模块:可以按报表的录入时间以及录入类型对所有报表进行查询;(2)个人信息管理模块:在此模块下,管理员只可以查看用户的注册信息及删除用户的信息;(3)管理员审核信息模块:该模块管理员可以对需要审核的信息进行审核;(4)权限模块:该模块管理员可以,删除或添加员工进入用户模块的权利.系统的管理功能模块如下:图4.2系统管理员功能模块4.3数据库设计在设计数据库时,应该注意以下几点:(1)数据库的具体用途,根据用途设计符合用途的数据库;(2)数据库的规范化设计,防止设计中出现错误;(3)数据完整性的保护;(4)权限的安全性;(5)数据库维护性;本系统中采用MySQL数据库建立数据库,数据库名为test。4.3.1数据库概念设计数据库设计是一个系统设计的重中之重,当我们需求写完之后,根据需求写出详细设计的方案,实体类就确定了。根据实体类定义每个类需要的字段,根据各个实体类的关系对各个表经行表关系的维护。表关系的维护决定了一个系统的优良。(1)网上音像店系统实体间关系E-R图如下图 图4.3E-R图(2)个人信息实体图如下图:图4.4个人信息实体图(3)管理员实体图如下图:图4.5管理员实体图(4)报表实体图如下图:图4.6报表实体图报表,是这个设计的关键实体,对于企业级报表录入,需要将excle表中的报表相关数据录入到系统中报表录入模块,然后再将数据导入数据库中。对于现在的我来说,达不到能够将excle中的数据导入到系统或数据库的能力,我能做到的是,将报表文件上传到服务器上,提供相关人员的下载。将上传报表的信息,存入到数据库中,这样我们就可以根据这写信息找到相应的报表了。上传到服务器时将生成一个id用于充当报表文件上传到服务器是的目录。(5)用户实体图如下图:图4.7用户实体图4.3.2数据库逻辑设计系统采用Hibernate作为数据访问框架,首先通过设计良好结构的领域实体类,然后由hbm配置文件来完成对象关系的映射工作。Hibernate采用了面向对象建模的思想,不仅能减少数据库设计中冗余字段,更重要的是,它使得数据库表的结构合理、紧凑。经过系统的编写,本系统的Hibernate配置文件和数据库表及各自的配置文件如下。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEhibernate-reverse-engineeringPUBLIC"-//Hibernate/HibernateReverseEngineeringDTD3.0//EN""/hibernate-reverse-engineering-3.0.dtd"><hibernate-reverse-engineering> <tablename="user"catalog="test"class="com.report.pojo.User"> <primary-key> <generatorclass="native"></generator> </primary-key> </table> <tablename="role"catalog="test"class="com.report.pojo.Role"> <primary-key> <generatorclass="native"></generator> </primary-key> </table> <tablename="forms"catalog="test"class="com.report.pojo.forms"> <primary-key> <generatorclass="native"></generator> </primary-key> </table><tablename="uncheckforms"catalog="test"class="com.report.pojo.HForms"> <primary-key> <generatorclass="native"></generator> </primary-key></table></hibernate-reverse-engineering>4.3.3数据库详细设计1.报表录入信息表这张表记录着用户录入的报表信息,具体信息如下表:表4.1报表信息表序号名称别名类型长度1Id编号Int2552Entry_user录入人Varchar2553Enter_date录入日期Varchar2554typeid录入类型Int2555File_catalog目录Varchar2556status录入状态Varchar2557Userid录入人idInt2552.系统角色表这张表记录系统中两种角色的信息,具体信息如下表:表4.2角色表序号名称别名类型长度1Id编号Int2252Role角色Varchar10003decribe角色描述Varchar2253.报表审核表这张表记录着用户修改报表后需要审核的报表信息,如下表:表4.3报表审核表序号名称别名类型长度1id编号Int2552Entry_user录入人Varchar2553Enter_date录入日期Varchar2554typeid录入类型Int2555File_catalog目录Varchar2556status录入状态Varchar2557Userid录入人idInt2554.员工信息表这张表记录着员工的基本信息,具体信息如下表:表4.4用户信息表序号名称别名类型长度1username用户名Varchar10002password密码Varchar10003sex性别char24age年龄int35tel电话int2256emailemailVarchar2257roleid角色类型Int2258status状态Int15.用户角色表这张表是角色和用户的桥表,具体信息如下表:表4.5角色用户桥表序号名称别名类型长度1id编号int2252Role_id角色idint2253User_id用户idint2254describe描述varchar2255系统详细设计及实现5.1系统运行平台本系统的运行平台分为硬件环境和软件环境两种。1.硬件环境系统的硬件环境为处理器Intel(R)Core(TM)i5-2430MCPU@2.40GHz2.40GHz,内存4.00GB。2.软件环境系统的软件环境为Win7操作系统,MySql数据库,JDK1.6、MyEclipse10开发包和Tomcat6.0服务器。5.2开发技术介绍本系统采用MVC(Model-View-Controller)框架,MVC是一种设计模式,用于表示一种软件架构模式。MVC把软件系统分为三个组成部分:模型、视图和控制器,这种模式是为了实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。其中,模型层用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。视图层能够实现业务数据的输入和显示。控制层接收用户的输入并调用模型和视图去完成用户的需求。本系统中应用的Struts技术是基于MVC的Web的应用框架。在此框架中Struts2[3]是Struts的下一代产品。是在Struts和WebWork的技术基础上进行了合并,全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。因为Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。Struts2框架的处理流程如图5.1所示:图5.1Struts2框架的处理流程图通过上面对Struts2体系结构[4]的了解,我们发现Struts2对Struts1进行了巨大的改进。主要表现在如下几个方面:(1)在Action的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。(2)线程模型方面:Struts1的Action工作在单例模式,一个Action的实例处理所有的请求。Struts2的Action是一个请求对应一个实例。没有线程安全方面的问题。(3)Servlet依赖方面:Struts1的Action依赖于ServletAPI,比如Action的execute方法的参数就包括request和response对象。这使程序难于测试。Struts2中的Action不再依赖于ServletAPI,有利于测试,并且实现TDD。(4)封装请求参数:Struts1中强制使用ActionForm对象封装请求的参数。Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。(5)表达式语言方面:Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(ObjectGraphNavigationLanguage)。(6)绑定值到视图技术:Struts1使用标准的JSP,Struts2使用“ValueStack”技术。(7)类型转换:Struts1中的ActionForm基本使用String类型的属性。Struts2中使用OGNL进行转换,可以更方便的使用。(8)数据校验:Struts1中支持覆盖validate方法或者使用Validator框架。Struts2支持重写validate方法或者使用XWork的验证框架。(9)Action执行控制的对比:Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的生命周期。Struts2支持通过拦截器堆栈为每一个Action创建不同的生命周期Hibernate[7]是Java应用和数据库之间的桥梁,通过对JDBC的简单封装,使Java程序员可以使用面向对象的思想操作数据表,不用再考虑数据访问细节,可以专注于业务逻辑的开发,它对软件分层做了进一步细化,使数据的持久化与业务逻辑和数据库分开,便于软件的后期维护。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate体系结构如图5.2所示:图5.2Hibernate体系结构Spring框架技术[5]实际上是RodJohnson在ExpertOne-on-OneJ2EEDesignandDevelopment[6]一书中所阐述的设计思想的具体实现。Spring框架为J2EE平台的开发者提供的是一种“对象管理”技术,也就是为开发者解决包括对象的生命周期、对象之间的依赖关系建立、对象的缓存实现等方面问题的管理技术。Spring框架是一个轻量级的控制反转(IoC)技术和面向切面编程(AOP)技术的容器框架,利用Spring框架中的IoC技术可以实现J2EE平台中所倡导的由容器实现对象的生命周期管理,而利用Spring框架中的AOP技术可以实现J2EE平台中所倡导的分离应用系统中业务逻辑组件和通用技术服务组件。应用系统的开发者在应用系统中应用Spring框架后能够达到“解耦”和“脱离容器”的设计和实现的目的。5.3系统首页设计本系统的主界面设计中,采用了比较简单大方的页面设计理念,通过用户名可以判断进入的是用户模块还是管理员块。界面设计如图5.3所示。图5.3系统主界面 下面是登陆模块的核心代码: publicStringexecute()throwsException{ forms=formsDao.getFormsById(id); System.out.println(forms); hf=HDao.getHFormsById(id); System.out.println(hf); forms.setEntry_user(hf.getEntry_user()); forms.setEntry_date(hf.getEntry_date()); forms.setFile_catalog(hf.getFile_catalog()); forms.setStatus(String.valueOf(1)); forms.setTypeid(hf.getTypeid()); forms.setUserID(hf.getUserID()); formsDao.updateForms(forms); user=userDao.getUserById(userid); list=formsDao.getAllForms(page,pageSize,userid); totalPages=formsDao.getTotalPages(userid,pageSize); return"success"; }publicStringexecute()throwsException{ //判断登陆是否成功,查询出登陆的用户信息 user=userDao.getUser(username,password); System.out.println(user) //登陆成功 if(user!=null){ role=roleDao.getRoleById(user.getRoleID()); if(user.getRoleID()==1){//普通用户 list.add(user); page=1; totalPage=1; }elseif(user.getRoleID()==2){//管理员用户 list=userDao.getAllUser(page,pageSize); totalPage=userDao.getTotalPages(pageSize); } } if(user!=null){ return"success"; }else{ errorMsg=2; return"error"; } }5.4系统用户端基本功能的设计与实现5.4.1用户个人信息查询修改模块设计及实现1.目标为了使用户可以方便快捷的查出自己的相关信息,当自己信息变动可以修改信息并提交管理员审核;2.实现过程实现这个功能的类是UserAction。 核心代码 publicStringexecute()throwsSQLException Useru=newUser(); u.setUsername(un); //新用户,初始密码 u.setPassword("123456"); u.setName(name); u.setSex(sex); u.setAge(age); u.setTel(tel); u.setEmail(email); //初始状态为2,审核通过,角色为1,普通用户 u.setStatus(2); u.setRoleID(1); userDao.AdminAddUser(u); list=userDao.getAllUser(page,pageSize); user=userDao.getUser(username,password); System.out.println(user.toString()); totalPage=userDao.getTotalPages(pageSize); return"success"; }5.4.2报表录入模块设计及实现1.目标报表录入模块,使得员工可以按时将自己负责的模块提交到服务器上,同时我们将对录入报表时的录入信息存入数据库中。报表录入界面如下图5.4所示。图5.4报表录入界面2.实现过程实现这个功能的类是reportaction。 核心代码 /**文件上传*/ //基于file_catalog创建一个文件输入流 InputStreamis=newFileInputStream(file_catalog); //获得上传文件根目录StringPath=ServletActionContext.getServletContext().getRealPath("");//在该目录下新建一个文件夹Filefile=newFile(Path+"/"+longs); file.mkdir(); //获得上传文件目录 StringuploadPath=ServletActionContext.getServletContext().getRealPath("/"+longs); forms.setFile_catalog(uploadPath);//设置目标文件FiletoFile=newFile(uploadPath,this.getFile_catalogFileName());//创建一个输出流OutputStreamos=newFileOutputStream(toFile);//设置缓存byte[]buffer=newbyte[1024];intlength=0;//读取myFile文件输出到toFile文件中while((length=is.read(buffer))>0){os.write(buffer,0,length);}forms.setFile_catalog(uploadPath);//关闭输入流is.close();//关闭输出流os.close();formsDao.savaForms(forms); user=userDao.getUserById(userid); list=formsDao.getAllForms(page,pageSize,userID); totalPages=formsDao.getTotalPages(userID,pageSize); return"success"; }5.4.3报表查询,修改,下载模块及实现(1)目标用户可以对自己所上传到服务器的报表进行查询,如果发现问题可以进行修改,并下载。界面如下图5.5所示。图5.5界面(2)实现过程实现这个功能的主要类是reportaction。核心代码:publicStringexecute()throwsSQLException,IOException{ try{ Filefile=newFile(url); if(file.exists()){ File[]files=file.listFiles(); for(Filef:files){ StringtoUrl="C:"+File.separator; Filetofile=newFile(toUrl,f.getName()); OutputStreamos=newFileOutputStream(tofile); byte[]buffer=newbyte[10240]; os.write(buffer); s=1; downloadMsg=toUrl+File.separator+f.getName(); os.close(); } } }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } user=userDao.getUserById(userid); list=formsDao.getAllForms(page,pageSize,userid); totalPages=formsDao.getTotalPages(userid,pageSize); return"success"; }5.5系统管理端基本功能的设计与实现图5.6管理员登录界面(也就是系统首页)5.5.1用户信息管理模块设计及实现1.目标管理员可以查出所有用户(也就是员工)的信息并进行修改(不需要审核)。用户信息管理界面如下图5.7所示。图5.7用户信息管理界面2.实现过程实现这个功能的类是useraction。核心代码 publicStringexecute()throwsSQLException{ list=userDao.getAllUser(page,pageSize); user=userDao.getUserById(userid); totalPage=userDao.getTotalPages(pageSize); return"success"; }5.5.2审核模块设计及实现1.目标因为用户的权限问题所以用户所修改的地方需要管理员进行审核才可以入库。界面如下图5.8所示。图5.8订单信息管理界面2.实现过程实现这个功能的类是updateFormsAction,updateUserAction。

6.系统测试及软件分析6.1系统软件测试软件测试是发现软件和程序中错误和缺陷的一种手段,所以通过软件测试可以 确定程序中的错误是否得到根本性的解决。系统发的整体测试分为单元测试、集成测试、确认测试、系统测试。1.单元测试开始是单元测试,通常在编写源代码阶段进行。集中测试是对源代码实现的每一个程序单元进行测试,检查每个程序模块是否正确的实现了预定的功能。2.集成测试集成测试是在单元测试完成之后进行的,是把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。3.确认测试经过集成测试之后进行确认测试。确认测试是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。4.系统测试系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。6.2企业报表管理系统测试本节将对系统的主要模块进行测试,以确定系统的正确性。6.2.1登陆模块的测试测试过程是使用不同权限的用户的登陆系统,系统可以根据权限选择登陆到相应的系统,我用manager,登陆到管理员模块,用admin,登陆到用户模块。测试结果是可以分别登陆到这两个界面。6.2.2报表模块的测试1.用户报表模块测试;测试过程是使用admin登陆到用户模块,点击报表按钮,可以对报表进行查询,修改,以及录入,发现录入文件在服务器上可以查出。测试结果是可以达到预期的效果。2.管理员模块测试;测试过程是使用manager登陆到管理员模块,点击报表按钮,可以按照录入时间,录入类型进行查询,还可以对用户修改的报表进行审核,再数据库中查看到审核之后的报表状态改变了,测试结果是达到预期的效果。6.2.3信息模块的测试1用户信息模块测试;测试过程是,登陆到用户模块,点击个人信息,对个人信息进行查询修改,测试结果是,查询修改功能均能实现。2管理员信息模块测试;测试过程是,登陆到管理员模块,点击员工信息,对所有员工信息进行查询,也可以对员工信息进行修改6.2.4权限模块测试过程是,用manager登陆到管理员模块,点击权限管理,可以增加用户,可以进入用户模块,可以审核用户修改的个人信息,在数据库中查询审核通过的个人资料,发现个人信息修改成功。7结论企业报表管理系统是一个基于Struts2、Spring与Hibernate的系统。在构思上,本系统符合在毕业设计的基本功能和设计要求。在技术上,使用Struts2+Spring+Hibernate技术。该系统使人们的生活、工作、沟通更方便,从而达到提高日常工作效率的要求。本论文主要解决了以下几个问题:(1)通过对本系统的设计,深入地研究了Struts2+Spring+Hibernate框架技术,增进了我对大学四年所学知识的深入理解与运用。(2)通过对当今各方面情况的综合分析,确定了该系统的实现在技术上和经济上都是可行的。(3)通过对企业报表管理系统需求的分析,确定了企业报表管理系统的体系结构和功能模块,提出了系统的解决方案。该系统的优点:本系统是一个使用方便、界面简洁、操作容易的系统,该系统具有良好的输入、浏览、更新及查询功能。基于B/S架构而开发的本系统对于系统的便捷性,安全性,全面性,有一定的提高,能使企业报表管理系统能够正常安全的运行。在设计中,我利用MySQL数据库及文件的上传技术解决了报表上传和存储的问题。在数据库的设计中有效运用第三范式对数据库进行关系模型的建立和逻辑结构的构建。当然该系统也存在一定的缺陷,要真正运用于实际,还是要进行一些改进的。本系统在进行系统分析和设计时,由于受时间、技术及复杂度的限制,功能实现上比较简单,灵活性、实用性不高。另外,由于时间的限制,有些预想的功能并未能实现,如没有实现报表的自动生成。通过对企业报表管理系统的整体设计与开发,使我在数据库设计、数据库使用、系统功能分析、编写代码等多方面有了很高的提高。附录1.spring的配置信息<!--开启注解扫描--> <context:component-scanbase-package="com.report"></context:component-scan> <beanid="dataSource" class="mons.dbcp.BasicDataSource"> <propertyname="driverClassName" value="com.mysql.jdbc.Driver"> </property> <propertyname="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&characterSetResults=UTF-8&profileSQL=true"> </property> <propertyname="username"value="root"></property> <propertyname="password"value="123456"></property> </bean> <beanid="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <propertyname="dataSource"> <refbean="dataSource"/> </property> <propertyname="hibernateProperties"> <props> <propkey="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <propkey="hibernate.show_sql">true</prop> </props> </property> <propertyname="mappingResources"> <list> <value>com/report/pojo/User.hbm.xml</value> <value>com/report/pojo/Role.hbm.xml</value> <value>com/report/pojo/Forms.hbm.xml</value> <value>com/report/pojo/HForms.hbm.xml</value> </list> </property></bean></beans>注:以上就是spring的配置文件的主要内容,当项目启动的时候,开始扫描注入spring中的各种信息,这些信息有,数据库信息,hibernate的配置信息。2.struts的部分配置信息<struts> <constantname="charset"value="utf-8"></constant> <constantname="struts.i18n.encoding"value="utf-8"/> <includefile="struts-report.xml"></include> <packagename="login"namespace="/tologin"extends="struts-default"> <!--跳转到登陆页面--> <actionname="login"class="com.report.action.loginAction.ToLoginAction"method="execute"> <resultname="success"> /WEB-INF/login/login.jsp </result> </action> <!--根据用户名判断跳转到用户或者管理员页面--> <actionname="toReport"class="com.report.action.loginAction.LoginAction"method="execute"> <resultname="success"> /WEB-INF/user/adminUser.jsp </result> <resultname="error"> /WEB-INF/login/login.jsp <actionname="getAllUser"class="com.report.action.userAction.getAllUser"method="execute"> <resultname="success"> /WEB-INF/user/adminUser.jsp </result> </action> <!--管理员修改员工信息--> <actionname="updateAdminUser"class="com.report.action.userAction.updateUser"method="execute"> <resultname="success"> /WEB-INF/user/Updateuser.jsp </result> </action>以上是strtus的配置信息作用是:使得整个系统在处理页面请求的时候更加高效,也更加灵活。参考文献苗雪兰,刘瑞新,宋会群编著.《数据库技术及应用》[M].机械工业出版社.2005.56-98.崔巍编著.《数据库系统及应用》[M].高等教育出版社.2003.46-65.曾长军主编《SQLServer数据库原理及应用》[M].人民邮电出版社.2005.72-93.邓子云,张赐编著.《JSP网络编程从基础到实践》[M].电子工业出版社.2005.35-57.戴志诚,赵国峰编著.《JSP信息化系统建设案例》[M].人民邮电出版社.2006.53-75.ToddCook著.《JSP从入门到精通》[M].电子工业出版社.2003.25-50.李巍编著.《JSP编程入门与应用实例》[M].清华大学出版社.2001.42-52.陈松乔,任胜兵,王国军编著.《现代软件工程》[M].清华大学出版社2004.62-80.[9]谢希德.创造学习的思路[N].人民日报,1998-05-07(4).[10]达尔文.Java经典案例(第二版).北京:中国电力出版社,2008.62-82.[11]曾顺.精通JavaScrip+JQuery.北京:人民邮电出版社,2008.29-62[12]陆正式,张立志.Java项目开发实践.北京:中国铁道出版社,2005.48-56.[13]埃克尔.Java编程思想.北京:机械工业出版社,1999.48-67.[14]吴建,张旭东.JSP网络开发入门与实践.人民邮电出版社,2006.56-84.[15]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2001.47-56.[16]罗国庆,陈良萍.网站建设案例精粹.电子工业出版社,2004.78-85.[17]孙卫琴,李洪成.Tomcat与JavaWeb开发技术详解.电子工业出版社,2004.9-26.[18]连洪.EclipseWeb开发从入门到精通.清华大学出版社,2007.19-41.[19]石志国.JSP网络开发详解.电子工业出版社,2007.31-47.

致谢毕业设计带我来到了大学学习生涯的终点,一个崭新的明天在向我招手。我希望毕业设计能为我的大学生涯划上一个完美的句号。我想感谢的人很多,刚拿到这个课题时,觉得这个课题太难了。但是在今天回过去看看,却十分的欣慰,因为被我挺过来了。经过这次设计,提高了我很多的能力,比如实验水平、分析问题的能力等,在这大学学习期间,有很多实践的机会,但都是几个人一组,不能很好的检验我们自己。本次毕业设计正好给我们提供了这样一个好机会,来检验我们自己的能力。在这期间凝结了很多人的心血,在此表示衷心的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢老师对我的悉心指导,在设计期间老师帮助我理清设计思路,指导实验方法,提出有效的改进方案,及指导我如何操作。导师渊博的知识、严谨的学风、诲人不倦的态度和学术上精益求精的精神使我受益终生,更是让我懂得了如何对待以后的工作和学习。现在我对软件的结构及软件的设计的了解都有很大程度的提高。实现了理论知识与实际应用的结合,使我受益非浅。其次,要感谢母校所有老师与同学四年来对我的关心与支持,感谢各位老师在学习期间对我的严格要求。同时也要感谢身边同学的热心帮助。再次,我要向我的父母致以最崇高的敬意,没有你们无私的支持,就没有我今天的成绩,正是他们始终如一的支持使我能够安心学习。最后,向帮助过我的老师和同学致以崇高的谢意,对审阅此论文的老师表示致谢,恳请提出批评和指正。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研

温馨提示

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

评论

0/150

提交评论