毕业设计客户管理系统设计方案.doc

上传人:夺命阿水 文档编号:18838 上传时间:2022-07-04 格式:DOC 页数:28 大小:139.92KB
返回 下载 相关 举报
毕业设计客户管理系统设计方案.doc_第1页
第1页 / 共28页
毕业设计客户管理系统设计方案.doc_第2页
第2页 / 共28页
毕业设计客户管理系统设计方案.doc_第3页
第3页 / 共28页
毕业设计客户管理系统设计方案.doc_第4页
第4页 / 共28页
毕业设计客户管理系统设计方案.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《毕业设计客户管理系统设计方案.doc》由会员分享,可在线阅读,更多相关《毕业设计客户管理系统设计方案.doc(28页珍藏版)》请在课桌文档上搜索。

1、摘要客户资料管理系统是典型的客户信息管理系统,其主要的功能是把客户管理过程信息化,自动化以减轻人工的重复繁琐劳动。其开发主要包括后台数据库的建立维护以及前台应用程序的开发两个方面。对于后台数据库要求建立一个稳定的数据库,保持数据的一致性,完整性,安全性也是必要的。对于前台要求稳定,实用,易用。本系统是为公司客户资料管理的各种工作而设计的。根据需求分析,需要实现对系统用户,基本信息客户、单位名称、联系相关信息等的管理。经过分析,本系统使用SQL SERVER做为其后台数据库,采用ADO数据库技术;Visual C+做为开发工具,提供了相当齐备的类库、友好的编程界面和多种多样的数据库访问技术。其中

2、ADO使得编写数据库应用程序变得简单容易。公司客户资料管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性,完整性,安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。关键词: VC+ + 数据库; 客户资料管理系统; ADO技术目录第1章 需求分析2第2章系统分析3第3章数据库设计43.1 建立E-R图4 3.2 SQL建立数据库及查询53.3ADO方式连接数据库的类实现83.4 ADO控件访问数据库23第4章总结23第5章 参考文献241第1章 需求分析客户管理是一个企业在经营管理中不可缺少的部分,它的成功

3、与否对于企业的发展来说都是至关重要的,所以公司客户管理系统应该能够为用户提供充足的信息和快捷的查询手段。但如果使用传统的人工直接统计的话,工作量十分的庞大,存在许多的缺点,如:效率低,性差,且如果客户多,时间一长,将产生大量的文件及数据,对于查找,更新和维护带来困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对客户进行管理,可使人们从繁重而又单调的统计运算中解脱出来,仅用一些简单的操作便可及时准确地获得需要得信息。使企业实现科学化,正规化管理,与世界接轨。因此,开发这样一套管理

4、软件成为很必要的事情。此设计主要实现的功能有实现对系统用户,基本信息客户、单位名称、联系相关信息等的管理。需求分析阶段的工作结果是开发软件的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件的质量,确保软件开发成功,降低软件的开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。一般来说,应从下面四个方面进行验证: a. 一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。 b. 完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。 c现实性指定的需求应该是用现有的硬件技术和软件技术基础上可以实现的。对硬件技术的

5、进步可以做些预测,对软件技术的进步很难做些预测,只能从现有的技术水平出发判断需求的现实性。 d有效性必须证明需正确有效的,确保能解决用户面对的问题。通过用户和设计者对上述需求分析所得到的管理系统功能的复查,并且对照上面几点要求进行验证,客户信息管理系提出的基本满足需求分析验证的要求。2第2章 系统分析1.Visual C+Visual C+是运行于Windows平台上的交互式的可视化集成开发环境,它是美国Microsoft公司开发的Microsoft Visual Studio 套件中的一部分。像其他可视化集成开发环境一样,Visual C+集程序的代码编辑、编译、连接和调试等功能于一体,给编

6、程人员提供了一个完整方便的开发界面和许多有效的辅助开发工具。Visual C+的应用程序向导可以以很大一部分类型的程序提供框架代码,用户不用书写程序代码,只需按几个按钮就可以生成一些完整的可以运行的程序。Visual C+具有以下优点:1面向对象、可视化开发。提供了面向对象的应用程序框架MFCMicrosoft Foundation Class:微软基础类库,大大简化了程序员的编程工作,提高了模块的可重用性。Visual C+还提供了基于CASE技术的可视化软件自动生成和维护工具AppWizard、ClassWizard、Visual Studio、WizardBar等,帮助用户直观的、可视地

