辽宁工业大学管理信息系统设计课程设计报告(论文)题目:企业客户资源管理系统的分析与设计院(系):软件学院专业班级:软件工程112学号: 111301052学生姓名:安凯辰指导教师:翟宝峰教师职称:副教授起止时间: 2012.5.28--2012.6.8课程设计(论文)任务及评语目录第一章系统分析 (1)1.1需求分析 (1)1.2系统业务流程图 (1)1.3数据字典 (2)第二章系统设计 (4)2.1结构设计 (4)2.1.1 概念设计 (5)2.1.2 逻辑设计 (6)2.1.3 物理设计 (8)2.2行为设计 (9)2.2.1 总体设计 (9)2.2.2 模块设计 (10)第三章系统实现 (14)3.1数据库实现 (14)3.2系统实现 (14)第四章总结 (16)参考文献 (17)第一章系统分析1.1需求分析需求分析是软件生命周期的一个重要阶段,它根本的任务是确定为了满足用户的需要必须做什么。
具体地说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景,必须仔细分析系统中的数据,既要分析系统中的数据流。
又要分析长期使用的数据存储,通过分析应该得出用业务流图、数据字典,可行性分析等内容为系统的设计奠定基础。
企业客户资源管理简单的说就是对客户的一些资料进行有效的管理,以前我们是人工来管理客户的信息,但如今已是信息化时代,我们需要通过计算机技术来对其进行高效的管理才能有利于一个企业更好的发展。
客户管理系统是一个智能化的信息处理系统,它将企业的经营、管理以客户为中心,通过系统管理员就可以轻松有效的对客户的信息进行操作管理。
企业的客户资源管理往往是很复杂、很繁琐的。
由于所掌握的客户资源种类众多,订货人、管理、发放的渠道各有差异,各个企业之间的客户资源管理体制不尽相同,各类统计报表繁多,因此客户资源管理必须编制一套客户资源管理系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。
根据当前的企业客户资源管理体制,一般的客户资源管理系统,总是根据所掌握的客户资源类别,相应分成几个科室来进行物资的计划,订货,核销托收,根据企业各个部门的需求来发送物资设备,并随时按期进行客户资源盘点,作台帐,根据企业领导和自身管理的需要按月、季度、年度进行统计分析,产生相应报表。
为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际纤毫定额的比较,进行定额管理,使得资金使用合理,物资设备的储备最佳。
一个完整的客户资源管理系统应包括资料管理、我方信息管理、系统分析、用户管理系统维护,因此有必要开发一套独立的客户资源管理系统来提高企业工作效率, 而所使用的这套客户资源管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的客户资源,使企业生产活动效率最大化。
1.2系统业务流程图根据当前发展形势,企业客户资源管理已成为现代企业战略规划中不可缺少的部分,也是现代企事业办公自动化的基础和前景。
基于它的重要性,而设计出工资管理系统。
它对相应的模块能基本实现添加记录、删除记录、查询、更新、打印报表等功能,能基本满足用户的需求。
可以确定系统的处理逻辑和流程,得到系统业务流图如图1.1所示:图1.1系统业务流图1.3数据字典数据词典描述的主要内容有:数据流、数据元素、数据存储、加工、外部项,其中数据元素是组成数据流的基本成分。
本系统数据字典如下:图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图图2.5企业基本信息实体E-R图2.1.2 逻辑设计企业客户资源管理系统主要包括5个数据表,分别是企业基本信息表,客户信息表,员工信息表,用户信息表,物资信息表。
企业基本信息表主要介绍了企业的一些基本的信息内容,有企业的名称,法人代表等等信息;客户信息表主要介绍了客户的姓名,客户的地址以及其它的一些详细信息;员工信息表主要介绍了员工的姓名,年龄,员工的最高学历等一些信息;用户信息表主要介绍了用户的一些基本信息;物资信息表主要介绍了货物的一些信息。
下面列出几个主要的数据库表设计:表2.1企业基本信息表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 = "" ThenMsgBox "请输入用户名"txtUser.SetFocusExit SubEnd IfIf txtPwd = "" ThenMsgBox "请输入密码"txtPwd.SetFocusExit SubEnd IfNameKey = MakeStr(txtUser)PasswordKey = MakeStr(txtPwd)判断用户是否存在If MyUser.In_DB(NameKey) = False ThenMsgBox "用户名不存在"Try_times = Try_times + 1If Try_times >= 3 ThenMsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭" DBapi_DisconnectEndElseExit SubEnd IfEnd If判断密码是否正确If MyUser.GetPwd(NameKey) <> PasswordKey ThenMsgBox "密码错误"Try_times = Try_times + 1If Try_times >= 3 ThenMsgBox "您已经三次尝试进入本系统,均不成功,系统将关闭" DBapi_DisconnectEndElseExit SubEnd IfEnd If登录成功,将当前用户的信息保存在CurUser中erName = erName关闭自己Unload MeEnd Sub2.用户管理模块Private Sub Form_Load()'装入客户类别MyType.LoadCltTypeComboType.ClearComboType.AddItem "全部"i = 0Do While Arr_CltTypeName(i) <> ""ComboType.AddItem Arr_CltTypeName(i)i = i + 1LoopComboType.ListIndex = 0'装入客户职务MyJob.LoadCltJob (MyType.GetId(ComboType.Text)) ComboJob.ClearComboJob.AddItem "全部"i = 0Do While Arr_CltJob(i) <> ""ComboJob.AddItem Arr_CltJob(i)i = i + 1LoopComboJob.ListIndex = 0'客户等级ComboLevel.ListIndex = 0ComboArea.Text = ""CurArea.InitRefresh_Clt (False)End Sub3.系统主窗体Private Sub lblUsers_Click()If Format(erName, "<") = "admin" Then FrmUserMan.Show 1ElseWith FrmUserEdit.OriUser = erName.txtUserName = erName.txtPass = CurUser.Pwd.txtPass2 = CurUser.Pwd.Modify = True.Show 1End WithEnd IfEnd Sub第三章系统实现3.1数据库实现图3.1数据库关系图3.2系统实现1.系统登录界面3.2系统登录界面2.系统用户信息查询界面图3.3系统用户信息查询界面3.修改密码界面图3.4修改密码界面4.修改系统用户信息界面图3.5修改系统用户信息界面5.系统用户信息查询界面图3.6系统用户信息查询界面第四章总结通过自己的努力和在指导老师的全面指导下,该客户资源管理系统最终得以完成。