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