客户资源管理系统(论文)_第1页
客户资源管理系统(论文)_第2页
客户资源管理系统(论文)_第3页
客户资源管理系统(论文)_第4页
客户资源管理系统(论文)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

客户资源管理系统(论文)III英文摘要……………………Ⅱ目录……………………Ⅲ引言………………………11系统分析……………………21。1需求分析………………21。1。1系统实现功能……………………21.1.2工能模块分析……………………21.2可行性分析……………31。2.11。2。1。2.1。2.4操作可行性………………………32系统设计…………………42。1设计思想………………42。2设计目标………………42。3系统结构设计…………52。4开发及运行环境设计…………………62。4.1硬件平台…………62.4.2软件平台…………62.5数据库设计……………63详细设计…………………103.1详细设计概要………………………103.2系统整体界面设计…………………103。3系统框架设计………………………123.4系统模块详细设计…………………163。4。13。4。 3。4.2 3。4.23。4.23.4.3 3。4. 3。4.3.4.3。4。43。4. 3.4。3。4.3.4.53.4。 3.4。3.4.4系统使用说明……………234.1系统运行环境………………………234.1.1系统安装指南………………………234.3系统发布……………234。4系统帮助……………25结语……………………28参考文献……………………29附录……………………30后记……………………35客户资源管理系统第36页共40页客户资源管理系统第35页共40页引言客户资源管理(CustomerResourceManagement简称CRM)简单的说就是对客户的一些资料进行有效的管理,以前我们是人工来管理客户的信息,但如今已是信息化时代,我们需要通过计算机技术来对其进行高效的管理才能有利于一个企业更好的发展。客户管理系统是一个智能化的信息处理系统,它将企业的经营、管理以客户为中心,通过系统管理员就可以轻松有效的对客户的信息进行操作管理。如今的信息技术飞跃发展,各个公司、企业都在不断的提高自己的信息化管理水平,他们也都认识到,高效的信息化管理对公司、企业的不断发展起到决定性的作用,也特别是对于所经营的客户群的信息管理显得尤为重要。由此,如今的绝大多数公司、企业都抛弃了以往的人工管理方式,转而使用高效的信息化管理方式.正是在于此背景之下,客户资源管理系统必然的诞生了,它也成为了各个公司、企业的必然选择。如今的客户资源管理系统可以说的层出不穷,不同规模和性质的公司、企业根据其具体情况而选择不同的客户资源管理系统来对其客户信息进行高效的管理,但是不管它怎么变,它的核心还是一样的,都是对客户的信息进行管理和维护。由此我们可知,客户资源管理系统的市场潜力是非常之大的,而对于此系统的开发,可以使用不同的开发语言如C++、VB、Java等,而开发出来的系统表现形式主要为Web网站形式和桌面窗口软件形式。为了实现本系统,我以Web网站开发形式和面向对象的Java编程语言为基础,通过Java集成开发工具MyEclipse6.0来整合当前最为流行的SSH框架(Struts、Hibernate和String三个开源框架的整合框架)以及较为轻量级的Ajax框架Jquery进行有效的开发。数据库用MySQL5。0来开发实现,在系统开发过程中以面向对象的思想来对数据库进行操作和管理。整个系统,界面虽然简洁,但各个功能基本都很好的得以实现,操作上显得很容易。

1系统分析1.1需求分析1.1.1系统实现功能通过调查分析研究,本系统主要实现以下功能:1.不同的员工类型,具有不同的职权来对系统进行相关的操作;不同的客户信息具有不同的级别。并对其进行分组管理.2.系统的客户管理,销售管理,合同管理功能齐全。3.实现客户的关系维护功能,合作关系的加深或决裂。4.根据本公司的业务需求,添加自定义数据内容.5.系统要有审批的工作流设置。6.新建产品的一些基本信息资料,即产品信息管理。1.1.2功能模块分析1、系统管理系统管理模块主要是用来实现对整个系统的一些设置和管理,其中又分为了几个小的模块,即员工管理、权限管理和部门管理三个小模块.员工管理也就是对系统的用户进行管理,它记录了系统用户的信息,包括用户名、密码等,在这个模块中可以对系统用户信息进行查询、修改、删除以及添加新的用户操作;权限管理是用来设计系统用户的权限,对不同的用户分配不同的权限;部门管理则是用来对企业的部门进行有效管理,可以对部门进行增、删、改、查操作.2、客户管理客户管理模块是整个系统的重点,该模块主要用于对客户信息进行管理并将客户信息作为连接其余系统模块的主线.此模块下设置了客户信息管理和级别管理两个小模块。客户信息管理模块的主要功能就是将企业掌握的客户信息进行详细的管理,并可以方便的对客户信息进行添加、修改以及查询和删除操作;级别管理模块则是用来设置不同的客户具有不同的级别,也可对其进行增、删、改、查操作。3、产品管理该模块主要是为了对公司的产品进行一个有效的管理,在此模块下又分为了产品信息管理和类别管理两个小模块。产品信息管理是对公司产品进行详细管理,根据公司的具体情况,可以新建产品,并对产品进行修改、查询和删除操作;类别管理则是用来设置公司经营的产品类别,当公司经营范围扩大,增加了新类型在产品时,我们就可在系统中增设新的产品类别等.4、合同管理此模块是用来管理公司与客户之间或者公司与供应商之间签订的有效合同。5、销售管理销售管理模块是为了对公司产品的销售情况做一个详细的管理,公司可以根据此模块来查询其产品在市场中的销售量等信息,公司以此来做出经营抉择。6、流程管理该模块用于对公司的业务对象进行审批的工作流设置。1.2可行性分析1.2.1可行性分析目的进行可行性分析是为了用最小的代价在尽可能很短的时间里,来确定我们所面对的问题是否可以解决,其目的不是为了来解决问题,而是为了来确定问题是不是可以被我们解决,从而为以后的工作起一个决定性的作用。在可行性分析阶段我们要搞清问题的定义,能清楚的列举出目标系统存在的一些约束和限制,从而对技术可行性以及经济可行性和操作可行性三个方面进行分析研究。1.2.2技术可行性进行本系统的开发需要用到的知识技术有:1、Java程序开发语言以及Jsp和Servlet开发技术。2、HTML网页制作知识和Dreamweaver软件工具的使用。3、Struts框架技术、Hibernate框架技术和Spring框架技术,并能使用Java集成开发工具MyEclipse对这三个框架进行整合开发。5、MySQL数据库开发知识.6、Web开发知识,并能使用Tomcat服务器进行开发。以上的这些知识技术是开发本系统所需要用到的,而我现在已经较好的把这些知识点和技术掌握了,在指导老师的精心指导之下我可以对该系统进行开发了。1.2.3经济可行性经济可行性研究的是对开发软件的成本估算和成本效益分析,以确定待开发软件是否有开发的价值。对于本系统的开发,能帮助公司对客户的信息管提高工作效率,并且能非常方便的对其进行一系列的管理和维护,是以前的手工管理不能做到的。而且如今的信息化管理显得尤为重要,公司要想更好的发展就得花费一定的资金来购买此系统产品,而开发此系统并不需要投入多大的人力和物力,只需掌握相关的知识和技术就能很快的得以实现,因此在经济上是可行的.1.2.4操作可行性本系统乃是一个人机交互式的网站系统,系统的界面简洁友好,不需要深入的对其进行研究,很容易让人操作。系统用户只需登陆到系统中,根据自己的权限和公司的具体要求就可对系统的一些相应信息进行操作了,如果在系统操作过程中实在还存在某些不解,可查找系统帮助信息进行理解。