7、设计程序的用户界面,可以方便的编写和管理各种类,维护程序源代码,从而提高了开发效率。用户可以简单而容易地使用C/C+编程。2众多的开发商支持以及业已成为工业标准的MFC类库。MFC类库已经成为事实上的工业标准类库,得到了众多开发商和软件开发工具的支持;另外,由于众多的开发商都采用Visual C+进行软件开发,这样用Visual C+开发的程序就与别的应用软件有许多相似之处,易于学习和使用。 3Visual C+封装了Windows的API应用程序接口函数、USER、KERNEL、GDI函数,帮助我们弄清了许多函数的组织方法,隐去了创建、维护窗口的许多复杂的例行工作,简化了编程。2ADOADO

8、技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点,并且,ADO对OLE DB的接口作了封装,定义了ADO对象,使程序开发得到简化,ADO技术属于数据库访问的高层接口。32. SQL主要语法SQL SERVER 提供了关系数据库的查询语言SQL,是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,包含了资料的定义DDL以及资料的处理DML。SQL原来拼成SEQUEL,这语言的原型以系统 R的名字在 IBM 圣荷西实验室完成,经过IBM部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来 IBM 的产品。而且美国国家标准

9、学会ANSI及国际标准化组织ISO在1987遵循一个几乎是以 IBM SQL 为基础的标准关连式资料语言定义。第3章数据库设计3.1 建立E-R图E-R图提供了表示实体性、属性和联系的方法:l 实体性:用矩形表示,矩形框写实体名。l 属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。l _用菱形表示,菱形框写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系连接起来。客户资料E-R图如图3-1所示备注客户XX性别XX号户口手机号办公邮箱图3-1 客户实体及属性43.2 SQL建立数据库及查询3.2.1 数据规化问题当把数据库收集在一个二维表中,往往有很多重复的数据,即

10、冗余度大。像这样的二维表是不宜作为数据库管理的,必须进行规化后才能使用。数据规化理论是研究如何将一个不好的关系模型转化成为好的关系模型。规化理论认为,关系数据库中的每一个关系都要满足一定的规。根据满足规的条件不同,可分为五个等级,分别称为第一式1NF,第二式2NF第五式5NF,通常解决一般性问题时,只要把数据规到第三式3NF标准就可满足需要,不是规化等级越高越好。下面给出第一、第二和第三式的条件:第一式1NF:如果关系R的所有属性都是不可再分的数据项,则称该关系为第一式。记作R属于1NF。第二式2NF:若关系R属于1NF,且它的每一非主属性都完全依赖与关键字,则称R属于第二式。记作R属于2NF

11、。第三式3NF:若关系R属于2NF,且每一非主属性都不传递依赖于关键字,则称R属于第三式。记作R属于3NF。运用SQL server 2000新建一个数据库,客户管理所有客户信息的数据都保存在这个数据库中。53.2.2设计表的结构表customs 3-2列名列名数据类型宽度是否为空客户主键Cus_namevarchar50No性别Cus_Sexvarchar4Yes号Cus_IDvarchar20Yes户口所在地Hukouvarchar100Yes手机Mobilevarchar30Yes办公Office_phonevarchar30YesEmailvarchar20Yes备注信息Remarkv

12、archar200Yes4.2.3 SQL建立数据库和表:create database Customcreate table customs Cus_name Varchar primary key, Cus_Sex Varchar,Cus_ID Varchar,Hukou Varchar,Mobile Varchar,Office_phone Varchar,Email Varchar,Remark Varchar, ;insert into 6customsvalues;insert into customsvalues;insert into customsvalues;insert

13、into customsvalues;insert into customsvalues;insert into customsvalues;73.2.4 SQL查询及结果:select Cus_name 客户名,Cus_Sex 性别,Cus_ID 号,Hukou 户口所在地,Mobile 手机,Office_phone 办公E,Email ,Remark 备注 from customs3.3ADO方式连接数据库的类实现#include StdAfx.h#importF:VC+.6.0.SP6VC6CNSHAREDADOmsado15.dllno_namespace renamerenamec

