计算机专业课程设计-客户管理系统课程设计_第1页
计算机专业课程设计-客户管理系统课程设计_第2页
计算机专业课程设计-客户管理系统课程设计_第3页
计算机专业课程设计-客户管理系统课程设计_第4页
计算机专业课程设计-客户管理系统课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计客户管理系统课程设计报告学院:专业年级:姓名:学号:指导教师:目录一系统概述二功能需求分析及说明(一)分析系统(二)系统需要实现的功能三系统设计说明(一)项目规划(二)系统功能结构(三)系统设计(四)开发及运行环境(五)数据库设计四技术准备(一)数据库的封装(二)封装ADO数据库的代码分析五本系统功能模块(一)登陆功能(二)客户信息维护:1客户信息2联系人信息3业务往来4客户呼叫中心(三)客户服务1客户反馈(四)信息查询1客户信息查询2联系人信息查询(五)基础信息维护1区域性质设置2企业性质设置(六)系统功能1增加操作员2修改密码3退出系统六课程设计总结(一)实训遇到的问题及解决办法(二)心得体会一系统概述:科技的发展、时代的进步,市场经济的竞争也越发激烈与残酷,在竞争中客户作为市场的最最要的资源,早已成为市场营销的核心,企业间谁拥有的客户多,谁就在竞争中占有绝对的优势。在市场经济竞争如此激烈的环境之下,企业要想立于不败之地,就必须和与之生存发展息息相关的客户,建立起良好的关系,在现有客户资源的基础之上,维护好和老客户的关系,并且不断的发展新的客户,用企业高品质的产品、优质的服务、良好的信誉树立企业在客户心目中的良好形象;并以客户需求为己任,不断的创新与发展自身的产品,以满足客户新需求,并规范企业内部的客户资源的管理方式、提升企业的客户服务质量。计算机管理系统满足了企业对自身客户资源管理的新要求,减少了客户资源管理过程中的浪费的大量人力、物力和财力等。本系统具有完善的基础信息维护和客户信息维护功能,并增置了客户服务模块,满足了客户日常管理的需求;强大的数据查询及图表分析功能,帮助企业能够及时根据分析结果进行新规划和方案,以适应变化万千的消费市场。客户管理系统后台数据库采用SQLServer2000数据库,以保证数据的安全、高效和稳定。前台采用Microsoft公司的VisualC++6.0作为主要的开发工具,其可与SQLServer2000数据库无缝链接。二功能需求分析及说明分析系统:本系统通过访问到数据库,使操作员可以对数据库的客户数据表进行各种处理,使对数据的录入转换成人性化的界面录入,实现本地或者远程访问数据库,满足个人、企业等用户方便地对数据进行管理的需求。(二)系统需要实现的功能:基本功能:系统登录:输入用户名和密码,进行登录;客户信息维护模块:输入和编辑客户信息;信息查询模块:客户信息查询,联系人信息查询等;系统管理模块:增加操作员,密码修改以及退出系统。扩展功能:基础信息维护模块:包括区域信息设置,企业性质设置,企业类型设置,企业资信设置,客户级别设置以及客户满意度设置;客户服务模块:包括客户反馈和客户投诉;VIP客户模块及有针对性的服务。三系统设计说明:(一)项目规划客户管理系统所涉及的信息非常的全面,主要由客户信息录入、联系人信息录入、信息查询和系统管理等几个功能模块组成,系统管理模块主要包括操作员设置、密码修改和系统退出。(二)系统功能结构客户管理系统的功能结构如图1所示。客户管理系统功能架构图(三)系统设计设计目标本系统属于典型的数据库管理系统,是针对中小型企业生产管理开发设计的,实现进一步的计算机化的管理。通过本系统可以达到以下目标:灵活的运用表格批量输入数据,使信息传递更快捷。系统采用良好的人机对话模式,界面设计美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠。键盘操作,快速响应。实现各种查询及打印等。操作员可以随时修改自己的口令。管理员可以设置操作员的权限对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。数据保密性强,为每个用户设置权限级别。系统运行稳定、安全可靠。(四)开发及运行环境系统开发平台:VisualC++6.0。数据库管理系统软件:SQLServer2000。运行平台:Windowsxp(五)数据库设计本系统数据库采用SQLServer2000数据库,系统数据库名称为db_Client。数据库db_SCGL中包含13张数据表。下面分别给出数据表概要说明和主要数据表的结构。数据表概要说明:从读者角度出发,使读者对本系统后台的数据库中数据表有一个更清晰的认识,在此特设计一个数据库中数据表列表,该数据表列表包含系统所有数据表,如图2所示。四技术准备(一)数据库的封装调用数据库的方式有很多,主要有DAO、ODBC、ADO,但使用起来比较灵活的是ADO,直接引用ADO的方法是在头文件StdAfx.h中加入如下代码:#import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","adoEOF")rename("BOF","adoBOF")然后在要用的ADO的类中加入两个指针的定义就可以应用ADO了_ConnectionPtrm_pConnection;_RecordsetPtrm_pRecordset;(二)封装ADO数据库的代码分析对ADO的封装主要是将引用ADO的代码加到自定义的类中,并引用头文件StdAfx.h即可,对ADO进行封装的代码如下:头文件ADO.H声明如下:#import"C:\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","adoEOF")classado{public: _ConnectionPtrm_pConnection; _RecordsetPtrm_pRecordset;public: ado(); virtual~ado(); voidclose(); boolMovePrevious();//向上移动 boolMoveLast();//最后一条 boolMoveNext();//向下移动 boolMoveFirst();//最后一条 intGetRecordCount();//获得记录个数boolOpen(CStringsrecordset,UINTadCmd); voidGetErrors(_com_erroreErrors);//获得错误信息 CStringGetFieldValue(CStringField);//获得字段值 boolMove(intnRecordNum);//移动记录 voidExecuteSQL(CStringSQL);//执行SQL语句 voidrstOpen(CStringTSQL);//打开记录集};五本系统功能模块主要功能模块设计:(一)登陆功能:提供操作员的登录功能,拒绝非法用户访问数据库。登陆成功后就进入到主窗体,就可以对客户管理系统的各个模块进行调用,主要有菜单调用和工具栏按钮调用两种,如图所示。(二)客户信息维护2.1客户信息可以实现客户基本信息的添加、删除和修改,进行客户信息中上一条,下一条,第一条和最后一条信息的操作,能够用列表显示数据表中全部信息。程序运行如图所示。2.2联系人信息可以实现联系人基本信息的添加、删除和修改,进行上一条,下一条,第一条和最后一条的操作,用列表方式显示数据表中全部信息。2.3业务往来可以实现产品信息的添加、删除和修改。程序运行如图所示。2.4客户呼叫中心实现对客户的呼叫、客户详细信息以及对联系人信息的查询。程序运行如图所示。(三)客户服务3.1客户反馈(四)信息查询4.1客户信息查询实现查询功能,可以查询客户的编号,企业的名称,联系人的姓名等字段,最后将查询出来的结果显示在列表中,程序运行结果如图所示。4.2联系人信息查询:实现查询功能,可以查询联系人的编号,企业的名称,联系人的姓名等字段,最后将查询出来的结果显示在列表中,程序运行结果如图所示。(五)基础信息维护5.1区域信息设置5.2企业性质设置:可以设置企业的性质,进行添加、修改、删除等功能。(六)系统功能6.1增加操作员:增加系统的操作员,使多个操作员可以对数据库进行访问,实现权限的再发布。添加成功就会返回一个添加成功的对话框,如下:6.2修改密码:提供操作员的密码修改功能,使操作员的密码有泄漏风险时可以尽快更改,防止造成数据的泄露。添加成功就会返回一个添加成功的对话框,如下:六课程设计总结(一)实训遇到的问题及解决办法在做这个客户管理系统是遇到了很多的问题,不过到最后想办法解决了。刚开始的时候因为没备份,做到下一步时做错了,就只好前功尽弃,重新再做一个。1错误1运行过程中,点击客户信息、客户联系人信息都会出现错误.这是因为一开始数据库中没有数据造成的.要先在代码里插入一个判断语句,如果没有记录,就返回return。 错误的代码:要是数据库里的客户信息记录为空,则会出现一个runningtimeerror的错误。 voidkhinfo::loadrst() { rst4.rstOpen("select*fromtb_khxx"); tnum2=rst4.GetRecordCount(); b.edit1=rst4.GetFieldValue("khxx_id"); b.edit2=rst4.GetFieldValue("khxx_mc"); 2=rst4.GetFieldValue("khxx_qyxz"); 3=rst4.GetFieldValue("khxx_qylx"); 5=rst4.GetFieldValue("khxx_qyzx"); b.edit4=rst4.GetFieldValue("khxx_qydz"); 6=rst4.GetFieldValue("khxx_szsf"); b.edit5=rst4.GetFieldValue("khxx_szcs"); b.edit6=rst4.GetFieldValue("khxx_gsyb"); b.edit7=rst4.GetFieldValue("khxx_frdb"); b.edit8=rst4.GetFieldValue("khxx_khyh"); b.edit9=rst4.GetFieldValue("khxx_yhzh"); b.edit10=rst4.GetFieldValue("khxx_nsh"); b.edit11=rst4.GetFieldValue("khxx_ICcard"); b.edit12=rst4.GetFieldValue("khxx_gswz"); b.edit13=rst4.GetFieldValue("khxx_gsdh"); b.edit14=rst4.GetFieldValue("khxx_gscz"); b.edit15=rst4.GetFieldValue("khxx_lxr"); b.edit16=rst4.GetFieldValue("khxx_lxrdh"); 4=rst4.GetFieldValue("khxx_khjb"); b.edit17=rst4.GetFieldValue("khxx_bz"); }就要在载入客户信息前加一句判断语句: if(tnum2==0) {return; }这样,当记录为空的时候就不会出错误了。正确的代码如下: voidkhinfo::loadrst() { rst4.rstOpen("select*fromtb_khxx"); tnum2=rst4.GetRecordCount();if(tnum2==0) {return; }//判断记录是否空 b.edit1=rst4.GetFieldValue("khxx_id"); b.edit2=rst4.GetFieldValue("khxx_mc"); 2=rst4.GetFieldValue("khxx_qyxz"); 3=rst4.GetFieldValue("khxx_qylx"); 5=rst4.GetFieldValue("khxx_qyzx"); b.edit4=rst4.GetFieldValue("khxx_qydz"); 6=rst4.GetFieldValue("khxx_szsf"); b.edit5=rst4.GetFieldValue("khxx_szcs"); b.edit6=rst4.GetFieldValue("khxx_gsyb"); b.edit7=rst4.GetFieldValue("khxx_frdb"); b.edit8=rst4.GetFieldValue("khxx_khyh"); b.edit9=rst4.GetFieldValue("khxx_yhzh"); b.edit10=rst4.GetFieldValue("khxx_nsh"); b.edit11=rst4.GetFieldValue("khxx_ICcard"); b.edit12=rst4.GetFieldValue("khxx_gswz"); b.edit13=rst4.GetFieldValue("khxx_gsdh"); b.edit14=rst4.GetFieldValue("khxx_gscz"); b.edit15=rst4.GetFieldValue("khxx_lxr"); b.edit16=rst4.GetFieldValue("khxx_lxrdh"); 4=rst4.GetFieldValue("khxx_khjb"); b.edit17=rst4.GetFieldValue("khxx_bz"); }2错误2同样的代码,做密码菜单时的步骤也没有错,但在我的管理系统点击进入系统菜单的密码修改时出现错误,最后经过调试、上网查找材料,终于解决了。错误的代码:没办法根据用户名进行密码修改,进入密码修改菜单时出错。BOOLCMimaDlg::OnInitDialog(){ CDialog::OnInitDialog(); adorsta; rsta.Open("select*fromtb_user",adCmdText); intrstnum=rsta.GetRecordCount(); inti;for(i=1;i<=rstnum;i++) { this->m_com1.AddString(rsta.GetFieldValue("user_name")); this->m_com1.SetWindowText(rsta.GetFieldValue("user_name")); rsta.Move(i); } rsta.close(); returnTRUE;}改正后的代码:将这一句this->m_com1.AddString(rsta.GetFieldValue("user_name"));改为this->m_com1.SetWindowText(rsta.GetFieldValue("user_name"));则修改密码是就不会出错了。3错误3在引入字符串的时候,添加、修改、删除、第一条、下一条等图标的值出现了不连续,而由于给图标添加文字说明的时候,是通过循环添加的,就出现了文字添加不正错的问题。改正:到resource.h这个头文件将图标的值改成连续的。4不足1总共需要用的图标只有18个:客户信息、联系人信息、呼叫中心、关闭等而自己却总共需要添加24个才能够全部实现图标的功能,使得有些图标如添加、修改等进行了重复引入、定义,增加了系统的复杂性,系统不够简洁。当然,还遇到了一些其它的问题,最后都在老师或者同学的指导下解决了。(二)心得体会:在当今信息时代,访问存储在服务器上的数据库已经是很普遍的事情了,现实中的客户管理系统也越来越强大。不过随着网络的发展,对数据库的访问安全性的要求也在提高。时间过得很快,转眼间,这学期的近两周的实训生活即将结束。由于刚开始实训的时候MFC程序设计的应用不够熟悉,使得最初的几天都相当于在熟悉MFC类的建立,让类跟数据库关联。通过这两周的实训,使得我对MFC设计比较熟悉了,懂得了使用很多系统自带的功能,如何将类跟数据库进行关联。虽然说在做程序的过程中也有很多问题,也遗憾以前没有认认真真学好MFC,在设计的时候还要翻课本、上网找资料,过在经过自己思考或者和同学交流后都把遇到的问题解决了,在跟同学交流过程中也学到了很多自己不懂得知识。在这次的实训中除了学会了在对话框上建立类,将类与数据库对接,使用TAB控件以及分页技术,可以熟练的应用各类控件,给控件添加变量等设计知识外,还学到了很多其它方面的知识。在实训中,通过与同学讨论和请教老师,很多问题很快得到解决,同时也养成了合作的精神。在这次实训中把基本功能完成了,同时也完成了一些附加功能,不过相比班上做的比较好的同学,系统还不够完善。从这次课程设计中也体会到了很多学习中的乐趣,为了完成课程设计,我们可以连续十几个小时呆在电脑室里,也为了在宿舍能够安装使用SQL2000,毅然决然的把宿舍电脑的Win7操作系统给换成了XP。在课程设计过程中遇到了很多问题,不过在老师和和同学们的帮助下大部分都得以解决,在此对他们表示感谢。通过看书自学也学到了很多课堂上学不到的东西。此次课程设计我最大的收获是学会了自主学习,也增加了与老师和同学们的交往、增进了相互之间的感情。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用单片机在高楼恒压供水系统中的应用基于ATmega16单片机的流量控制器的开发基于MSP430单片机的远程抄表系统及智能网络水表的设计基于MSP430单片机具有数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论