2系统设计2.1设计思想其实一个系统的总体设计一般都是由两个阶段组成:系统设计,用来确定系统的具体实施方案;结构设计,用来确定系统软件的具体结构。系统设计是从系统的总体目标出发,根据我们在需求分析阶段对系统逻辑功能的要求来考虑系统所要用到的技术以及经济开销和系统的运行环境等方面的条件,确定系统的总体设计方案,从而确保系统的总体目标的实现。本系统的结构图采用的是数据流程图映射方法,该方法结合数据流程图以及其各级的细化图,按照自顶向下的原则依次将数据流程图中的那些逻辑处理映射到结构图中去,从而成为一个个的模块.此方法简单、方便,它使数据流程图与结构图建立起了对应统一的关系,使设计达到一致的效果。系统分为多个模块,各个模块之间没有过多的相互作用,每个模块完成一个相应的子功能,从而实现模块的独立化。由于模块的独立程度又由内聚和耦合两个标准来进行衡量,因此要做到模块的独立化就得尽量使模块的划分做到高内聚和低耦合。耦合是对一个软件结构内不同模块之间互连程度的度量.耦合强弱取决于模块之间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据,在软件设计中应该追求尽可能低耦合的系统。由此可知影响软件复杂程度的一个重要因素就是耦合,所以我们在开发系统时应该采取以下的设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。2.2设计目标系统的总体设计目标就是为了建立一个统一的信息管理平台,以公司经营的客户群为中心来对客户的详细信息进行有效的管理,加强同客户的交流和感情的建立,从而提高客户对公司的满意程度,也为公司的不断发展起到推动性的作用。其实本系统要实现的一系列操作都是在对数据进行操作,也主要就是对数据进行增加、修改、查询和删除四项操作。那么对数据如何去实现有效的管理,则需要对其进行认真的分析和设计。通过对本系统的分析后,本系统需要达到的主要设计目标有:1、首先我们应该确定,系统的最终效果要达到一个友好的人机交互模式,系统界面简洁友好,信息的查询要灵活、方便、快捷和准确。2、系统的管理员对系统的不同用户要分配不同的权限。3、系统用户可随时修改自己的口令。4、对系统用户的输入数据要作严格的验证,尽可能排除可能出现的错误。5、系统各个模块的增、删、改、查要设计得当.6、系统要有相应的帮助信息,以便用户在操作过程中查看。7、系统运行要稳定,而且也要安全可靠。2.3系统结构设计结构化设计方法就是把数据流图表示的逻辑模型用结构图层次的方式表现出来。结构化设计的核心其实就是把模块分解设计,采用自顶向下、逐层分解的方法,从而把整个系统划分成多个子模块,使其完成不同的功能,这样也就使得模块具有了一定的独立性,最终降低了系统的复杂性.本系统的功能结构如图2—1所示:客户资源管理系统客户资源管理系统系统管理客户管理产品管理销售管理流程管理合同管理部门管理权限管理客户信息管理级别管理产品信息管理类别管理添加新用户查询用户信息添加新的部门查看部门信息添加权限查看权限增加新客户查找客户信息添加客户级别查看客户级别添加产品信息查找产品信息员工管理添加新类别查看类别信息销售信息查看添加销售信息订单信息查询公文维护添加公文合同查询添加合同订单信息修改销售信息管理订单管理工作流管理公文管理流程维护图2—1:功能结构图2.4开发及运行环境设计2.4.1硬件平台1、CPU:CPU233MHZ以上;2、内存:256MB以上;3、硬盘:40G以上;4、显示器:17英寸。2.4.2软件平台1、操作系统:WindowsXP;2、数据库:MySQLServer5.0;3、数据库第三方管理软件:Navicat8。0LiteforMySQL;4、Java开发工具包:JDKVersion1.65、Web服务器:Tomcat6。0;6、Java开发集成工具:MyEclipse6。5;7、可视化网页编辑工具:Dreamweaver8;8、浏览器:IE6.0;9、分辨率:最佳效果为1024×768。2.5数据库设计在系统设计时,我们应该考虑如何用数据模型来描述数据的结构和语义,用以实现对现实世界的抽象。在目前广泛使用的数据库模型分为两种类型,一种是独立于计算机系统的“概念数据模型”(如“实体联系模型”);另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中我所采用的是“实体联系模型"(E—R模型)来描述数据库的结构和语义,实现对现实世界的抽象。本系统使用的数据库是MySQL数据库,系统数据库名称为crm,数据库crm中所包含的数据表如下所示:(1)client_info(客户信息表)客户信息表主要用来保存公司经营的客户资料信息。表client_info的结构如表2-1所示:字段名数据类型长度是否主键描述client_idint5是主键rade_idint5否外键dept_idint5否外键namevarchar15否客户姓名sexvarchar4否客户性别emailvarchar30否客户邮箱gradvarchar15否客户级别telephonevarchar15否客户电话addressvarchar200否客户地址postcodeint10否客户邮编remarkvarchar200否客户备注表2-1:表client_info的结构(2)system_user(系统用户信息表)系统用户信息表用来存储整个系统用户的信息,在本系统中系统用户信息其实就是公司的员工信息。表system_user的结构如表2—2所示:字段名数据类型长度是否主键描述user_idInt5是主键userNamevarchar15否用户账号trueNamevarchar15否真实姓名sexvarchar4否性别ageInt3否年龄passwordvarchar15否密码idCardvarchar20否身份证telephonevarchar15否电话deptInt5否外键limitsInt5否外键表2—2:表system_user的结构(3)product_info(产品信息表)产品信息表是用来存储公司经营的产品的基本信息。表product_info的结构如表2-3所示:字段名数据类型长度是否主键描述prod_idint5是主键type_idint5否外键prod__namevarchar50否产品名称Prod_typevarchar10否产品类别Pricedouble10否产品单价buyPricedouble10否购买价rebateint11否折扣Sale_pricedouble10否销售价getTimevarchar15否上架时间prodImagevarchar50否产品图片synopsisvarchar1000否产品概述remarkvarchar1000否备注Sale_numberInt11否销售量First_stockint11否原库存now_stockInt11否现库存表2-3:表product_info的结构(4)product_type(产品类别表)产品类别表用来存储产品的类别信息.表product_type的结构如表2—4所示:字段名数据类型长度是否主键描述type_idint5是主键type_namevarchar20否类别名称type_gradevarchar10否类别级别表2-4:表product_type的结构(5)dept_info(部门信息表)部门信息表是用来存储公司部门信息的.表dept_info的结构如表2-5所示:字段名数据类型长度是否主键描述dept_idint5是主键deptnamevarchar15否部门名称表2-5:表dept_info的结构(6)client_grad(客户级别表)客户级别表用来存储客户的级别信息.表client_grad的结构如表2—6所示:字段名数据类型长度是否主键描述rade_idint5是主键rade_namevarchar15否级别名称表2-6:表client_grad的结构(7)user_role(权限表)权限表是用来存储权限的相关信息。表limit的结构如表2-7所示:字段名数据类型长度是否主键描述limit_idint5是主键Limit_namevarchar15否权限名称表2—7:表user_role的结构contract(合同表)合同表是用来存储合同信息的数据表。表contract的结构如图2—8所示:字段名数据类型长度是否主键描述idint5是主键cont_namevarchar20否合同名称client_namevarchar20否客户名称Ctypevarchar20否合同类别write_timedate15否签约时间begin_timedate15否生效时间over_timedate15否失效时间productvarchar50否产品名称表2-8:表contract的结构sell_info(销售表)销售信息表示用来存储销售的信息表.表sell_info的结构如表2—9所示:字段名数据类型长度是否主键描述idint5是主键Sellman_idint5否外键Type_idInt5否外键productvarchar50否销售产品sellnumint10否销售数量sell_timedate15否销售时间all_sell_moneydouble15否销售总额perpricedouble15否产品单价表2—9:表sell_info的结构

