管理信息系统课程设计企业客户资源管理系统.doc
辽 宁 工 业 大 学 管理信息系统设计课程设计报告(论文)题目: 企业客户资源管理系统的分析与设计 院(系): 软件学院 专业班级: 软件工程112 学 号: 111301052 学生姓名: 安凯辰 指导教师: 翟宝峰 教师职称: 副教授 起止时间: 2012.5.28-2012.6.8 课程设计(论文)任务及评语院(系):软件学院 教研室:软件教研室学 号111301052学生姓名安凯辰专业班级软件工程112班课程设计(论文)题目企业客户资源管理系统的分析与设计课程设计(论文)任务管理信息系统课程设计作为独立的教学环节,是电子商务专业集中实践性环节系列之一,是学习完管理信息系统课程并进行完专业实习后进行的一次全面的综合练习。任务:采用结构化的系统开发方法,应用具体的计算机语言(如PB、VB、Delphi)和数据库(SQL、Access)等技术,按照软件工程的思想,开发一个实用的中小型管理信息系统,完成企业客户资源管理系统的分析设计实施工作,实现该系统对客户资料的详细功能,并完成结合分析设计过程,撰写系统设计说明书(课设报告)。1根据课程设计时间选择适当规模大小的设计课题。采用专业实习的调研内容作为课程设计选题。2根据合理的进度安排,按照系统开发的流程及方法,踏实地开展课程设计活动。3课程设计过程中,根据选题的具体需求,在开发各环节中撰写相关的技术文档,最后提交详细的课程设计报告。4开发出可以运行的管理信息系统,通过上机运行检查。5设计说明书要求文档齐备,步骤全整,流程正确,说明详细,具有有可操作性。指导教师评语及成绩成绩: 指导教师签字: 2012年6月12日目 录第一章系统分析11.1需求分析11.2系统业务流程图11.3数据字典2第二章 系统设计42.1结构设计42.1.1 概念设计52.1.2 逻辑设计62.1.3 物理设计82.2行为设计92.2.1 总体设计92.2.2 模块设计10第三章 系统实现143.1数据库实现143.2系统实现14第四章 总结16参考文献17第一章 系统分析1.1需求分析需求分析是软件生命周期的一个重要阶段,它根本的任务是确定为了满足用户的需要必须做什么。具体地说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景,必须仔细分析系统中的数据,既要分析系统中的数据流。又要分析长期使用的数据存储,通过分析应该得出用业务流图、数据字典,可行性分析等内容为系统的设计奠定基础。企业客户资源管理简单的说就是对客户的一些资料进行有效的管理,以前我们是人工来管理客户的信息,但如今已是信息化时代,我们需要通过计算机技术来对其进行高效的管理才能有利于一个企业更好的发展。客户管理系统是一个智能化的信息处理系统,它将企业的经营、管理以客户为中心,通过系统管理员就可以轻松有效的对客户的信息进行操作管理。企业的客户资源管理往往是很复杂、很繁琐的。由于所掌握的客户资源种类众多,订货人、管理、发放的渠道各有差异,各个企业之间的客户资源管理体制不尽相同,各类统计报表繁多,因此客户资源管理必须编制一套客户资源管理系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。 根据当前的企业客户资源管理体制,一般的客户资源管理系统,总是根据所掌握的客户资源类别,相应分成几个科室来进行物资的计划,订货,核销托收,根据企业各个部门的需求来发送物资设备,并随时按期进行客户资源盘点,作台帐,根据企业领导和自身管理的需要按月、季度、年度进行统计分析,产生相应报表。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际纤毫定额的比较,进行定额管理,使得资金使用合理,物资设备的储备最佳。 一个完整的客户资源管理系统应包括资料管理、我方信息管理、系统分析、用户管理系统维护,因此有必要开发一套独立的客户资源管理系统来提高企业工作效率, 而所使用的这套客户资源管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的客户资源,使企业生产活动效率最大化。1.2系统业务流程图根据当前发展形势,企业客户资源管理已成为现代企业战略规划中不可缺少的部分,也是现代企事业办公自动化的基础和前景。基于它的重要性,而设计出工资管理系统。它对相应的模块能基本实现添加记录、删除记录、查询、更新、打印报表等功能,能基本满足用户的需求。可以确定系统的处理逻辑和流程,得到系统业务流图如图1.1所示:系统登录系统登录系统主窗体系统分析系统维护帮助是否管理员资料管理我方信息管理用户管理图1.1系统业务流图1.3数据字典数据词典描述的主要内容有:数据流、数据元素、数据存储、加工、外部项,其中数据元素是组成数据流的基本成分。本系统数据字典如下:名称:员工描述:记录企业员工信息定义:员工=员工姓名+员工编号+员工性别+员工学历+所在部门+当前学历位置:据数库qykhzygl名称:客户描述:记录企业客户信息定义:客户=客户姓名+客户级别+客户来源+所属行业+邮政编码+位置:数据库qykhzygl名称:企业基本信息描述:描述企业基本信息定义:企业名称+法人代表+联系电话+E-mail地址+联系地址+企业网址位置:数据库qykhzygl名称:货物描述:描述货物信息定义:货物编号+货物名称+货物类型+货物规格+计量单位+进出货物+价格位置:数据库qykhzygl图1.2数据字典第二章 系统设计2.1结构设计其实一个系统的总体设计一般都是由两个阶段组成:系统设计,用来确定系统的具体实施方案;结构设计,用来确定系统软件的具体结构。系统设计是从系统的总体目标出发,根据我们在需求分析阶段对系统逻辑功能的要求来考虑系统所要用到的技术以及经济开销和系统的运行环境等方面的条件,确定系统的总体设计方案,从而确保系统的总体目标的实现。系统分为多个模块,各个模块之间没有过多的相互作用,每个模块完成一个相应的子功能,从而实现模块的独立化。由于模块的独立程度又由内聚和耦合两个标准来进行衡量,因此要做到模块的独立化就得尽量使模块的划分做到高内聚和低耦合。耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块之间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据,在软件设计中应该追求尽可能低耦合的系统。由此可知影响软件复杂程度的一个重要因素就是耦合,所以我们在开发系统时应该采取以下的设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。系统的总体设计目标就是为了建立一个统一的信息管理平台,以公司经营的客户群为中心来对客户的详细信息进行有效的管理,加强同客户的交流和感情的建立,从而提高客户对公司的满意程度,也为公司的不断发展起到推动性的作用。其实本系统要实现的一系列操作都是在对数据进行操作,也主要就是对数据进行增加、修改、查询和删除四项操作。那么对数据如何去实现有效的管理,则需要对其进行认真的分析和设计。通过对本系统的分析后,本系统需要达到的主要设计目标有:1、首先我们应该确定,系统的最终效果要达到一个友好的人机交互模式,系统界面简洁友好,信息的查询要灵活、方便、快捷和准确。2、系统的管理员对系统的不同用户要分配不同的权限。3、系统用户可随时修改自己的口令。4、对系统用户的输入数据要作严格的验证,尽可能排除可能出现的错误。5、系统各个模块的增、删、改、查要设计得当。6、系统要有相应的帮助信息,以便用户在操作过程中查看。7、系统运行要稳定,而且也要安全可靠。结构化设计方法就是把数据流图表示的逻辑模型用结构图层次的方式表现出来。结构化设计的核心其实就是把模块分解设计,采用自顶向下、逐层分解的方法,从而把整个系统划分成多个子模块,使其完成不同的功能,这样也就使得模块具有了一定的独立性,最终降低了系统的复杂性。2.1.1 概念设计有了数据和数据结构以后,就可以设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。我所设计的实体包括:客户信息实体,员工信息实体,企业基本信息实体,货物基本信息实体,竞争对手信息实体。具体的实体E-R图如下:客户信息客户来源所属行业客户类别所在区域传真号码联系电话图2.1客户实体E-R图员工信息员工编号员工名称员工性别员工学历所在部门当前职务图2.2员工实体E-R图货物信息货物编号货物名称货物类型货物规格计量单位图2.3货物实体E-R图竞争对手对手编号所属行业规模大小联系电话对手名称联系地址图2.4竞争对手实体E-R图企业名称企业基本信息法人代表联系电话联系地址企业网址E-mail地址图2.5企业基本信息实体E-R图2.1.2 逻辑设计企业客户资源管理系统主要包括5个数据表,分别是企业基本信息表,客户信息表,员工信息表,用户信息表,物资信息表。企业基本信息表主要介绍了企业的一些基本的信息内容,有企业的名称,法人代表等等信息;客户信息表主要介绍了客户的姓名,客户的地址以及其它的一些详细信息;员工信息表主要介绍了员工的姓名,年龄,员工的最高学历等一些信息;用户信息表主要介绍了用户的一些基本信息;物资信息表主要介绍了货物的一些信息。下面列出几个主要的数据库表设计:表2.1企业基本信息表字段名数据类型长度描述CnameVarchar50企业名称CmangerVarchar20法人代表CphoneVarchar20联系电话CpostCodeBigint8邮政编码CfaxVarchar20传真号码CemailVarchar50E-mail 地址CNAddressVarchar50企业网址CaddressVarchar100联系地址CremarkVarchar100备注表2.2客户信息表字段名数据类型长度主键否描述ClientIDVarchar20主键客户编号CnameVarchar50否客户名称CstepVarchar20否客户级别CrootVarchar20否客户来源CtradeVarchar20否所属行业CtypeChar10否客户类别CareaVarchar50否所在区域CphoneVarchar20否联系电话CfaxVarchar20否传真号码CpostCodeBigint8否邮政编码CaddressVarchar50否联系地址CemailVarchar50否E-mail地址CremarkVarchar100否备注表2.3员工信息表字段名数据类型长度主键否描述EIDVarchar20主键员工编码EnameVarchar20否员工姓名EsexChar4否员工性别EbirthdayVarchar20否员工生日EwdateVarchar20否工作日期EdiplomaChar10否员工学历EdepartmentVarchar50否所在部门EpositionVarchar20否当前职务EtypeVarchar20否员工类型表2.4物资信息表字段名数据类型长度描述GidVarchar20货物编码GnameVarchar50货物名称GtypeVarchar50货物类型GspecVarchar50货物规格GipriceMoney8进货价格GopriceMoney8售货价格GunitChar10计量单位GremarkVarchar1000备注表2.5用户信息表字段名数据类型长度主键否描述UseridVarchar20主键用户编号UserNameVarchar20否用户名称UserPwdVarchar20否仓库名称UserRightChar10否货物规格2.1.3 物理设计在数据库中创建索引时,查询所使用的索引信息存储在索引页中。连续索引页由从一个页到下一个页的指针链接在一起。当对数据的更改影响到索引时,索引中的信息可能会在数据库中分散开来。重建索引可以重新组织索引数据(对于聚集索引还包括表数据)的存储,清除碎片。这可通过减少获得请求数据所需的页读取数来提高磁盘性能。 在 SQL Server 2000 中,如果要用一个步骤重新创建索引,而不想删除旧索引并重新创建同一索引,则使用 CREATE INDEX 语句的 DROP_EXISTING 子句可以提高效率。这一优点既适用于聚集索引也适用于非聚集索引。 以删除旧索引然后重新创建同一索引的方式重建聚集索引,是一种昂贵的方法,因为所有二级索引都使用聚集键指向数据行。在一个步骤中重新创建索引时,会告诉 SQL Server 要重新组织现有索引,避免了删除和重新创建非聚集索引这些不必要的工作。该方法的另一个重要优点是可以使用现有索引中的数据排序次序,从而避免了对数据重新排序。这对于聚集索引和非聚集索引都十分有用,可以显著减少重建索引的成本。另外,通过使用 DBCC DBREINDEX 语句,SQL Server 还允许对一个表重建一个或多个索引,而不必单独重建每个索引。DBCC DBREINDEX 也可用于重建执行 PRIMARY KEY 或 UNIQUE 约束的索引,而不必删除并创建这些约束(因为对于为执行 PRIMARY KEY 或 UNIQUE 约束而创建的索引,必须先删除该约束,然后才能删除该索引)。2.2行为设计2.2.1 总体设计企业客户资源管理系统主要由资料管理、我方信息管理、系统分析、用户管理、系统维护、和帮助等模块组成,具体规划如下。1.资源管理模块该模块主要用于实现区域信息管理、客户资料管理和竞争对手信息管理等功能。2.我方信息管理模块该模块主要用于实现企业基本信息管理、员工信息管理、货物信息管理和重大历史管理等功能。3.系统分析模块该模块主要用于实现客户的级别分析和来源分析等功能。4.用户管理模块该模块主要用于实现用户管理、更改密码和权限设置等功能。5.系统维护模块该模块主要用于实现数据备份、还原和清理功能。6.帮助模块该模块主要用于实现窗体布局、关于我们、重新登录和退出等功能系统的结构功能图如下:企业客户资源管理系统资料管理信息管理系统分析系统维护帮 助区域信息管理客户资料管理竞争对手管理基本信息管理员工资料管理货物资料管理重大历史事件客户级别分析客户来源分析用户管理用户管理更改密码设置权限数据备份数据还原数据清理退出系统重新登录关于我们图2.7系统结构功能图2.2.2模块设计1.用户登录模块Private Sub Cmd_OK_Click() Dim j As Single'数据有效性检查 If txtUser = "" Then MsgBox "请输入用户名" txtUser.SetFocus Exit Sub End If If txtPwd = "" Then MsgBox "请输入密码" txtPwd.SetFocus Exit Sub End If NameKey = MakeStr(txtUser) PasswordKey = MakeStr(txtPwd)判断用户是否存在 If MyUser.In_DB(NameKey) = False Then MsgBox "用户名不存在" Try_times = Try_times + 1 If Try_times >= 3 Then MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭" DBapi_Disconnect End Else Exit Sub End If End If判断密码是否正确 If MyUser.GetPwd(NameKey) <> PasswordKey Then MsgBox "密码错误" Try_times = Try_times + 1 If Try_times >= 3 Then MsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭" DBapi_Disconnect End Else Exit Sub End If End If登录成功,将当前用户的信息保存在CurUser中 CurUser.UserName = MyUser.UserName关闭自己 Unload MeEnd Sub2.用户管理模块Private Sub Form_Load() '装入客户类别 MyType.LoadCltType ComboType.Clear ComboType.AddItem "全部" i = 0 Do While Arr_CltTypeName(i) <> "" ComboType.AddItem Arr_CltTypeName(i) i = i + 1 Loop ComboType.ListIndex = 0 '装入客户职务 MyJob.LoadCltJob (MyType.GetId(ComboType.Text) ComboJob.Clear ComboJob.AddItem "全部" i = 0 Do While Arr_CltJob(i) <> "" ComboJob.AddItem Arr_CltJob(i) i = i + 1 Loop ComboJob.ListIndex = 0 '客户等级 ComboLevel.ListIndex = 0 ComboArea.Text = "" CurArea.Init Refresh_Clt (False)End Sub3.系统主窗体Private Sub lblUsers_Click() If Format(CurUser.UserName, "<") = "admin" Then FrmUserMan.Show 1 Else With FrmUserEdit .OriUser = CurUser.UserName .txtUserName = CurUser.UserName .txtPass = CurUser.Pwd .txtPass2 = CurUser.Pwd .Modify = True .Show 1 End With End IfEnd Sub第三章 系统实现3.1数据库实现图3.1数据库关系图3.2系统实现1.系统登录界面3.2系统登录界面2.系统用户信息查询界面图3.3系统用户信息查询界面3.修改密码界面图3.4修改密码界面4.修改系统用户信息界面图3.5修改系统用户信息界面5.系统用户信息查询界面图3.6系统用户信息查询界面第四章 总结通过自己的努力和在指导老师的全面指导下,该客户资源管理系统最终得以完成。系统充分的运用到了SQL数据库、VB等知识,使系统的层次性分明,各模块之间的耦合度降低。系统总共实现了六大功能模块,其分别是:系统管理、客户管理、合同管理、流程管理、销售管理和产品管理。所有的模块中基本都实现了增、删、改、查四项数据操作功能。系统整体界面给人一种清爽、简洁、友好的感觉,系统操作简单明了,若有疑惑还可查询系统帮助信息。由于系统设计到的方面较多,在技术上还有一定的难度,所以,系统的安全性做的不够好,也主要体现在系统管理模块下的权限管理子模块。但总的来说,用心的去完成此系统对我是一次极大的收获。在整个系统的开发过程中,它让我把以往的知识很好的回顾了一遍,同时也让我学到了一些新的知识和技术。在开发中让我感受颇深的那就是在调试程序的时候了,当我写完一个功能代码后,一调试结果不是报602错误就是报500错误,并且全是英文显示,着实让我头痛了一阵,特别是在有的时候一个小小的大意就会导致你找半天的错,最可恶的是程序出现了异常却根本不给你报任何错误,那你就得学会耐心去仔细的查找了。不过在我不断的学习总结,上网查找资料,这让我对系统的开发变得越来越熟悉,从而也使自己分析问题和解决问题的能力有了一定的提高。在这次设计的系统开发过程中对我来说,确实是很幸苦的,因为你得学会自己去解决问题,去查找知识和技术,但是通过自己实实在在的去做完系统后,我的收获却是很大的。我从中学到了以下几点:学会自己去解决问题,寻求问题的答案,即自我学习能力和解决问题的能力;做事一定要仔细,不可粗枝大叶;做事之前一定要周密的思考,全面分析你要去面对的事情,不可走一步做一步;遇到问题时不可浮躁,要有耐心,从而最终解决问题;学习之后要善于对其进行总结分析,这样你才能真正的不断进步。参考文献1姜旭平主编,信息系统开发方法,北京,清华大学出版社,19972Kenneth C.Laudon 主编,管理信息系统,北京:清华大选出版社,19983EZHUBI ZZ主编,管理细小系统案例,北京:机械工业出版社,19984斯蒂芬-哈格主编,信息时代的管理信息系统,北京:机械电子工业出版社,19985张玉红主编,管理信息系统程序设计技术,北京:电子工业出版社,19966.张树亮. SQL Server开发案例精解.北京清华大学出版社.20077.郑阿奇.SQL Server实用教程.北京电子工业出版社.20058田文胜.Visual Basic编程指南.第一版.清华大学出版社.20039童爱红.Visual Basic数据库编程.北京交通大学出版社.200410王劲松.中文Visual Basic5.0编程.第一版.北京航空航天大学出版社.1998