1、 课程设计说明书 课程设计名称: 数据库课程设计 课程设计题目: 客户资源管理系统 学 院 名 称: 信息工程学院 专业: 计算机科学与技术 班级: 学号: 08 姓名: 评分: 教师: 20 13 年 1 月 6 日 客户资源管理系统
2、 一、需求分析: 信息科技的发展,极大地推动了生产力,同样在商业领域,效率意味生命,如何在客户资源管理方面,取得高效,合理及可靠管理系统, 给我们提出了一个新的问题。 我想我们的设计思路在大的方面,无非是合理的设计数据库模式,以及选好前台界面开发语言。想法是好的,同样,对于初涉研发者,理想与苦难共存,就像沙子中的黄金,喜悦便是发现黄金的笑颜,困难便是沙子,我们要做的工作便是淘去沙子。 1、 同过系统的安全验证 2、 定义客户的类型信息(客户地区、职业、行业) 3、 对客户类型信息修改和删除 4、 定义客户的详细信息(姓名、年龄、行业、联系方式、爱好) 5、 对各户详细
3、信息修改和删除 6、 对客户资源的编辑与查询 功能模块划分: 二、系统功能分析 系统流程图: 三、系统结构设计 E-R图: 分析:实际情况,就是从白话语言,寻找关系;为了唯一标示客户一般要对客户进行编码ID,客户对于一个企业关心的一般有姓名、所在地、行业、职业、所在单位、结实途径、E-mail,电话号码、兴趣爱好和注备;我们的困难在于模型的建立要么在大量的数据区分相同与不同,要么思考可能成为一个关系的属性; E—R图:并统计部分基本表对公司前景规划有用的信息! 基本表: approach_info_tab表的属性 approach_id int 主键,非空 app
4、roach char(10) Approach_num int approach_id approach approach_num 1 同学 0 2 同事 0 3 会展 0 4 俱乐部 0 5 室友 0 area_info_tab表属性: area_id int 主键,非空 area char(10) area_num int area_id area name area num 1 北京 0 2 上海 0 3 天津 0 4 重庆 0 5 广州 0 6 佛山 0 7 东莞
5、 0 8 珠海 0 9 深圳 0 10 武汉 0 11 南京 0 12 苏州 0 13 杭州 0 14 温州 0 15 孟州 0 16 厦门 0 17 南昌 0 18 福州 0 19 九江 0 20 郑州 0 Profession_info_tab表属性: profession_id int 主键,非空 profession char(10) profession_id profession 1 董事长 2 总经理 3 市场经理 4 销售经理 5 研发经理 6 软件工程师
6、 7 硬件工程师 8 技术总监 9 项目经理 10 销售总监 11 物流经理 12 销售代表 13 企业策划 14 广告策划 15 会计 16 证劵经纪人 17 投资顾问 18 财务总监 19 注册分析师 20 摄影师 vocation_info_tab表属性: vocation_id int 主键,非空 vocation char(10) vocation_id vocation 1 娱乐 2 体育 3 教育 4 卫生 5 交通 6 环保 7 保险 8 制造业 9 服务业 10
7、 房地产 11 政府 12 科研 Customer_info_tab表属性: id int 主键,非空 name char(10) Area Char Profession Char Vocation Char company char(10) approach Char(10) e—mail char(10) phone char(10) interest char(10) memo char(100) id name company email phone interest mem
8、o area vocation profession approach 1 张三 微软 11 11 打球 。。 北京 制造业 设计师 同学 2 李四 百度 22 22 跳舞 。. 武汉 教育 财务总监 会展 3 王二 谷歌 33 33 唱歌 。。 上海 保险 董事长 订单 四、数据库对象的设计及实现 创建视图代码: 1、create view approach_view (approach_id,approach,approach_num) as select * from approach_info_tab
9、 2、create view area_view as select * from area_info_tab 3、create view customer_view as select * from customer_info_tab 4、create view profession_view as select * from profession_info_tab 5、create view vocation_view as select * from vocation_info_tab 创建索引: 1、 create index 地区 on area_
10、info_tab(area_name); 2、 create index 途径 on approach_info_tab(approach_name); 3、 create index 姓名 on customer_info_tab(name); 4、 create index 专业 on profession_info_tab(profession); 5、 create index 行业 on vocation_info_tab(vocation); 创建触发器: 1、 创建一个触发器在顾客基本表中插入一个元组,我们公司所关注的信息自动统计信息,这里创建两个触发器,思想完全一样
11、若相关基本表没有的信息要插入进去,有的要自动加1;这里我们关注的是结实途径 create trigger approach_add on customer_info_tab for insert,update,delete as declare @approach_name char(10) select @approach_name= approach from inserted if(@approach_name=(select approach from approach_info_tab where approach=@approach_name)) upda
12、te approach_info_tab set approach_num=approach_num+1 where approach=@approach_name if not exists (select approach from approach_info_tab where approach=@approach_name) insert into approach_info_tab values(’6’,@approach_name,’0') 2、这里关注地区 create trigger area_add on customer_info_tab for
13、insert,update,delete as declare @area_name char(10) select @area_name= area from inserted if(@area_name=(select area from area_info_tab where area=@area_name)) update area_info_tab set area_num=area_num+1 where area=@area_name if not exists (select area from area_info_tab where ar
14、ea=@area_name) insert into area_info_tab values(’6’,@area_name,’0’) 这里的不足在于没有实现标号流水自动加以1; 附:前台设计: 设计前台的目的在于让没有专业教育的用户,可以轻松的进行操作,达到用户的目的;那么前台的思想是基于什么?我们借助的平台是什么?这里用的是VC++MFC平台,这个平台的最大好处是MFC提供了强大的模板,同样给像我这样新手菜鸟,也带来了困难,因为大量的模板函数对不熟悉的新手运用存在困难;不过我们对于windows界面的设计思想,要给与借鉴。我想再没有我举一个例子恰当了;那么我想举鼠标的设计思想
15、以点带面吧! windows中所有的消息是通过各自的名字来访问的,对不同的操作系统使用不同的数值来标记它们,一系列#define语句将消息与特定的数值相连; WM_LBOTTONDOWN 鼠标左键被按下时发送消息 WM_LBOTTONUP 鼠标左键被释放时发送消息 WM_LBOTTONDBLCLCK 鼠标左键被双击时发送消息 WM_MOUSEMOVE 鼠标被移动时发送消息 对鼠标消息来说,classwizard都会映射成类似afx_msg void OnXXXX的消息处理函数,例如鼠标按下左键映射消息函数OnButtonDown,具体函数原型 //afx_msg(MFC用于定
16、义消息函数的标志) void OnLbuttonDown(UINT nFlags,CPoint point) 简化理论:当点一下鼠标左键,就有一个消息发送出去,这个消息回映射一个消息函数,执行操作;键盘、窗口的按钮都是这种思想! 那么我们看看具体的设计界面吧! 让我们来看看这些空间列表吧:以地区信息管理为例 控件类型 ID 属性 变量或函数 Group Box IDC_STATIC 系统信息配置管理 Group Box IDC_STATIC 地区信息管理 Label IDC_STATIC 地区名 Edit Box IDC_EDIT_AREA 无
17、 CString变量m_strArea List Control IDC_List_AREA 无 Button IDC_AREA_ADD 添加 函数OnBtnAreaAdd Button IDC_AREA_MOD 修改 函数OnBtnAreaMod Button IDC_AREA_DEL 删除 函数OnBtnAreaDel 在进行数据库连接,关键在于“数据源(ODBC)”的配置,注意用户名与登录问题,成功界面如下: 我们现在面临的问题是如何打开数据库?运用何函数将数据显示在指定的编辑框?对于,目前菜鸟的我想如数家珍调用功能强大MFC来说,困难重重;与其说
18、模仿缺失,不如说是思想难以逾越;例如句柄工具,建立类向导的核心理念认识肤浅; 曾经听名师讲课,名师说大学是不断地画句号,而研究与设计要不断的画问号,这样论文才有价值! 我想,设计的产品时,我想像自己的用户是识字的傻瓜,界面要很友好;今天,我费力了画了一幅画,如死尸一般,我相信我有一天会画的活灵活现。 昨夜江边春水生, 艨艟巨舰一毛轻。 向来枉费推移力. 此日中流自在行。 我想,这个课设让我对于职业这个词语,更有深刻的认识,是的,职业需要长期也许人一生的努力,才有知识的果实,而非一时片刻,天才在于积累;面对功能强大的MFC编程,体会最为深刻! 注:本人说话爱用我们,即便是光杆司令一个,恶习难改啊;个人语言不妥,请见谅! 本人能力平平,面对自己美好的想法,力不从心;实验报告记录自己在实现想法所面临的 问题;些许没有如意的,但过程有一定的价值! 参考文献: 1、 王珊等.《数据库系统概论》 2、 《C++可视化编程》,北京理工出版社; 3、 《VC++与数据库实例设计》,清华大学出版社;






