1、陕西职业技术学院计算机科学系毕业论文摘 要随着科技的发展、时代的进步,市场经济的竞争也是越来越激烈与残酷,在竞争中客户作为市场的最为重要的资源,早已成为市场营销的核心,企业间谁拥有的客户多,那么谁就会在竞争中占有绝对的优势。在市场经济竞争如此激烈的环境下,企业要想立于不败之地就必须和与之生存发展息息相关的客户建立起良好的关系,在现有客户资源的基础之上,维护好与老客户之间的关系,并且不断发展新的客户,用企业高品质的产品、优质的服务、良好的信誉树立企业在客户心中良好的形象,并以客户需求为己任,不断的发展与创新自身的产品,以满足客户的新需求,并规划企业内部的资源的管理方式、提升企业的客户服务质量。客
2、户资源管理系统满足了企业最资深客户资源管理的新要求,减少了客户资源管理过程中浪费的大量人力、物力和财力等。本系统正是以客户资源管理系统的开发过程为例,从需求分析、设计方案、系统设计、详细设计等方面来对系统进行全面的阐述和分析。关键词:客户资源管理系统;系统设计AbstractWith development of science and technology , the times progress, the market economy competition is also more and more fierce and cruel, be most important resource
3、 being a marketplace in the customer who competes for middle , the core becoming marketing and sales long ago, the customer who owns among enterprise is many , who is therefore likely then in occupying absolute advantage in competition. And under so fierce environment of marketplace economic competi
4、tion, enterprise needs to want to base self on sure ground , must draw existing with that to develop the vitally interrelated customer right away , build up fine relation, the relation defending the nice and old customer, develops the new customer ceaselessly , uses high-quality product of enterpris
5、e , the high grade service , fine credit to set up enterprise in fine image in customer mental view above the basis now having customer resource,; And and regard customer need as selfs own responsibility, selfs product being innovative and developing ceaselessly, to satisfy customers new need, stand
6、ard internal enterprise customer resource supervisor mode , lifting enterprise customer service quality. The customer resource management system has satisfied the enterprise to own customer resource management new request, reduced the massive manpower, the physical resource and the financial resourc
7、e which in the customer resource management process wastes and so on.This thesis is based on customer customer resource management system as an example of the development process, from needs analysis, design, system design, detailed design of the system to conduct a comprehensive exposition and summ
8、ary.Key words: Customer resource management system; System Design目 录- 3 -中文摘要- 3 -英文摘要 目 录引 言1第一章 系统分析3 1.1 需求分析3 1.1.1 系统实现功能3 1.1.2 功能模块分析3 1.2 可行性分析10 1.2.1 可行性分析目的10 1.2.2 技术可行性10 1.2.3 经济可行性10 1.2.4 操作可行性11 第二章 系统设计 12 2.1 设计思想12 2.2 设计目标13 2.3 系统结构设计14 2.4 开发及运行环境设计15 2.4.1硬件平台 15 2.4.2软件平台 16
9、 2.5 数据库设计16第三章 详细设计 22 3.1 详细设计概要 22 3.2 系统整体界面设计 22 3.4 系统模块详细设计 26 3.4.1 系统模块详细设计概要 26 3.4.2 录入模块详细设计 26 3.4.2.1 录入模块功能 26 3.4.2.2 录入模块流程 33 3.4.2.3 录入模块界面设计 27 3.4.3 查询模块详细设计 28 3.4.3.1 查询模块功能28 3.4.3.2 查询模块流程28 3.4.3.3 查询模块界面设计29 3.4.4 修改模块详细设计 31 3.4.4.1 修改模块功能31 3.4.4.2 修改模块流程31 3.4.4.3 修改模块界
10、面设计32 3.4.5 删除模块详细设计 33 3.4.5.1 删除模块功能33 3.4.5.2 删除模块流程33 3.4.5.3删除模块界面设计 43第四章 系统使用说明 35 4.1 系统运行环境 35 4.1.1 服务器配置 35 4.1.2 客户端配置 35 结 语 36参考文献 38引 言客户资源管理(Customer Resource Management 简称CRM)简单的说就是对客户的一些资料进行有效的管理,以前我们是人工来管理客户的信息,但如今已是信息化时代,我们需要通过计算机技术来对其进行高效的管理才能有利于一个企业更好的发展。客户管理系统是一个智能化的信息处理系统,它将企
11、业的经营、管理以客户为中心,通过系统管理员就可以轻松有效的对客户的信息进行操作管理。如今的信息技术飞跃发展,各个公司、企业都在不断的提高自己的信息化管理水平,他们也都认识到,高效的信息化管理对公司、企业的不断发展起到决定性的作用,也特别是对于所经营的客户群的信息管理显得尤为重要。由此,如今的绝大多数公司、企业都抛弃了以往的人工管理方式,转而使用高效的信息化管理方式。正是在于此背景之下,客户资源管理系统必然的诞生了,它也成为了各个公司、企业的必然选择。如今的客户资源管理系统可以说的层出不穷,不同规模和性质的公司、企业根据其具体情况而选择不同的客户资源管理系统来对其客户信息进行高效的管理,但是不管
12、它怎么变,它的核心还是一样的,都是对客户的信息进行管理和维护。由此我们可知,客户资源管理系统的市场潜力是非常之大的,而对于此系统的开发,可以使用不同的开发语言如C+、VB、Java等,而开发出来的系统表现形式主要为Web网站形式和桌面窗口软件形式。为了实现本系统,我以Web网站开发形式和面向对象的Java编程语言为基础,通过Java集成开发工具MyEclipse6.0来整合当前最为流行的SSH框架(Struts、Hibernate和String三个开源框架的整合框架)进行有效的开发。数据库用MySQL5.0来开发实现,在系统开发过程中以面向对象的思想来对数据库进行操作和管理。整个系统,界面虽然
13、简洁,但各个功能基本都很好的得以实现,操作上显得很容易。1 系统分析1.1 需求分析111 系统实现功能通过调查分析研究,本系统主要实现以下功能:1不同的员工类型,具有不同的职权来对系统进行相关的操作;不同的客户信息具有不同的级别。并对其进行分组管理。2系统的客户管理,销售管理,合同管理功能齐全。3实现客户的关系维护功能,合作关系的加深或决裂。4根据本公司的业务需求,添加自定义数据内容。5系统要有审批的工作流设置。6新建产品的一些基本信息资料,即产品信息管理。112 功能模块分析1、系统管理系统管理模块主要是用来实现对整个系统的一些设置和管理,其中又分为了几个小的模块,即员工管理、权限管理和部
14、门管理三个小模块。员工管理也就是对系统的用户进行管理,它记录了系统用户的信息,包括用户名、密码等,在这个模块中可以对系统用户信息进行查询、修改、删除以及添加新的用户操作;权限管理是用来设计系统用户的权限,对不同的用户分配不同的权限;部门管理则是用来对企业的部门进行有效管理,可以对部门进行增、删、改、查操作。2、客户管理客户管理模块是整个系统的重点,该模块主要用于对客户信息进行管理并将客户信息作为连接其余系统模块的主线。此模块下设置了客户信息管理和级别管理两个小模块。客户信息管理模块的主要功能就是将企业掌握的客户信息进行详细的管理,并可以方便的对客户信息进行添加、修改以及查询和删除操作;级别管理
15、模块则是用来设置不同的客户具有不同的级别,也可对其进行增、删、改、查操作。3、产品管理该模块主要是为了对公司的产品进行一个有效的管理,在此模块下又分为了产品信息管理和类别管理两个小模块。产品信息管理是对公司产品进行详细管理,根据公司的具体情况,可以新建产品,并对产品进行修改、查询和删除操作;类别管理则是用来设置公司经营的产品类别,当公司经营范围扩大,增加了新类型在产品时,我们就可在系统中增设新的产品类别等。 4、合同管理此模块是用来管理公司与客户之间或者公司与供应商之间签订的有效合同。5、销售管理销售管理模块是为了对公司产品的销售情况做一个详细的管理,公司可以根据此模块来查询其产品在市场中的销
16、售量等信息,公司以此来做出经营抉择。6、流程管理该模块用于对公司的业务对象进行审批的工作流设置。1.2 可行性分析 121 可行性分析目的进行可行性分析是为了用最小的代价在尽可能很短的时间里,来确定我们所面对的问题是否可以解决,其目的不是为了来解决问题,而是为了来确定问题是不是可以被我们解决,从而为以后的工作起一个决定性的作用。在可行性分析阶段我们要搞清问题的定义,能清楚的列举出目标系统存在的一些约束和限制,从而对技术可行性以及经济可行性和操作可行性三个方面进行分析研究。 122 技术可行性进行本系统的开发需要用到的知识技术有:1、Java程序开发语言以及Jsp和Servlet开发技术。2、H
17、TML网页制作知识和Dreamweaver软件工具的使用。3、Struts框架技术、Hibernate框架技术和Spring框架技术,并能使用Java集成开发工具MyEclipse对这三个框架进行整合开发。5、MySQL数据库开发知识。6、Web开发知识,并能使用Tomcat服务器进行开发。以上的这些知识技术是开发本系统所需要用到的,而我现在已经较好的把这些知识点和技术掌握了,在指导老师的精心指导之下我可以对该系统进行开发了。 123 经济可行性经济可行性研究的是对开发软件的成本估算和成本效益分析,以确定待开发软件是否有开发的价值。对于本系统的开发,能帮助公司对客户的信息管提高工作效率,并且能
18、非常方便的对其进行一系列的管理和维护,是以前的手工管理不能做到的。而且如今的信息化管理显得尤为重要,公司要想更好的发展就得花费一定的资金来购买此系统产品,而开发此系统并不需要投入多大的人力和物力,只需掌握相关的知识和技术就能很快的得以实现,因此在经济上是可行的。 124 操作可行性本系统乃是一个人机交互式的网站系统,系统的界面简洁友好,不需要深入的对其进行研究,很容易让人操作。系统用户只需登陆到系统中,根据自己的权限和公司的具体要求就可对系统的一些相应信息进行操作了,如果在系统操作过程中实在还存在某些不解,可查找系统帮助信息进行理解。2 系统设计 2.1 设计思想其实一个系统的总体设计一般都是
19、由两个阶段组成:系统设计,用来确定系统的具体实施方案;结构设计,用来确定系统软件的具体结构。系统设计是从系统的总体目标出发,根据我们在需求分析阶段对系统逻辑功能的要求来考虑系统所要用到的技术以及经济开销和系统的运行环境等方面的条件,确定系统的总体设计方案,从而确保系统的总体目标的实现。本系统的结构图采用的是数据流程图映射方法,该方法结合数据流程图以及其各级的细化图,按照自顶向下的原则依次将数据流程图中的那些逻辑处理映射到结构图中去,从而成为一个个的模块。此方法简单、方便,它使数据流程图与结构图建立起了对应统一的关系,使设计达到一致的效果。系统分为多个模块,各个模块之间没有过多的相互作用,每个模
20、块完成一个相应的子功能,从而实现模块的独立化。由于模块的独立程度又由内聚和耦合两个标准来进行衡量,因此要做到模块的独立化就得尽量使模块的划分做到高内聚和低耦合。耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块之间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据,在软件设计中应该追求尽可能低耦合的系统。由此可知影响软件复杂程度的一个重要因素就是耦合,所以我们在开发系统时应该采取以下的设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。22设计目标系统的总体设计目标就是为了建立一个统一的信息管理平台,以公司经营的客户群为中心来对客户的详
21、细信息进行有效的管理,加强同客户的交流和感情的建立,从而提高客户对公司的满意程度,也为公司的不断发展起到推动性的作用。其实本系统要实现的一系列操作都是在对数据进行操作,也主要就是对数据进行增加、修改、查询和删除四项操作。那么对数据如何去实现有效的管理,则需要对其进行认真的分析和设计。通过对本系统的分析后,本系统需要达到的主要设计目标有:1、首先我们应该确定,系统的最终效果要达到一个友好的人机交互模式,系统界面简洁友好,信息的查询要灵活、方便、快捷和准确。2、系统的管理员对系统的不同用户要分配不同的权限。3、系统用户可随时修改自己的口令。4、对系统用户的输入数据要作严格的验证,尽量排除人为产生的
22、错误。5、系统各个模块的增、删、改、查要设计得当。6、系统要有相应的帮助信息,以便用户在操作过程中查看。7、系统运行要稳定,而且也要安全可靠。23系统结构设计结构化设计方法就是把数据流图表示的逻辑模型用结构图层次的方式表现出来。结构化设计的核心其实就是把模块分解设计,采用自顶向下、逐层分解的方法,从而把整个系统划分成多个子模块,使其完成不同的功能,这样也就使得模块具有了一定的独立性,最终降低了系统的复杂性。本系统的功能结构如图1所示:客户资源管理系统系统管理客户管理产品管理销售管理流程管理合同管理部门管理权限管理客户信息管理级别管理产品信息管理类别管理添加新用户查询用户信息添加新的部门查看部门
23、信息添加权限查看权限增加新客户查找客户信息添加客户级别查看客户级别添加产品信息查找产品信息员工管理添加新类别查看类别信息销售信息查看添加销售信息订单信息查询公文维护添加公文合同查询添加合同订单信息修改销售信息管理订单管理工作流管理公文管理流程维护图1 功能结构图24开发及运行环境设计 241 硬件平台1、CPU:CPU233MHZ以上;2、内存:256MB以上;3、硬盘:40G以上;4、显示器:17英寸。 242 软件平台1、操作系统:Windows XP;2、数据库:MySQL Server5.0;3、数据库第三方管理软件:Navicat8.0Lite for MySQL;4、Java开发工
24、具包:JDK Version1.5.0;5、Web服务器:Tomcat6.0;6、Java开发集成工具:MyEclipse6.0;7、可视化网页编辑工具:Dreamweaver8;8、浏览器:IE6.0;9、分辨率:最佳效果为1024768。25数据库设计在系统设计时,我们应该考虑如何用数据模型来描述数据的结构和语义,用以实现对现实世界的抽象。在目前广泛使用的数据库模型分为两种类型,一种是独立于计算机系统的“概念数据模型”(如“实体联系模型”);另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中我所采用的是“实体联系模型”(E-R模型)来描述数据库的结构和语义,实现对现实世界的抽象。
25、本系统使用的数据库是MySQL数据库,系统数据库名称为crm,数据库crm中所包含的数据表如下所示:(1) clientmessage(客户信息表)客户信息表主要用来保存公司经营的客户资料信息。表clientmessage的结构如表1所示: 字段名数据类型长度是否主键描述client_idint5是主键rade_idint5否外键dept_idint5否外键namevarchar15否客户姓名sexvarchar4否客户性别emailvarchar30否客户邮箱gradvarchar15否客户级别telephonevarchar15否客户电话addressvarchar200否客户地址post
26、codeint10否客户邮编remarkvarchar200否客户备注表1:表clientmessage的结构 (2) systemuser(系统用户信息表)系统用户信息表用来存储整个系统用户的信息,在本系统中系统用户信息其实就是公司的员工信息。表systemuser的结构如表2所示:字段名数据类型长度是否主键描述user_idint5是主键userNamevarchar15否用户账号trueNamevarchar15否真实姓名sexvarchar4否性别ageint3否年龄 passwordvarchar15否密码 idCardvarchar20否身份证 telephonevarchar15
27、否电话deptint5否外键limitsint5否外键表2:表systemuser的结构(3)productmessage(产品信息表)产品信息表是用来存储公司经营的产品的基本信息。表productmessage的结构如表3所示:字段名数据类型长度是否主键描述prod_idint5是主键type_idint5否外键prodNamevarchar50否产品名称prodTypevarchar10否产品类别pricedouble10否产品单价buyPricedouble10否购买价 rebateint11否折扣salePricedouble10否销售价getTimevarchar15否上架时间pro
28、dImagevarchar50否产品图片synopsisvarchar1000否产品概述remarkvarchar1000否备注saleNumberInt11否销售量firstStockint11否原库存nowStockInt11否现库存表3:表productmessage的结构 (4) producttype (产品类别表)产品类别表用来存储产品的类别信息。表producttype的结构如表4所示:字段名数据类型长度是否主键描述type_idint5是主键typenamevarchar20否类别名称typegradevarchar10否类别级别表4:表producttype的结构(5) de
29、ptmessage(部门信息表)部门信息表是用来存储公司部门信息的。表deptmessage的结构如表5所示:字段名数据类型长度是否主键描述dept_idint5是主键deptnamevarchar15否部门名称表5:表deptmessage的结构(6)clientgrad(客户级别表)客户级别表用来存储客户的级别信息。表clientgrad的结构如表6所示:字段名数据类型长度是否主键描述rade_idint5是主键radenamevarchar15否级别名称表6:表clientgrad的结构(7)userole(权限表)权限表是用来存储权限的相关信息。表limit的结构如表7所示:字段名数据
30、类型长度是否主键描述limit_idint5是主键limitnamevarchar15否权限名称表7:表userole的结构(8) contract(合同表)合同表是用来存储合同信息的数据表。表contract的结构如图8所示:字段名数据类型长度是否主键描述idint5是主键contnamevarchar20否合同名称clientnamevarchar20否客户名称ctypevarchar20否合同类别writetimedate15否签约时间begintimedate15否生效时间 overtimedate15否失效时间productvarchar50否产品名称表2-8:表contract的结
31、构(9) sellmessage(销售表)销售信息表示用来存储销售的信息表。表sellmessage的结构如表9所示:字段名数据类型长度是否主键描述idint5是主键Sellman_idint5否外键Type_idInt5否外键productvarchar50否销售产品sellnumint10否销售数量selltimedate15否销售时间 allsellmoneydouble15否销售总额perpricedouble 15否产品单价表9:表sellmessage的结构3 详细设计3.1 详细设计概要详细设计的目的是为了确定应该怎样具体地实现符合要求的系统,在这个阶段的设计中我们应该对所要开发
32、的系统有一个更加详细的描述,以方便在编码的过程中能把它直接翻译成程序语言书写的程序。3.2 系统整体界面设计经过需求分析和系统设计之后,我们就可以对系统的界面进行详细的设计。首先我们应该设计好系统界面布局的整体框架,不错,要想进入本客户资源管理系统,前提条件你必须是该系统的用户,进入系统前必须经过系统用户登陆界面进行验证之后才可进入,进入系统后就可以看到系统的整体框架了。系统登陆界面和进入系统后的显示界面分别如图3-1和图3-2所示:图3-1系统登陆界面图3-2 系统主界面登陆进系统后可清晰的看到,整个系统界面由框架分为了三个部分,其功能说明如表3-1所示: 区 域名 称说 明对应文件1网站头
33、部主要起一个辅助和显示美化的作用headnav.jsp2导航显示主要用于显示导航模块中的功能navbar.jsp3内容显示主要用于显示系统各功能模块中的内容main.html表3-1:系统首页界面说明整个网站的布局使用到的是HTML中的一个框架,框架内容分别由headnav、navbarh和main这3个jsp页面组成,最后再由HTML代码在index.jsp页面中组合起来。框架代码如下:/*index.jsp*/客户资源管理系统首页 3.3 系统模块详细设计 331系统模块详细设计概要由前面的系统分析和系统设计我们已知,本系统是围绕以客户为中心来对信息进行有效的管理,而所有的这些管理操作其实
34、都是在对相应的数据进行操作,基本上实现的也就是对数据的增加、查询、修改和删除这四项操作。所以在此所谓的系统模块详细设计就是指的对这四项功能模块实现的设计。因为系统的每个模块几乎都要进行反复的增、删、改、查操作,所以设计好这四项操作功能模块就显得尤为重要了。 332录入模块详细设计 3.3.2.1录入模块功能录入模块的功能主要就是对一系列基本信息的录入,如要添加客户、系统用户或产品时就要把其相关信息录入到系统中。在设计录入操作时,我们要求数据能够正确的保存到数据库中,因此就要对录入的数据进行有效验证,在此分为两个步骤:首先在页面由JS脚本程序对数据进行验证;若页面验证通过则再到数据库中进行一次验
35、证,看录入信息是否与数据库中的信息发生冲突,若没有冲突则可正确的录入。 3.3.2.2录入模块流程开 始输入数据内容输入是否有效保存输入内容结 束错误提示3.3.2.3录入模块界面设计进入系统后,根据具体的需要,在左边的功能模块导航栏中,用鼠标单击相关的超级链接就可在内容显示区中显示出相关的页面。如我要增加一个员工(也就是系统用户),单击左边的“创建用户”超链接就会在内容区弹出创建新的系统用户页面,如图3-3所示,填写完用户信息后单击“提交”按钮,通过验证若信息无误后就可以把所填写的信息保存到数据库中。图3-3信息录入界面333查询模块详细设计 3.3.3.1查询模块功能查询模块的功能主要就是
36、对保存在数据库中的相关信息进行查找,然后把查找出来的信息通过页面显示出来供用户查看和维护。 3.3.3.2查询模块流程开 始输入查询内容点击查询按钮查询是否成功显示查询内容结 束未成功提示 3.3.3.3查询模块界面设计通过链接刚进入查询界面时,界面显示的是所有系统用户的信息(考虑到用户较多,用到了分页显示)。根据具体需要可在“输入你要查询的用户名:”表单中输入所要查找的用户的用户名,然后单击表单后的“搜索”按钮,通过数据库查询后,若存在我们输入的数据内容则将显示出查询的结果(如图3-4所示)。在图3-4中还可以看到,我们可以选择不同的排列方式来显示系统用户的信息,如单击下拉列表框选择“年龄”
37、则所有的数据会按照年龄的大小来排列。在每个用户信息行的末尾有一个操作的字段,里面包括了“修改” 、“删除” 和“修改密码”这三个操作,单击“修改”链接则会跳转到一个修改界面对本行显示的用户的信息进行修改;单击“删除”链接则会把该行用户的信息从数据库中删除掉,此操作需谨慎考虑;“修改密码”链接则是用户对自己的账户密码进行修改(如图3-5所示)。图3-4用户信息查询界面图3-5用户密码修改界面334修改模块详细设计 3.3.4.1修改模块功能修改模块就是当某些信息发生变化时,我们就要对其保存在数据库中的信息进行相应的修改,从而保证数据的时效性。其实修改模块的设计是在录入模块的基础上进行了一些改动,
38、也就是当你查找出某条信息时想对其进行修改,单击其对应的一个“修改”链接,就会跳转到一个修改界面,此时也就相当于对数据再次进行一次录入了。 3.3.4.2修改模块流程开 始输入修改内容输入是否有效保存修改内容结 束错误提示点击“修改”链接进入修改界面 3.3.4.3修改模块界面设计在图3-4中我们单击所显示的一行用户信息的操作字段下的“修改”链接,跳转到一个和录入信息基本相同的修改界面(如图3-6所示),其中需要说明的是,用户名自从你创建成功之后就不能修改了,在表单处可根据需要进行相应的修改,修改完后单击“提交”按钮通过验证即可生效。图3-6系统修改用户信息界面335删除模块详细设计3.3.5.
39、1删除模块功能删除模块的功能就是对系统中无效的信息从数据库中给删除掉。该功能模块较为简单,并不需要过多的设计。我们只需在相关信息栏的操作字段下单击“删除”链接,然后弹出一个确认框,单击“确定”按钮则会从数据库中删除该条数据信息,单击“取消”按钮则会返回原界面。3.3.5.2删除模块流程开 始单击“删除”链接确定是否删除删除该信息结 束取消删除3.3.5.3删除模块界面设计如图3-4,在显示的用户信息栏操作字段下单击“删除”链接,就会弹出一个确认框,如图3-7所示,若选择“确定”按钮后则会成功删除该条数据信息。注意:在进行“删除”操作时一定要考虑清楚。图3-7信息删除确认4 系统使用说明4.1 系统运行环境411服务器配置CPU速度:P4 2.0G HZ以上;内在:建议512及其以上;操作系统:建议Windows 2000 Server版;数据库:MySQL Server5.0;Java工具包:JDK Version1