3详细设计3.1详细设计概要详细设计的目的是为了确定应该怎样具体地实现符合要求的系统,在这个阶段的设计中我们应该对所要开发的系统有一个更加详细的描述,以方便在编码的过程中能把它直接翻译成程序语言书写的程序。3。2系统整体界面设计经过需求分析和系统设计之后,我们就可以对系统的界面进行详细的设计。首先我们应该设计好系统界面布局的整体框架,不错,要想进入本客户资源管理系统,前提条件你必须是该系统的用户,进入系统前必须经过系统用户登陆界面进行验证之后才可进入,进入系统后就可以看到系统的整体框架了.系统登陆界面和进入系统后的显示界面分别如图3—1和图3—2所示:图3—1:系统登录界面图3-2:系统主界面登陆进系统后可清晰的看到,整个系统界面由框架分为了三个部分,其功能说明如表3—1所示:区域名称说明对应文件1系统头部主要起一个辅助和显示美化的作用headnav。jsp2导航显示主要用于显示导航模块中的功能navbar.jsp3内容显示主要用于显示系统各功能模块中的内容main。html表3-1:系统首页界面说明整个网站的布局使用到的是HTML中的一个框架,框架内容分别由headnav、navbarh和main这3个jsp页面组成,最后再由HTML代码在index.jsp页面中组合起来.框架代码如下:/**********index。jsp********************/<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1。0Transitional//EN”"http:///TR/xhtml1/DTD/xhtml1—transitional。dtd”>〈htmlxmlns=”/1999/xhtml”〉〈head><metahttp-equiv="Content—Type"content=”text/html;charset=gb2312”/〉〈title〉客户资源管理系统首页〈/title〉</head><framesetrows="130,*"framespacing=”0"frameborder=”no"〉 〈framesrc=”headnav.jsp"noresize=”noresize"/〉 <framesetrows=”*”cols="193,*”framespacing="2"frameborder=”yes"border=”2”〉 <framesrc=”navbar。jsp”name=”menu”id="menu”noresize="noresize"/〉 <framesrc=”main.html”name="main”id=”main"noresize=”noresize”/> 〈/frameset〉 </frameset〉〈noframes〉〈/noframes〉〈/html>3.3系统框架设计由于本系统是在Java语言的基础上使用SSH框架技术来进行的开发,在开发本系统编码之前,首先我们要在MyEclipse集成开发工具中整合好Struts、Hibernate和Spring这三个框架,并对其相应的环境和配置进行设置。同时我们也要把网站中可能使用到的文件夹创建出来,放到整个系统的相应路径之下,这样可以方便以后的开发工作,规范网站的整体架构。本系统在MyEclipse中开发的项目名称为:LqmCrm,在MyEclipse中的系统项目结构如图3—3所示:图3—3:系统项目结构各包和文件夹的使用功能说明如下:1、在src路径下存放的是系统开发的所有程序代码。com。Genius。base:存放基础公共类(如过滤器等);com。Genius.dao:定义dao接口;com.Genius.daoImpl:dao的实现类;com。Genius。manager:业务类接口;com.Genius.managerImpl:manager的实现类;com。Genius。po:数据库表的映射类;com.Genius。action:存业务逻辑类;com.Genius。form:存放系统交互式页面对应的Javabean对象。2、在WebRoot路径下中存放的是系统开发的整个界面文件及配置文件等。css文件夹:存放页面的css样式文件;images文件夹:存放系统需要用到的所有图片文件;js文件夹:存放javaScript脚本;jsp文件夹:存放系统的所有jsp页面.系统中还有四个极为核心的配置文件,它们分别是:hibernate。cfg.xml:hibernate配置文件,里面配置了连接数据库的一些信息(如数据库名、用户名、密码、数据库url等);applicationContext-action.xml:实现action的跳转配置文件;applicationContext—beans。xml:管理所有业务类的配置文件;applicationContext—common.xml:事务管理配置文件。其中后面三个配置文件存放在WEB-INF目录下,这三个配置文件的使用使开发的过程变得非常的有逻辑性,使表现层、事务层和实现层更加的分明,我们只需在配置文件中对其进行配置设置,然后在需要用到某类的对象时,再通过配置文件对它进行注入即可,这样很大的降低了各个类之间的耦合度。以上四个配置文件的代码如下:〈!-—-————hibernate.cfg。xml配置文件-—————-———-—->〈?xmlversion=’1.0'encoding='UTF—8’?〉<!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN”"/hibernate—configuration—3。0。dtd"〉〈!-—GeneratedbyMyEclipseHibernateTools.——〉<hibernate—configuration>〈session-factory〉 <propertyname=”connection。username”>root</property> 〈propertyname="connection.url">jdbc:mysql://localhost:3306/crm 〈/property> 〈propertyname="dialect”〉org.hibernate。dialect.MySQLDialect </property> <propertyname="file">liqimao</property> <propertyname=”connection。password">Genius〈/property> <propertyname=”connection.driver_class">com。mysql。jdbc。Driver 〈/property〉 <propertyname="show_sql">true</property〉 〈propertyname="connection.autocommit">true〈/property> <mappingresource="com/Genius/po/Systemuser.hbm。xml"/〉 <mappingresource=”com/Genius/po/Deptmessage.hbm.xml"/〉 <mappingresource="com/Genius/po/Limit.hbm.xml"/〉 </session-factory>〈/hibernate—configuration>〈!——-applicationContext—common.xml配置文件中的主要配置--———-—-—-—>〈beans.。。。。。><beanid=”loginDaoImpl”class=”com.Genius.daoImpl.LoginDaoImpl”> <propertyname="sessionFactory"> <refbean=”sessionFactory"/〉 〈/property></bean〉〈beanid="loginManagerImpl"class=”com。Genius。managerImpl.LoginManagerImpl"> <propertyname=”loginDaoImpl"> <refbean="loginDaoImpl”/〉 〈/property〉</bean〉 <beanid=”userDI"class="com.Genius.daoImpl。UserDaoImpl"> <propertyname=”sessionFactory"〉 <refbean=”sessionFactory"/> 〈/property〉 </bean> 〈beanid="userMI”class="com.Genius.managerImpl。UserManagerImpl”> <propertyname="userDaoImpl"〉 〈refbean="userDI”/〉 〈/property> </bean〉〈/beans〉<!--—-—applicationContext—action。xml配置文件中的主要配置-—--—--—--><beans><beanname="/login”class=”com.Genius.struts.action.LoginAction"〉 <propertyname=”loginManagerImpl"> 〈refbean="loginManagerImpl"/> </property〉 〈propertyname="userManagerImpl”> <refbean=”userMI”/〉 </property〉〈/bean〉<beanname=”/client”class=”com。Genius.struts。action。ClientAction"> 〈propertyname=”clientMImpl"> <refbean="clientMI"/〉 〈/property></bean><beanname="/products"class=”com。Genius。struts.action.ProductsAction”〉 〈propertyname=”productsManagerImpl"〉 <refbean="productsMI”/〉 〈/property></bean>〈beanname="/contract"class="com.Genius.struts。action。ContractAction”〉 <propertyname=”contractManagerImp"〉 <refbean=”contractMI"/> </property〉〈/bean〉</beans>〈!——-—applicationContext—beans。xml配置文件-—-—————————————-—>〈beans。.。..。〉〈beanid=”loginDaoImpl”class="com。Genius。daoImpl。LoginDaoImpl”> 〈propertyname="sessionFactory"〉 〈refbean=”sessionFactory”/> </property>〈/bean>〈beanid=”loginManagerImpl”class=”com。Genius。managerImpl。LoginManagerImpl”〉 〈propertyname=”loginDaoImpl"〉 〈refbean=”loginDaoImpl"/〉 </property〉〈/bean> 〈beanid="userDI”class="com。Genius.daoImpl.UserDaoImpl"〉 <propertyname=”sessionFactory"> <refbean="sessionFactory”/> </property> 〈/bean〉 <beanid="userMI”class=”com.Genius。managerImpl.UserManagerImpl"> <propertyname="userDaoImpl"> <refbean="userDI”/> </property> 〈/bean〉 <beanid="clientDI"class="com.Genius。daoImpl.ClientDaoImpl”> <propertyname="sessionFactory"> 〈refbean=”sessionFactory”/〉 〈/property> 〈/bean〉 〈beanid="clientMI"class=”com。Genius。managerImpl。ClientManagerImpl”> 〈propertyname=”clientDaoImpl”> 〈refbean=”clientDI"/〉 〈/property> </bean〉 <beanid=”productsDI”class=”com。Genius。daoImpl。ProductsDaoImpl"〉 〈propertyname="sessionFactory”〉 〈refbean="sessionFactory"/> 〈/property> 〈/bean> <beanid="productsMI"class="com.Genius.managerImpl。ProductsManagerImpl”〉 〈propertyname=”productsDaoImpl”> <refbean=”productsDI”/> </property> </bean> 〈beanid=”contractDI"class="com。Genius。daoImpl。ContractDaoImpl”〉 〈propertyname=”sessionFactory”〉 〈refbean="sessionFactory”/> 〈/property〉 </bean> <beanid="contractMI"class="com。Genius。managerImpl。ContractManagerImpl"〉 〈propertyname=”contractDaoImp”〉 〈refbean=”contractDI"/> 〈/property> </bean></beans>3。4系统模块详细设计3.4.1系统模块详细设计概要 由前面的系统分析和系统设计我们已知,本系统是围绕以客户为中心来对信息进行有效的管理,而所有的这些管理操作其实都是在对相应的数据进行操作,基本上实现的也就是对数据的增加、查询、修改和删除这四项操作。所以在此所谓的系统模块详细设计就是指的对这四项功能模块实现的设计.因为系统的每个模块几乎都要进行反复的增、删、改、查操作,所以设计好这四项操作功能模块就显得尤为重要了。3.4.2录入模块详细设计3。4.2.1录入模块功能录入模块的功能主要就是对一系列基本信息的录入,如要添加客户、系统用户或产品时就要把其相关信息录入到系统中.在设计录入操作时,我们要求数据能够正确的保存到数据库中,因此就要对录入的数据进行有效验证,在此分为两个步骤:首先在页面由JS脚本程序对数据进行验证;若页面验证通过则再到数据库中进行一次验证,看录入信息是否与数据库中的信息发生冲突,若没有冲突则可正确的录入.3.4.2。2录入模块流程开始开始输入数据内容输入是否有效保存输入内容结束错误提示3。4。2。3录入模块界面设计进入系统后,根据具体的需要,在左边的功能模块导航栏中,用鼠标单击相关的超级链接就可在内容显示区中显示出相关的页面。如我要增加一个员工(也就是系统用户),单击左边的“创建用户”超链接就会在内容区弹出创建新的系统用户页面,如图3-3所示,填写完用户信息后单击“提交”按钮,通过验证若信息无误后就可以把所填写的信息保存到数据库中。图3—3:信息录入界面3.4.3查询模块详细设计3。4。3。1查询模块功能查询模块的功能主要就是对保存在数据库中的相关信息进行查找,然后把查找出来的信息通过页面显示出来供用户查看和维护。3.4.3。2查询模块流程开始开始输入查询内容点击查询按钮查询是否成功显示查询内容结束未成功提示3.4。3.3查询模块界面设计通过链接刚进入查询界面时,界面显示的是所有系统用户的信息(考虑到用户较多,用到了分页显示)。根据具体需要可在“输入你要查询的用户名:”表单中输入所要查找的用户的用户名,然后单击表单后的“搜索”按钮,通过数据库查询后,若存在我们输入的数据内容则将显示出查询的结果(如图3-4所示)。在图3-4中还可以看到,我们可以选择不同的排列方式来显示系统用户的信息,如单击下拉列表框选择“年龄”则所有的数据会按照年龄的大小来排列.在每个用户信息行的末尾有一个操作的字段,里面包括了“修改”、“删除”和“修改密码”这三个操作,单击“修改”链接则会跳转到一个修改界面对本行显示的用户的信息进行修改;单击“删除"链接则会把该行用户的信息从数据库中删除掉,此操作需谨慎考虑;“修改密码”链接则是用户对自己的账户密码进行修改(如图3—5所示)。图3—4:系统用户信息查询界面图3-5:密码修改界面3.4.4修改模块详细设计3。4.4。1修改模块功能修改模块就是当某些信息发生变化时,我们就要对其保存在数据库中的信息进行相应的修改,从而保证数据的时效性。其实修改模块的设计是在录入模块的基础上进行了一些改动,也就是当你查找出某条信息时想对其进行修改,单击其对应的一个“修改"链接,就会跳转到一个修改界面,此时也就相当于对数据再次进行一次录入了。3。4.4。2修改模块流程开始开始输入修改内容输入是否有效保存修改内容结束错误提示点击“修改”链接进入修改界面3。4。4.3修改模块界面设计在图3-4中我们单击所显示的一行用户信息的操作字段下的“修改”链接,跳转到一个和录入信息基本相同的修改界面(如图3—6所示),其中需要说明的是,用户名自从你创建成功之后就不能修改了,在表单处可根据需要进行相应的修改,修改完后单击“提交"按钮通过验证即可生效。图3-6:系统用户信息修改界面3.4.5删除模块详细设计3.4.5。1删除模块功能删除模块的功能就是对系统中无效的信息从数据库中给删除掉.该功能模块较为简单,并不需要过多的设计.我们只需在相关信息栏的操作字段下单击“删除"链接,然后弹出一个确认框,单击“确定”按钮则会从数据库中删除该条数据信息,单击“取消"按钮则会返回原界面.3。4。5。2删除模块流程开始开始单击“删除”链接确定是否删除删除该信息结束取消删除3。4。5。3删除模块界面设计 如图3-4,在显示的用户信息栏操作字段下单击“删除”链接,就会弹出一个确认框,如图3-7所示,若选择“确定"按钮后则会成功删除该条数据信息。注意:在进行“删除"操作时一定要考虑清楚。图3—7:信息删除确认

