




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
姓名:题目中原工学院软件学院三级实践课题设计任务书姓 名 专业 班题 目企业客户关系管理系统的设计与实现设计任务本系统以管理客户信息为中心,能够实现对客户信息进行分类别管理。同时客户也可以登录到本系统对自己的个人信息进行查询。客户信息可以分为公司注册类客户和商标注册类客户。系统功能主要包括:l 客户回访维护l 客户信息维护l 商标注册维护l 公司注册信心维护以及权限管理l 日志管理等功能。时间进度第1周:( ):系统需求分析,进行界面设计;设计系统的数据库结构进行分析、设计,并通过画E-R图的方式来帮助实现数据库结构的完整设计,列出数据库数据表,之后以列出的关系模型为依据进行第2周:( ):对系统进行详细的分析设计,根据不同的功能模块,对其进行相应的编码及测试;第3周:( ):对系统进行测试和纠错,进一步完善其功能,之后进行报告总结,交与老师验收。原 主始 要资 参料 考与 文 献01郭兴峰, ASP.NET动态网站开发基础教程(C#篇)M,北京:清华大学出版社, 2006.502孙士宝,ASP.NET数据库网站设计教程(C#篇)M,北京:电子工业出版社, 2010.3指导教师签字: 年 月 日摘 要本文给出了企业客户关系管理系统的开发背景、需求分析与设计以及主要功能模块的实现等内容。描述了系统的背景、现状、研究内容和意义;给出了系统的需求分析及概要设计,内容包括体系结构设计及系统数据库设计;给出了系统详细设计,内容包括系统主要功能模块的界面设计及实现;最后给出系统运行及测试的结果。关键词:客户关系管理;商标注册;公司注册; 回访 目 录摘 要2第1章 绪 论41.1课题背景41.2企业客户关系管理系统的现状41.3 课题研究内容5第2章 需求分析62.1 业务分析62.2 功能需求分析62.3 系统环境需求62.3.1 开发环境需求62.3.2 运行环境需求7第3章 概要设计83.1 数据库概要设计83.1.1 实体及其属性83.1.2 E-R模型83.2 系统管理模块设计9第4章 详细设计114.1 数据库的详细设计114.2 系统详细设计134.2.1 客户信息管理144.2.2 商标注册信息管理164.2.3 公司注册信息管理184.2.4 客户回访管理194.2.5 系统管理20第5章 运行及测试22第6章 结束语25参考文献26附录 系统相关代码28第1章 绪 论1.1课题背景企业的客户关系管理,也叫做CRM(Customer Relationship Management),这个概念最初由Gartner Group提出来,而在最近开始在企业电子商务中流行。客户关系管理软件,是一种以客户关系一对一理论为基础,旨在改善企业与客户之间关系的新型管理机制。客户关系管理软件系统的宗旨是:为了满足每个客户的特殊需求,同每个客户建立联系,通过同客户的联系来了解客户的不同需求,并在此基础上进行一对一个性化服务。通常客户关系管理软件包括销售管理、商务管理,数据汇总,市场营销管理、客户服务系统以及呼叫中心等方面。1.2企业客户关系管理系统的现状客户关系管理软件管理以全方位的客户关系管理基础,结合完善的产品管理和财务管理,协同简洁实用的办公管理等与企业的客户关系维护和开发息息相关的各项内容完美的融合在一起,是完全实现客户、产品、财务、售后服务、团队管理、业绩考核、日常办公协同工作的管理平台,使整个企业的客户管理纳入到统一的规范化管理中。 客户关系管理软件为企业构建了一整套以客户为中心的有关客户、营销、销售、服务与支持信息的数据库,帮助企业了解管理渠道,建立和优化了前端业务流程,包括市场营销、销售、产品的服务与支持等。该系统可以进行深层次分析和挖掘,从而发现最有价值的客户、新的市场和潜在的客户,创造业务良机,增强企业与供应商、合作伙伴、客户间的关系,加快客户服务与支持响应速度,增强企业在电子商务时代的竞争优势。统计数据表明,中小企业客户关系管理软件市场的规模目前已达8亿美元。在今后五年中,这一市场将快速增长至18亿美元,在整个客户关系管理软件市场中占比达30%以上。1.3 课题研究内容该课题以某商标注册所的客户管理需求为出发点,实现了以下功能: 客户信息管理 商标注册管理 公司注册信息管理 回访信息管理 权限管理 日志管理第2章 需求分析2.1 业务分析该系统以管理客户信息为中心,客户信息可以分为公司注册类客户和商标注册类客户。系统能够实现对客户信息进行分类别管理,同时客户也可以登录到本系统对自己的个人信息进行查询。2.2 功能需求分析 经业务分析,并结合系统用户的需求,系统需要实现以下功能:1、客户信息管理:本系统中的客户分为已注册客户和意向客户,对这两类客户的信息都需要进行管理。意向客户在与公司发生某项具体业务时转变为已注册客户。客户信息包括:客户名称、客户类别、联系日期、公司名称、回访周期、公司地址等。2、商标注册管理:当客户办理商标注册业务时,操作员需登记商标注册的相关信息,包括客户信息、申请事项、商标信息、案件处理等。3、公司注册信息管理:当客户办理公司注册业务时,操作员需登记公司注册的相关信息,包括客户信息、联系人、下单日期、注册金等。4、回访信息管理:对于已在商标注册所办理过商标注册或公司注册的客户,需要定期打电话回访。回访记录可直接在系统界面录入,也可以录入Excel后批量导入数据库。4、权限管理:可对系统用户分配操作权限。5、日志管理:对于系统的每项操作,都要求记录下来,信息包括操作类型、操作员、操作时间等。2.3 系统环境需求2.3.1 开发环境需求 硬件需求:CPU PIII 500以上的PC服务器,内存1GB以上,硬盘8GB以上。操作系统:Windows XP 软件需求:Microsoft Visual Studio 2005 开发环境,SQL Server 2005数据库2.3.2 运行环境需求硬件需求:CPU PIII 500 以上的PC服务器,内存1CB以上,硬盘8GB以上。操作系统:Windows XP; 软件需求:.NET Framework v2.0。第3章 概要设计3.1 数据库概要设计 对于企业客户关系管理系统的数据库设计,本文将从以下几个方面进行描述:首先是概念模型描述,包括对系统的实体属性分析及系统的E-R图,然后是系统的逻辑结构设计,即给出系统的数据库设计表结构及描述。3.1.1 实体及其属性 整个系统各实体可用以下关系来表示(其中主键已用下划线标识):l 客户(客户ID,客户姓名,用户名,用户密码,用户类别,联系电话,费用,建立日期,回访周期,客户状态)l 商标(商标ID,商标名称,商标类别,申请日期,邮政编码,联系人,联系电话,传真,费用)l 公司(公司ID,公司名称,法人代表,注册日期,最终日期,注册资金,注册地址,费用)l 回访记录(回访记录ID,回访时间,回访人,回访内容,回访类型)l 业务员(业务员ID,用户名,密码,角色,状态)3.1.2 E-R模型 在分析过系统各实体之间的联系后可得出系统的整体概念模型,用E-R图表示出来,如图3.1所示的。图3.1 E-R图3.2 系统管理模块设计 系统网站导航图如图3.2所示。该导航图将此系统的大致信息展示了出来,系统是分相应权限的,只有具有相应权限的人员才能进入相应的功能模块。例如,操作员进入此系统后,只能进行商标及公司注册信息的录入工作,对于客户类别,用户权限等功能则不具有访问权限。商标管理客户管理登录客户添加客户查询客户类别查询商标查询商标添加 企业客户关系管理系统系统管理用户管理数据备份商标类别查询公司查询公司添加公司注册记录查询记录添加公司管理管理回访记录商标类别添加商标注册客户类别添加操作日志图 3.2 网站导航图第4章 详细设计为了方便用户的操作,系统采用了模块化设计的思想,通过各模块的不同组合以实现不同的增、删、改、查功能。最终,使该系统能够具有规范化的格式、完整的信息量和易于查询等的特点。4.1 数据库的详细设计依据数据库的概要设计,最后总结出数据库结构的主要数据表包括:客户信息表,商标信息表,公司信息表,业务员信息表等。以下将给出系统数据库设计的逻辑模型,即各数据表的结构。1、客户信息表 客户信息表存储系统客户的相关信息,表结构如表4.1所示表4.1 客户信息表结构列名说明数据类型长度允许空是否为主键customerId客户IDint否是customerName客户姓名nvarchar20否否username用户名nvarchar50否否userPwd密码varchar40否否customerType客户类别int否否tel联系电话nvarchar50否否cost费用varchar50否否date申请日期nvarchar50否否returnPeriod回访周期int否否remark备注Text是否2、商标信息表 商标信息表存储商标的相关信息,表结构如表4.2所示表4.2 商标信息表结构列名说明数据类型长度允许空是否为主键trademarked商标IDint否是trademarkName商标名称nvarchar20否否trademarkType商标类别int否否applyDate申请日期nvarchar50否否applyId申请IDvarchar20否否customerId客户IDint否否postcode邮政编码varchar20否否linkman联系人nvarchar20否否telephone联系电话varchar20否否fax传真varchar20否否cost费用money是否applicant申请人nvarchar20否否address地址nvarchar50否否acceptDate受理日期nvarchar50否否acceptReceivePerson受理人nvarchar50否否certificateDate注册日期nvarchar50否否reparResult注册结果nvarchar50否否dueTime有效期nvarchar50否否mailDate邮寄日期nvarchar50否否replyTime回复时间nvarchar50否否replyResult回复原因nvarchar50否否salesman业务员IDnvarchar20否否remark备注Text否否3、公司信息表 公司信息表存储系统客户的相关信息,表结构如表4.3所示表4.3 公司信息表结构列名说明数据类型长度允许空是否为主键companyId公司IDint否是companyName公司名称nvarchar50否否legalPerson法人代表nvarchar50否否linkman联系人nvarchar20否否orderDate申请日期nvarchar50否否finalDate最终日期nvarchar50否否regesterMoney注册资金money否否regesterAddress注册地址nvarchar50否否cost费用money否否salesman业务员int否否customerId客户IDint否否state状态bit否否remark备注text否否4、业务员信息表 业务员信息表存储系统客户的相关信息,表结构如表4.4所示表4.4 业务员信息表结构列名说明数据类型长度允许空是否为主键IDIDint否是salesmanName业务员姓名nvarchar50否否userName用户名varchar50否否userPwd密码varchar50否否roleID角色IDint否否state状态bit否否4.2 系统详细设计以下是系统各主要功能模块的界面设计及实现。进入网站的用户必须先登录,登录页面如图4.1所示图4.1 登录页面4.2.1 客户信息管理用户通过身份验证后进入相应业务功能页面。点击界面上方的导航栏第一项“客户信息管理”,将进入客户信息管理页面,如图4.2所示。图4.2 客户信息管理页面在该页面通过客户名称查询客户信息,对于每条客户信息,系统都提供了编辑、删除及重置密码的功能。点击某一条信息行中的“修改”按钮,将进入客户信息添加页面,如图4.3所示图4.3 客户信息添加页面在该页面输入客户的各项信息之后点击“保存”按钮即可添加或修改一条客户信息。其中“客户类型”和“角色”中的选项系统提供单独的维护界面,如图4.4和4.5所示图4.4 客户类别管理图4.5 角色管理页面4.2.2 商标注册信息管理点击界面上方的导航栏第二项“商标注册管理”,将进入商标注册管理页面,如图4.6所示图4.6商标注册管理界面在该页面通过客户名称查询商标注册信息,对于每条商标信息,系统都提供了编辑、删除的功能。点击某一条商标注册信息行中的“修改”按钮,将进入商标注册信息添加页面,如图4.7所示图4.7 商标注册添加页面在该页面输入商标注册的各项信息之后点击“保存”按钮即可添加或修改一条商标注册信息。其中的“申请事项”,系统提供了单独的管理及添加界面,分别如图4.8,4.9所示图4.8 申请事项管理页面图4.9 申请事项添加页面4.2.3 公司注册信息管理点击界面上方的导航栏第三项“公司注册管理”,将进入公司注册管理页面,如图4.10所示图4.10 公司注册管理页面在该页面通过客户名称查询商标注册信息,对于每条公司注册信息,系统都提供了编辑、删除的功能。点击某一条公司注册信息行中的“修改”按钮,将进入公司注册信息添加页面,如图4.11所示图4.11 公司注册信息添加界面4.2.4 客户回访管理点击界面上方的导航栏第四项“客户回访管理”,将进入客户回访管理页面,如图4.12所示图4.12回访信息管理页面在该页面通过客户名称查询客户回访信息,对于每条客户回访信息,系统都提供了编辑、删除的功能。点击某一条客户回访信息行中的“修改”按钮,将进入客户回访添加页面,如图4.13所示图 4.13 客户回访添加页面4.2.5 系统管理 点击界面上方的导航栏第五项“系统管理”,将进入系统业务员管理页面,如图4.14所示图4.14 业务员管理页面在该页面通过业务员姓名查询业务员信息,对于每条业务员信息,系统都提供了编辑、删除的功能。点击某一条业务员信息行中的“修改”按钮,将进入业务员添加页面,如图4.15所示图4.15 业务员管理页面本系统的用户权限管理模块要求能实现对任一数据表的添加、删除、修改、查询操作的逐一控制功能,即对每个用户的操作权限,可以控制每个操作页面的每个按钮的可用性。权限管理页面如图4.16所示图4.16权限管理页面在上图的每一个功能项后面用复选框都给出了查询、添加、删除及修改四个功能项,在页面上方选择过角色名称后,选择相应的四个操作,点击“保存”后该角色的操作权限即保存在数据库中。第5章 运行及测试在编码的过程中,需要通过不断的对系统进行调试,才能对其功能做出完善性的补充。所以测试在此期间起了相当大的作用。以下给出用户登录及客户信息管理模块的若干主要测试用例。如表5.1所示。56表5.1 测试用例序号功能模块测试功能点操作步骤及数据期望结果实际结果分析处理方式1.登录输入正确用户名密码在登录页面输入用户名及密码,点击“登录”按钮正常登录,显示相应功能页面正确2.输入正确的用户名和错误的密码在登录页面输入用户名及密码,点击“登录”按钮不能正常登录,系统给出提示系统给出提示:“密码错误,请重新输入”3.用户名或密码空白在登录页面不输入用户名及密码,直接点击“登录”按钮系统给出提示系统给出提示“请输入用户名及密码”4.客户信息管理客户信息添加在客户信息添加页面输入客户信息,点击“保存”按钮将客户数据插入数据库未能正常插入“申请日期”字段数据正确性未判断增加客户端脚本验证该控件的数据合法性5.客户信息修改在客户信息管理页面选择某条用户信息,点击“修改”按钮,输入客户信息,点击“保存”按钮修改数据库中相应客户信息记录提示“受理日期”数据不合法未判断“受理日期”增加客户端脚本验证该控件的数据应在“受理日期”之后6.客户类别管理在“客户类别管理”中增加一条客户类别数据在客户信息管理中的客户类别中出现该类别正确第6章 结束语 参考文献01郭兴峰, ASP.NET动态网站开发基础教程(C#篇)M,北京:清华大学出版社, 2006.502孙士宝,ASP.NET数据库网站设计教程(C#篇)M,北京:电子工业出版社, 2010.3指导教师评语 成绩: 指导教师签字: 年 月 日附录 系统相关代码网站首页的主要代码如下:登录: protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) UserLogin(); BUser bUser = new BUser(); BCustomer bCustomer = new BCustomer(); BSalesman bSalesman = new BSalesman(); private void UserLogin() string userName=Request.FormuserName; string pwd=Request.Formpwd; if (!string.IsNullOrEmpty(userName) & !string.IsNullOrEmpty(pwd) pwd=Commons.StringHelper.MD5Encrypt(pwd); bool hasUserName = bCustomer.IsSameUserName(userName);/先判断客户表是否存在此用户名 if (hasUserName)/如果存在 bool rightPwd = bUser.CheckPwd(userName, pwd, Customer);/判断密码是否正确 if (rightPwd)/如果正确 string roleName = bUser.GetRoleName(userName, Customer);/获取该用户名对应的角色 SessionuserName = userName; SessionroleName = roleName; Sessiontable = Customer; Response.Write(ok);/验证成功,向页面发送成功信息 Response.End(); else/密码错误 Response.Write(errorpwd);/向页面写入错误信息 Response.End(); else/如果客户表不存在此用户名 hasUserName = bSalesman.IsSameUserName(userName);/判断业务员表是否存在此用户名 if (hasUserName) bool rightPwd = bUser.CheckPwd(userName, pwd,Salesman); if (rightPwd) string roleName = bUser.GetRoleName(userName, Salesman); SessionuserName = userName; SessionroleName = roleName; Sessiontable = Salesman; Response.Write(ok); Response.End(); else Response.Write(errorpwd); Response.End(); else Response.Write(erroruser); Response.End(); 公司注册:string action = ;/进入该页面的操作行为 protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) action = Request.QueryStringaction; if (action = update) DataRead(); protected void save_Click(object sender, EventArgs e) string action = Request.QueryStringaction; if (action = update) if (Update() AlertAndRedirect(修改成功, CompanyMng.aspx); else if (Add() AlertAndRedirect(添加成功, CompanyMng.aspx); private bool Add() Company company = new Company() CustomerId = new BCustomer().GetEntityByCustomerName(txtCustomerName.Text.Trim().Id, CompanyName = txtCompanyName.Text.Trim(), Cost = txtCost.Text.Trim(), FinalyDate = txtFinalyDate.Text.Trim(), LegalPerson = txtlegalPerson.Text.Trim(), LinkMan = txtLinkman.Text.Trim(), OrderDate = txtOrderDate.Text.Trim(), RegesterAddress = txtRegAddress.Text.Trim(), RegesterMoney = txtRegMoney.Text.Trim(), Remark = txtRemark.Text.Trim(), SalesMan = new BSalesman().GetEntityBySalesmanName(txtSalesman.Text.Trim().Id, State = true ; bool isSameCustomerName = new BCustomer().IsSameCustomerName(txtCustomerName.Text.Trim(); if (!isSameCustomerName) Alert(没有该客户,请重新输入!); return false; bool isSameSalesmanName = new BSalesman().IsSameSalesmanName(txtSalesman.Text.Trim(); if (!isSameCustomerName) Alert(没有该业务员,请重新输入!); return false; return new BCompany().Add(company); private bool Update() BCompany bCompany = new BCompany(); int id = int.Parse(Request.QueryStringid); Company company = new Company() CompanyId = id, CustomerId = new BCustomer().GetEntityByCustomerName(txtCustomerName.Text.Trim().Id, CompanyName = txtCompanyName.Text.Trim(), Cost = txtCost.Text.Trim(), FinalyDate = txtFinalyDate.Text.Trim(), LegalPerson = txtlegalPerson.Text.Trim(), LinkMan = txtLinkman.Text.Trim(), OrderDate = txtOrderDate.Text.Trim(), RegesterAddress = txtRegAddress.Text.Trim(), RegesterMoney = txtRegMoney.Text.Trim(), Remark = txtRemark.Text.Trim(), SalesMan = new BSalesman().GetEntityBySalesmanName(txtSalesman.Text.Trim().Id, State = true ; return new BCompany().Update(company); private void DataRead() int id = int.Parse(Request.QueryStringid); BCompany bCompany = new BCompany(); Company company = bCompany.GetEntity(id); txtCompanyName.Text = company.CompanyName; txtlegalPerson.Text = company.LegalPerson; txtLinkman.Text = company.LinkMan; txtOrderDate.Text = company.OrderDate; txtFinalyDate.Text = company.FinalyDate; txtRegMoney.Text = company.RegesterMoney; txtRegAddress.Text = company.RegesterAddress; txtCost.Text = company.Cost; txtSalesman.Text = new BSalesman().GetEntity(company.SalesMan).SalesmanName; txtRemark.Text = company.Remark; int customerId = company.CustomerId; txtCustomerName.Text = new BCustomer().GetEntity(customerId).CustomerName; protected void btnReturn_Click(object sender, EventArgs e) Response.Redirect(CompanyMng.aspx); 客户信息添加:protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) CustomerTypeLoad(); RoleLoad(); string action = Request.QueryStringaction; if (action = update) DataRead(); CompanyNameLoad(); LogoLoad(); AddressLoad(); else lblCompany.Visible = false; lblAddress.Visible = false; lblTrademark.Visible = false; ddlistCompanyName.Visible = false; txtAddress.Visible = false; logoList.Visible = false; private void RoleLoad() ddlistRoleName.Items.Clear(); DataSet ds = new BSalesman().GetRole(); for (int i = 0; i ds.Tables0.Rows.Count; i+) ddlistRoleName.Items.Add(ds.Tables0.Rowsi0.ToString(); private bool Register() string customerName = regCustomerName.Text.Trim(); string userName = regUserName.Text.Trim(); string pwd = StringHelper.MD5Encrypt(123456); string tel = regTel.Text.Trim(); string date = regDate.Text.Trim(); string cost = regCost.Text.Trim(); int customerType = int.Parse(regCustomerType.SelectedValue.ToString(); string returnPeriod = regReturnPeriod.Text.Trim(); /string companyName = regCompanyName.Text.Trim(); /string address = regAdress.Text.Trim(); string remark = regRemark.Text.Trim(); bool state = true; string roleName = ddlistRoleName.SelectedItem.Text; BCustomer bCustomer = new BCustomer(); Customer customer = new Customer() CustomerName = customerName, UserName = userName, UserPwd = pwd, Tel = tel, Date = date, Cost = cost, CustomerType = customerType, ReturnPeriod = returnPeriod, Remark = remark, CustomerState = state, RoleName=roleName ; bool isSame
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省汉川市金益高级中学2025-2026学年高二上学期9月月考考试历史试卷
- 统编版2025-2026学年三年级语文上册期末测试卷(含答案)
- 分布式能源网络-洞察及研究
- 黑龙江省大庆市肇州县(五四制)2026届九年级上学期开学考试历史试卷(含答案)
- 安徽省亳州市利辛县2024-2025学年九年级上学期第三次月考生物试题(含答案)
- 部门安全培训的意义
- 跨境数据合规分析-洞察及研究
- 2023学年八年级(下)期中学情调查语文试题及答案
- 基于区块链的脱皮仁全生命周期溯源体系构建与数据安全挑战
- 基于人工智能的甲基氯苯胺类化合物生产过程多目标动态优化模型构建
- 车辆赠与协议模板
- 中国移动通信网运行维护规程(修订版)
- 烧结岗位安全操作培训-PPT课件
- 【课件】1.2 点线传情——造型元素之点线面 课件-2021-2022学年高中美术人美版(2019)选修绘画
- Q∕GDW 11445-2015 国家电网公司管理信息系统安全基线要求
- 运动处方(课堂PPT)
- 物资储备与物流方案
- 财务报销流程培训PPT模板课件
- 关于加强铁路企业年金管理的指导意见
- 幼儿园体检结果分析评价表
- 资金筹集业务核算培训教材(共39页).ppt
评论
0/150
提交评论