14、lass ADOConnpublic:_ConnectionPtr m_pConnection;/指向Connection对象的指针_RecordsetPtr m_pRecordset;/指向Recordset对象的指针public:ADOConnvirtual ADOConnvoid OnInitADOConn;/初始化连接数据库8_RecordsetPtr&GetRecordset;/执行查BOOL ExecuteSQL;/执行SQL语句Insert Update_variant_tvoid ExitConnect;void ADOConn:OnInitADOConn/初始化一个连接数据库

15、:CoInitialize;/初始化OLE/COM库环境try/创建Connection对象m_pConnection.CreateInstance;/设置连接字符串,必须是BSTR型或者_bstr_t类型 _bstr_t strConnect=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=Custom; Data Source=local;m_pConnection-Open;catch/捕捉异常9AfxMessageBoxe.Description;/显示错

16、误信息_RecordsetPtr& ADOConn:GetRecordset/执行数据库查询try /连接数据库,如果Connection对象为空,则重新连接数据库ifOnInitADOConn;m_pRecordset-OpenbstrSQL,m_pConnection.GetInterfacePtr,adOpenDynamic,adLockOptimistic,adCmdText;catchAfxMessageBoxe.Description;return m_pRecordset;/返回记录集10BOOL ADOConn:ExecuteSQL /执行SQL语句tryifOnInitADO

17、Conn;/Connection对象的Execute方法:/其中CommandText是命令字符串,通常是SQL命令/参数RecordsAffected是操作完成后所影响的行数/参数Options表示CommandText的类型:adCmdText文本/命令,adCmdTable表名;adCmdProc存储过程;/adCmdUnkown未知m_pConnection-Execute ;return true; catchAfxMessageBoxe.Description;return false;11void ADOConn:ExitConnect/断开与数据库的连接ifm_pRecords

18、et-Close;m_pConnection-Close;:CoUninitialize;/关闭OLE/COM库并释放资源class customs/创建对象客户customs类private: int Cus_ID;CString Cus_name;CString Cus_Sex;CString Hukou;CString Mobile;int Office_phone;CString Email;CString Remark;public:customs;virtual customs/设置和读取成员变量值 12int GetCus_ID;void SetCus_ID;CString Ge

19、tCus_name;void SetCus_nam;CString GetCus_Sex;void SetCus_Sex;CString GetEmail;void SetEmail;CString GetRemark;void SetRemark;int GetOffice_phone;void SetOffice_phone;CString GetHukou;void SetHukou;CString GetMobile;void SetMobile;void SetCus_name;/数据库操作void sql_insert;void sql_update;void sql_delete

20、;13void GetData;/根据客户名字读取所有字段;customs:customsCus_ID=0;Cus_name=;Cus_Sex=;Hukou=;Office_phone=0;Mobile=;Email=;Remark=;/设置和读取成员变量值int customs:GetCus_ID return Cus_ID;void customs:SetCus_IDCus_ID=vcusId;14CString customs:GetCus_namereturn Cus_name;void customs:SetCus_nameCus_name=vCusName;CString cust

21、oms:GetCus_Sex/获取Sex变量return Cus_Sex;void customs:SetCus_SexCus_Sex=vSex;CString customs:GetHukou/获取HuKou变量return Hukou;15void customs:SetHukouHukou=vHukou;int customs:GetOffice_phone/获取Office_phone变量return Office_phone;void customs:SetOffice_phoneOffice_phone=vOffice_phone;CString customs:GetEmail/

22、获取Email变量return Email;void customs:SetEmailEmail=vEmail;16CString customs:GetRemark/获取Remark变量return Remark;void customs:SetRemarkRemark=vRemark;CString customs:GetMobile/获取Mobile变量return Mobile;void customs:SetMobileMobile=vMobile;void customs:sql_insert/函数sql_insert的实现ADOConn m_AdoConn;m_AdoConn.O