4系统使用说明4。1系统运行环境4.1.1服务器配置CPU速度:P42.0GHZ以上;内在:建议512及其以上;操作系统:建议Windows2003;数据库:MySQLServer5.0;Java工具包:JDKVersion1。6Web服务器:Tomcat6。0;4.1.2客户端配置CPU速度:P41.4GHZ以上;内存:256MB以上;操作系统:Windows2000、WindowsXP以上中的一种;浏览器:IE6.0;4。2系统安装指南1、安装JDK:下载jdk—1_6_0_04—windows—i586—p。exe,然后安装完毕之后,进行一下环境配置。如我安装的位置是:C:\ProgramFiles\Java\jdk1.6。0_04,然后单击我的电脑—>属性—〉高级—>环境变量,在系统变量Path中添加:C:\ProgramFiles\Java\jdk1.6.0_04\bin;再在用户变量中新建一个JAVA_HOME变量,值为:.;C:\ProgramFiles\Java\jdk1.62、下载MySQL数据库,根据提示进行安装,默认用户名为:root,设置密码为Genius.3、根据提示安装Tomcat6。0,选择端口时,默认的是8080,可以根据具体情况在Server.xml文件里的port项修改端口,如改为:8088或8888都可;用户名设置为:Genius,密码设置为:Genius。4、由于MySQL是在命令行下进行操作,不是非常方便,若不是非常熟练,可安装一个第三方的数据库管理工具来进行图形界面管理。如可以下载:navicat8lite_mysql_cs.exe,然后根据提示安装完毕即可.4.3系统发布1、完成上述安装后,把毕业设计项目发布到Web服务器Tomcat6.0中,本项目的名称为:GeniusCrm,把该项目从MyEclipse导出为geniusCrm。war文件,并拷贝到Tomcat6。0的webapps根目录下,即:C:\Tomcat6。0\webapps\.2把该项目数据库中所有表生成的SQL语句文件载入到MySQL中即可。3在C:\Tomcat6.0\bin双击startup。bat打开Tomcat服务器,成功之后打开浏览器输入地址即可。根据我的配置,在浏览器中输入的地址为:http://localhost:8080/LqmCrm/”http://localhost:8080/GeniusCrm/即可.4。4系统帮助系统用户进入系统后,若对于该系统简洁友好的界面操作上还有什么疑虑的话,可单击页“系统帮助”超级链接,然后进入“系统帮助中心"可有一些帮助信息供系统用户查看。如图4—4所示:图4-4:系统帮助界面本系统的所有帮助信息均设计在一个HTML页面中进行显示,用户可以根据实际需要通过锚链接来进行查找,如单击锚链接“部门管理”,则会跳转到本页的“部门管理”帮助信心说明处,如图4-5所示:图4-5:部门管理帮助信息说明结语通过自己的努力和在指导老师的全面指导下,该客户资源管理系统最终得以完成。系统充分的运用到了Java程序语言、MySQL数据库、HTML、CSS、JSP、JavaScript、Ajax等知识,并有效的使用了Struts+Hibernate+Spring三个框架技术来进行整合开发,使系统的层次性分明,各模块之间的耦合度降低。系统总共实现了六大功能模块,其分别是:系统管理、客户管理、合同管理、流程管理、销售管理和产品管理。所有的模块中基本都实现了增、删、改、查四项数据操作功能。系统整体界面给人一种清爽、简洁、友好的感觉,系统操作简单明了,若有疑惑还可查询系统帮助信息。由于系统设计到的方面较多,在技术上还有一定的难度,所以,系统的安全性做的不够好,也主要体现在系统管理模块下的权限管理子模块。但总的来说,用心的去完成此系统对我是一次极大的收获。在整个系统的开发过程中,它让我把以往的知识很好的回顾了一遍,同时也让我学到了一些新的知识和技术。在开发中让我感受颇深的那就是在调试程序的时候了,当我写完一个功能代码后,一调试结果不是报404错误就是报500错误,并且全是英文显示,着实让我头痛了一阵,特别是在有的时候一个小小的大意就会导致你找半天的错,最可恶的是程序出现了异常却根本不给你报任何错误,那你就得学会耐心去仔细的查找了。不过在我不断的学习总结,上网查找资料,这让我对系统的开发变得越来越熟悉,从而也使自己分析问题和解决问题的能力有了一定的提高。在这次毕业设计的系统开发过程中对我来说,确实是很幸苦的,因为你得学会自己去解决问题,去查找知识和技术,但是通过自己实实在在的去做完系统后,我的收获却是很大的。我从中学到了以下几点:学会自己去解决问题,寻求问题的答案,即自我学习能力和解决问题的能力;做事一定要仔细,不可粗枝大叶;做事之前一定要周密的思考,全面分析你要去面对的事情,不可走一步做一步;遇到问题时不可浮躁,要有耐心,从而最终解决问题;学习之后要善于对其进行总结分析,这样你才能真正的不断进步。总之,我人生中的这次难得的毕业设计对我来说是一次成功的体验,我可以说这是我大学四年之中收获最大的一次。但是我依然还有很多地方需要去不断的努力学习提高,我相信,只要坚持的努力下去,朝着自己的目标永不放弃,成功一定会青睐于我。

