1、客户信息管理系统设计报告题 目: 客户信息管理系统 专 业: 网页1班学号: 1303110112姓 名: 刘冰涛 指导教师: 胡迎久 1、 设计题目客户信息管理系统2、 设计目的和要求目的:利用 和实现客户信息管理系统。要求:使系统能运行正确,完成基本的功能如客户类型的增加、删除、查询和修改等。3、 设计内容(包括设计思路、设计实现)3.1需求分析客户信息系统需要完成的功能有:客户类型的建立与维护,包括客户类型的新建、修改和删除等。客户信息的输入,详细全面记录并管理客户信息和联系人信息,客户信息包括客户的基本信息,一般的通讯方式及客户其他信息,如爱好、禁忌、生日等。客户信息的修改和删除,包括
2、启动与取消客户的生日提醒等。方便实用的数据查询功能,根据不同条件查询客户,可以查看客户信息。3.2 总体设计本系统采用三层结构设计,即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。三层在实际的物理结构上也是独立的,业务逻辑处理层采用 实现,用户界面与业务逻辑分离,系统的安全性、可维护性、重要性和扩展性都大大提高。本系统也采用面向对象的设计,系统中将客户类型、客户等都封装成相应的类,同时每个类都有自己对应的集合类,从而再次提高了对数据库操作系统的安全性和程序的可扩展性。根据对系统功能的分析,我们可以把系统划分成客户类型管理模块、客户管理模块和提醒管理模块。系统的物理结构也分为三层,即用
3、户界面、组件和数据库。3.3 程序界面及核心代码3.1需求分析客户信息系统需要完成的功能有:1、客户类型的建立与维护,包括客户类型的新建、修改和删除等。2、客户信息的输入,客户信息包括客户的基本信息,一般的通讯方式及客户其他信息,如爱好、禁忌、生日等。3、客户信息的修改和删除,包括启动与取消客户的生日提醒等。4、根据不同条件查询客户,可以查看客户信息。3.2概念设计本系统采用三层结构设计,即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。三层在实际的物理结构上也是独立的,业务逻辑处理层采用 实现,用户界面与业务逻辑分离,系统的安全性、可维护性、重要性和扩展性都大大提高。本系统也采用面向
4、对象的设计,系统中将客户类型、客户等都封装成相应的类,同时每个类都有自己对应的集合类,从而再次提高了对数据库操作系统的安全性和程序的可扩展性。根据对系统功能的分析,我们可以把系统划分成客户类型管理模块、客户管理模块和提醒管理模块。系统的物理结构也分为三层,即用户界面、组件和数据库。系统功能模块图各实体间关系的图客户类型信息实体图客户信息实体图3.3逻辑设计(1)模式转换( )表:表:表:表:表:(2)模式规范化表、表、表、表、表均已经为范式(3)完整性约束设计实体完整性约束:表主键为 表主键为 表主键为 表主键为 表主键为参照完整性约束:表的参照表主键 表的参照表主键(4)外模式设计建立了一张
5、视图,用于显示每位客户的合作、提醒信息,语句如下: , , (5)典型应用设计客户类型管理模块:添加客户类型,修改客户类型,删除客户类型客户管理模块:客户信息管理,客户评价管理,客户合作管理提醒管理模块:查看今日提醒,提醒设置管理3.4物理设计内模式设计:主要包括索引、散列、簇集设计表:索引字段为,索引表达式为,索引类型为主索引表:索引字段为,索引表达式为,索引类型为主索引表:索引字段为,索引表达式为,索引类型为主索引表:索引字段为,索引表达式为,索引类型为主索引表:索引字段为,索引表达式为,索引类型为主索引3.5系统实现 主要模块及其核心代码如下:(1)客户类型管理模块:添加客户类型界面:核
6、心代码: ( = , _ = -1) (, , ) = 0 (, , ) = = = -1 = = (, ) = & ( & = & , & & = & ) (, ) = (, ) = = (2)客户管理模块:客户信息管理模块:添加客户界面:核心代码: ( = , _ = 0, _ = -1, _ = 0) 如果参数为缺省值,即未传入,则直接调用类中的参数,否则调用传入的参数 = 0 = -1 = 0 = 开始一个事务,以免费得到的值已被其它客户端所使用 此处调用方法,得到该类对应的数据表的下一个,即最大1 = (, ) = (, , , ) 构造语句,注意需调用去除字符串中的单引号,以及一些
7、语法的关键词加 = (, , , , , , , = & , , , , , , = & , , , , , , = & , , , , , ) = & ( = & & () & , 客户名称 = & & , 客户年龄 = & & , 性别 = & & , 客户类型 = & & () & , 手机 = & & () & , = & & () & , 办公室电话 = & & () & , 宅电 = & & () & , 传真 = & & () & , 家庭住址 = & & () & , 通讯地址 = & & () & , 邮编 = & & & , 生日 = & & , 是不启用生日提醒 = &
8、& () & , 职业 = & & () & , 职位 = & & () & , 公司 = & & () & , 公司网址 = & & () & , 个人网址 = & & () & , 喜好 = & & () & , 厌恶 = & & () & , 备注 = & & , 重要度 = & & , 友好度 = & 满意度 = & ) 执行语句,并提交事务 如果发生错误,则返回,表示未成功添加 = ( = 0) 查找客户界面:核心代码:按条件查找客户,以集合类的方式返回 ( = 0, _ = , _ = 0) 构造查询 = .* = & 0 = & & & 如果是按名称查询,则采用“包含”的查询方法
9、 = & % & () & % 0 = & & & = & 0 将查询结果加入集合类 = () i i = 1 = = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = () = i = = 客户评价管理模块:客户合作管理模块:添加合作信息界面:核心代码: ( = #1/1/1900#, _ = -1, _ = -1, _ = ) ( = #1/1/1900#, _ = -1, _ =
10、-1, _ = ) -1 = -1 = 上级合作信息的 = #1/1/1900# = = (, , , ) = & ( & = & , & & = & , & = & , & () & = & ) (, ) = (, ) = = (3)提醒管理模块:查看今日提醒界面:核心代码: 提醒信息 提醒类型 提醒类型名称 提醒客户 提醒客户名称 提醒显示消息 提醒显示时间 是否启用生日提醒启用生日提醒 ( ) = = * = _ & & = & = () = 0 , , 1, 今天是 & & 的生日,请做好准备。 = = = _ & & = & () () = 设计小结一开始听到要做课程设计时,就有一种
11、畏难心理,认为要编写一个几百甚至上千行的代码似乎不可能。但是世上无难事,只怕有心人,经过我们的努力和探索,终于完成了这次课程设计。此次课程设计不仅锻炼了我们独立思考和团队合作的能力,而且提高了我们动手的能力。还是在高中接触的半个学期的知识,只是一点皮毛,现在远远不够用。所以我们通过图书馆借阅参考书籍、在网上查阅相关资料,等于是把从头学起。我们了解了和其他数据库开发工具的对比,知道了它在具体到数据库开发方面时的优势,即:快速、简单和功能完备;学习到了三层的构架(客户端,组件层,数据库)的好处以及它的实现,如何通过用来访问数据库,怎样把和数据库连接起来等等问题,在短期内让我对有了基础认识,也让我之
12、后的课程设计可以少走弯路。这次课程设计还有很重要的收获是,我学到了如何合作完成项目。这次的客户信息管理系统是两人一组合作完成的,也给了我们一个与他人合作的机会。我主要负责系统中一些如添加客户、查询客户的主要功能的设计和代码编写,徐幸同学负责对主窗体的设计和代码编写以及数据库的表设计。然后把两部分结合,生成了我们现在看到的课程设计。两个人的合作对完成课题更快捷可是也会有矛盾,可是我们会在商量和讨论后有一个更完美折中的方法。合作完成的成就感丝毫不亚于一个人的成功,反而因为多了一个人跟你分享快乐变得更能体会付出之后换来的喜悦。当中也发生了一段小插曲,我们编译、调试都没问题,但在对文件的运行过程中,发现运行不了。后来查阅了资料,才知道 在脱离了开发环境后,首次使用前必须注册。注册的命令虽然很简单,但是在这种找到错误,学习纠正的过程中,我们这次的课程设计也更具有了意义。完成一个设计需要考虑很多方面,甚至是一些小细节也不能放过。通过这次的课程设计,我学到了很多,充实了自己的专业知识,为我以后的学习和设计增加了经验。