23、nInitADOConn;/设置查询语句 17CString strRemark;strRemark.Format;_bstr_t vSQL;vSQL=INSERT INTO customs VALUES;/执行INSERT语句m_AdoConn.ExecuteSQL;m_AdoConn.ExitConnect;/断开与数据库的连接void customs:sql_update/函数sql_update的/实现ADOConn m_AdoConn;m_AdoConn.OnInitADOConn;CString strRemark;strRemark.Format;_bstr_t vSQL;cha

24、r sql100;18strcpy;strcpy;char temp10;itoa;strcat;strcat;strcat;strcat;strcat;strcat;strcat;strcat;strcat;/strcat;/strcat;itoa;strcat;strcat;/itoa; strcat; strcat;19strcat;strcat;/vSQL=UPDATECustoms SETCus_ID=+Cus_ID+,Hukou=+Hukou+,Cus_Sex=+Cus_Sex+,Mobile=+Mobile+,Remark=+Remark+,Cus_name=+Cus_name+

25、,Email=+Email+WHERE Office_phone=+Office_phone;m_AdoConn.ExecuteSQL;m_AdoConn.ExitConnect;void customs:sql_delete /函数sql_delete的/实现ADOConn m_AdoConn;m_AdoConn.OnInitADOConn; /设置DELETE语句_bstr_t vSQL;vSQL=DELETEFROM customs WHERE Cus_name=+cCus_name;/执行DELETE语句m_AdoConn.ExecuteSQL;20m_AdoConn.ExitConn

26、ect;void customs:GetData/函数GetData的实现ADOConn m_AdoConn;m_AdoConn.OnInitADOConn;_bstr_t vSQL;vSQL=SELECT * FROM customs WHERE Cus_ID=+cCusID;/执行SELETE语句_RecordsetPtr m_pRecordset;m_pRecordset=m_AdoConn.GetRecordset;ifadoEOF=1customs;elseCus_ID=atoi;Cus_name=m_pRecordset-GetCollect;21Cus_Sex=m_pRecord

27、set-GetCollect;Hukou=m_pRecordset-GetCollect;Mobile=m_pRecordset-GetCollect;Email=m_pRecordset-GetCollect;Remark=m_pRecordset-GetCollect;Office_phone=atoim_pRecordset-GetCollect;m_AdoConn.ExitConnect;/断开与数据库的连接void main 运行:223.4 ADO控件访问数据库在应用程序中添加Microsoft ADO Data和Microsoft DataGrid两个控件,并且在Microsof

28、t ADO Data控件ConnectionString属性中添加连接数据库据库的属性值Provider=SQLOLEDB.1;Data Source=MyPCSERVERIntegratedSecurity=SSPI;InitialCatalog=CustomPersist Security Info=False、Recordsource属性中添加查询数据库表的属性值SELECT * FROM customs,然后测试连接数据库,连接成功,编译、运行得到如图3-4查询结果。ADO控件访问数据库运行结果:图3-4第4章总结主要的分工情况如下:徐进数据库的设计和查询的实现、吴维相进行添加、删除、

29、修改等设计、云春用户权限控制、系统测试通过这几个星期的努力,客户资料管理系统的设计与开发已完成。其基本功能包括:增加、删除、修改、查询,客户基本信息管理客户、单位名称、联系相关信息等功能已基本达到。这次课程设计是按照软件开发流程进行23的。从一开始的详细设计,用UML描绘出系统的基本框架,到数据库的设计,以及每个部分的实现,采用了面向对象的思想,这对系统的日后维护及功能的扩充有很大的帮助。在这几个星期的开发过程中,加深了对Visual C+ 的理解,对SQL SERVER数据库使用也比较熟练,尤其是SQL 语句的使用。最重要的是,我们对这样一个大的程序的编写过程中,培养了自学的能力,对C+语言的认识有了进一步的提高。尤其是软件的开发过程中,十分注重的是团队的合作精神,这是我们在这次课程设计中深刻体会到的。第5章 参考文献1海藩 牟永敏 面向对象程序设计实用教程 清华大学20XX2天华面向对象程序设计与Visual C+6.0教程清华大学20XX3萨师煊、王珊. 数据库系统概论. 高等教育. 20XX.4海藩 软件工程导论 清华大学 20XX5安训国 数据结构理工大学 20XX6.docin./p-222962908.html2428 / 28

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号