参考文献[1]孙卫琴.JAVA面向对象编程[M]。电子工业出版社,2006.[2]刘聪.《零基础学JavaWeb开发》[M].机械工业出版社,2008。[3]BruceEckel.Java编程思想[M].机械工业出版社,2008.[4]孙鑫.JavaWeb开发详解[M].电子工业出版社,2008。[5]李刚.Struts+Hibernate+Spring应用开发详解[M].清华大学出版社,2007。[6]Herbert,Schildt.Java参考大全[M].清华大学出版社,2008.[7]刘斌.精通JavaWeb整合开发[M]。电子工业出版社,2007。[8]陈刚.Eclipse从入门到精通[M].清华大学出版社,2007。[9]客户资源管理现状及发展.《程序员》杂志[J].曾炼软件工程专栏,2003.附录系统主要程序:下面为系统的struts—config。xml配置文件代码:<?xmlversion="1.0”encoding=”UTF—8”?>〈!DOCTYPEstruts—configPUBLIC”-//ApacheSoftwareFoundation//DTDStrutsConfiguration1。2//EN””http:///dtds/struts-config_1_2.dtd”〉〈struts—config>〈data—sources/〉<form-beans>〈form—beanname="loginForm”type="com。Genius。struts.form。LoginForm”/><form—beanname=”clientForm”type="com.Genius。struts。form。ClientForm"/〉〈form-beanname=”productsForm"type=”com.Genius.struts.form.ProductsForm"/〉<form-beanname=”contractForm"type=”com。Genius。struts.form。ContractForm”/〉〈/form—beans>〈global-exceptions/〉〈global—forwards/><action—mappings>〈actionattribute=”loginForm"input=”/login.jsp”name=”loginForm”parameter=”method”path=”/login”scope="request"type=”org。springframework.web。struts。DelegatingActionProxy”〉<forwardname=”loginSuccess”path=”/index。html”/><forwardname="loginFail"path=”/login.jsp”/>〈forwardname="addSuccess"path="/jsp/SystemManage/addManagerSucc。jsp”/〉〈forwardname=”addUserFail"path=”/jsp/SystemManage/addUserFail。jsp"/〉〈forwardname="selectSystemUser”path=”/jsp/SystemManage/selecManager。jsp”/>〈forwardname=”deletUserSuccess”path=”/jsp/SystemManage/deleteUserSuccess。jsp”/><forwardname=”toUpdateUser"path=”/jsp/SystemManage/updateManager.jsp"/〉<forwardname=”updateUserSuccess”path=”/jsp/SystemManage/updateUserSuccess。jsp"/>〈forwardname=”selectSystemUserFail"path=”/jsp/SystemManage/selectUserFail。jsp”/><forwardname="addRoleFail”path=”/jsp/SystemManage/addRoleFail.jsp"/〉〈forwardname=”addRoleSuccess"path="/jsp/SystemManage/addRoleSuccess。jsp"/>〈forwardname=”selectAllRole"path="/jsp/SystemManage/selectRole。jsp”/〉<forwardname=”deleteRoleFail”path="/jsp/SystemManage/deleteRoleFail.jsp"/>〈forwardname=”deleteRoleSuccess”path=”/jsp/SystemManage/deleteRoleSuccess.jsp”/><forwardname=”addDeptSucc"path="/jsp/SystemManage/selectDept.jsp”/><forwardname=”addDeptFail”path=”/jsp/SystemManage/addDeptFail。html"/〉〈forwardname="addManager”path=”/jsp/SystemManage/addManager.jsp”/>〈forwardname="deleteDeptFail”path=”/jsp/SystemManage/deleteDeptFail。jsp"/〉 〈forwardname=”deleteDeptSuccess"path=”/jsp/SystemManage/deleteDeptSuccess.jsp”/〉 〈forwardname="toUpdateDept"path="/jsp/SystemManage/updateDept.jsp"/〉 〈forwardname=”updateDeptFail"path="/jsp/SystemManage/updateDeptFail。jsp”/〉 〈forwardname=”updateDeptSuccess"path=”/jsp/SystemManage/updateDeptSuccess。jsp”/〉 〈forwardname=”toUpdatePwd”path="/jsp/SystemManage/updatePwd.jsp”/> 〈forwardname="updatePwdFail"path="/jsp/SystemManage/updatePwdFail.jsp”/> 〈forwardname=”updatePwdSuccess”path=”/jsp/SystemManage/updatePwdSuccess。jsp"/></action〉<actionattribute="clientForm”name="clientForm”parameter="method”path="/client"scope=”request"type="org。springframework。web。struts。DelegatingActionProxy”〉〈forwardname="saveGradFail"path="/jsp/ClientManage/addRateFail。jsp”/〉<forwardname=”selectAllGrad"path=”/jsp/ClientManage/selectRate。jsp”/〉〈forwardname="toUpdateGrad"path="/jsp/ClientManage/updateRate.jsp"/〉<forwardname="addClient"path="/jsp/ClientManage/addMessage。jsp”/〉〈forwardname=”deleteGradFail”path=”/jsp/ClientManage/deleteGradFail.jsp”/> 〈forwardname=”deleteGradSuccess"path="/jsp/ClientManage/deleteGradSuccess.jsp"/>〈forwardname=”selectAllClient"path=”/jsp/ClientManage/basicMessage。jsp”/><forwardname="selectClient"path=”/jsp/ClientManage/basicMessage。jsp"/〉〈forwardname="particularMessage”path="/jsp/ClientManage/particularMessage。jsp”/〉 <forwardname="updateClient"path="/jsp/ClientManage/updateMessage。jsp"/〉 〈forwardname="slectClientFail”path=”/jsp/ClientManage/selectClientFail.jsp”/> 〈forwardname="deleteClientSuccess"path=”/jsp/ClientManage/deleteClientSuccess.jsp”/>〈/action〉<actionattribute=”productsForm"name=”productsForm”parameter=”method”path="/products”scope=”request”type="org.springframework.web。struts。DelegatingActionProxy"〉〈forwardname="selectAllType"path="/jsp/WareManage/selectType.jsp”/>〈forwardname=”toAddType"path="/jsp/WareManage/addType.jsp”/〉<forwardname=”addTypeSuccess"path=”/jsp/WareManage/addTypeSuccess。jsp”/〉<forwardname=”toUpdateType"path=”/jsp/WareManage/updateType。jsp”/><forwardname="updateTypeSuccess”path=”/jsp/WareManage/updateTypeSuccess。jsp”/〉<forwardname="updateTypeFail"path="/jsp/WareManage/updateTypeFail.jsp”/〉〈forwardname="fuzzyFindFail"path="/jsp/WareManage/selectProductFail。jsp"/〉<forwardname=”toUpdateProduct”path="/jsp/WareManage/updateProducts。jsp”/〉〈forwardname="updateProductSuccess”path=”/jsp/WareManage/updateProductSuccess。jsp”/〉<forwardname=”toAddProduction”path=”/jsp/WareManage/addProduction.jsp”/>〈forwardname=”selectAllProduction"path="/jsp/WareManage/selectProduction.jsp"/〉<forwardname=”deleteProductSuccess"path=”/jsp/WareManage/deleteProductSuccess。jsp”/〉</action〉〈actionattribute=”contractForm"name="contractForm”parameter="method"path=”/contract"scope="request”type=”org。springframework.web.struts。DelegatingActionProxy”>〈forwardname=”selectAllContract”path="/jsp/Contract/selectBaseContract.jsp"/><forwardname="toAllContract"path=”/jsp/Contract/selectAllContract.jsp"〉〈/forward〉〈/action〉</action—mappings〉<message—resourcesparameter=”com。Genius.struts。ApplicationResources”/〉〈plug-inclassName=”org.springframework。web.struts.ContextLoaderPlugIn”〉 <set-propertyproperty="contextConfigLocation" value=”/WEB—INF/applicationContext-*。xml,classpath*:applicationContext—*.xml"/〉 〈/plug-in〉〈/struts—config〉下面为客户信息表的映射配置文件:Clientmessage.hbm。xml<hibernate—mapping>〈classname="com.Genius.po.Clientmessage”table="clientmessage”catalog="crm"〉〈idname=”clientId”type="java.lang.Integer”〉〈columnname="client_id"/><generatorclass="increment”/>〈/id>〈many-to-onename=”clientgrad"class="com.Genius.po。Clientgrad"fetch="select”〉〈columnname="rade_id”/>〈/many-to—one〉<propertyname=”name"type="java。lang.String"〉〈columnname="name"length="15"not-null=”true"/〉</property>〈propertyname=”sex”type="java。lang。String"〉<columnname="sex"length=”4”/〉〈/property〉〈propertyname=”email"type="java.lang.String"〉〈columnname="email"length=”30"/〉</property〉<propertyname=”telephone”type="java.lang.String”><columnname=”telephone"length="15"/〉</property><propertyname=”address"type="java.lang。String"〉<columnname=”address”length=”200"/>〈/property><propertyname=”postcode"type="java。lang。Integer"><columnname="postcode"/〉〈/pr

温馨提示

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

评论

0/150

提交评论