欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于VC++的客户资料管理系统的设计与实现————数据库的设计.doc

    • 资源ID:840449       资源大小:130.54KB        全文页数:24页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于VC++的客户资料管理系统的设计与实现————数据库的设计.doc

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

    2、据库访问技术。其中ADO使得编写数据库应用程序变得简单容易。公司客户资料管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性,完整性,安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。关键词: VC+ + 数据库; 客户资料管理系统; ADO技术目录第1章 需求分析2第2章 系统分析3第3章 数据库设计43.1 建立E-R图4 3.2 SQL建立数据库及查询53.3 ADO方式连接数据库的类实现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)面向对象、可视化开发。提供了面向对象的应用程序框架MFC(Microsoft Foundation Class:微软基础类库),大大简化了程序员的编程工作,提高了模块的可重用性。Visual C+还提供了基于CASE技术的可视化软件自动生成和维护工具AppWizard、ClassWizard、Visual

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

    8、隐去了创建、维护窗口的许多复杂的例行工作,简化了编程。2)ADO(ActiveX Data Object)ADO技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点,并且,ADO对OLE DB的接口作了封装,定义了ADO对象,使程序开发得到简化,ADO技术属于数据库访问的高层接口。32. SQL主要语法 SQL SERVER 提供了关系数据库的查询语言SQL(Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型

    9、以“系统 R“的名字在 IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来 IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以 IBM SQL 为基础的标准关连式资料语言定义。第3章 数据库设计3.1 建立E-R图 E-R图提供了表示实体性、属性和联系的方法:l 实体性:用矩形表示,矩形框内写实体名。l 属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。l 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系连接起来。客

    10、户资料E-R图如图3-1所示备注客户姓名性别身份证号户口手机号办公电话邮箱图3-1 客户实体及属性4 3.2 SQL建立数据库及查询3.2.1 数据规范化问题 当把数据库收集在一个二维表中,往往有很多重复的数据,即冗余度大。像这样的二维表是不宜作为数据库管理的,必须进行规范化后才能使用。数据规范化理论是研究如何将一个不好的关系模型转化成为好的关系模型。规范化理论认为,关系数据库中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可分为五个等级,分别称为第一范式(1NF),第二范式(2NF)第五范式(5NF),通常解决一般性问题时,只要把数据规范到第三范式(3NF)标准就可满足需要,不是规

    11、范化等级越高越好。下面给出第一、第二和第三范式的条件:第一范式(1NF):如果关系R的所有属性都是不可再分的数据项,则称该关系为第一范式。记作R属于1NF。第二范式(2NF):若关系R属于1NF,且它的每一非主属性都完全依赖与关键字,则称R属于第二范式。记作R属于2NF。第三范式(3NF):若关系R属于2NF,且每一非主属性都不传递依赖于关键字,则称R属于第三范式。记作R属于3NF。运用SQL server 2000新建一个数据库,客户管理所有客户信息的数据都保存在这个数据库中。53.2.2设计表的结构表customs 3-2列名列名数据类型宽度是否为空客户姓名(主键)Cus_namevarc

    12、har50No性别Cus_Sexvarchar4Yes身份证号Cus_IDvarchar20Yes户口所在地Hukouvarchar100Yes手机号码Mobilevarchar30Yes办公电话Office_phonevarchar30Yes邮箱Emailvarchar20Yes备注信息Remarkvarchar200Yes 4.2.3 SQL建立数据库和表:create database Customcreate table customs( Cus_name Varchar(50) primary key, Cus_Sex Varchar(4),Cus_ID Varchar(20),Hu

    13、kou Varchar(100),Mobile Varchar(30),Office_phone Varchar(30),Email Varchar(20),Remark Varchar(200), );insert into 6customs(Cus_name,Cus_Sex,Cus_ID,Hukou,Mobile,Office_phone,Email,Remark)values(欧阳丽,女,52240119809231217,毕节,15286666322,0857-8222222,bijiexj,com,NULL);insert into customs(Cus_name,Cus_Sex,

    14、Cus_ID,Hukou,Mobile,Office_phone,Email,Remark)values(吴维相,男,522425198892318188,毕节,15286090905,0857-8266666,bijiewwx,com,NULL);insert into customs(Cus_name,Cus_Sex,Cus_ID,Hukou,Mobile,Office_phone,Email,Remark)values(徐进,男,522401198892312176,毕节,15286012322,0857-8888888,bijiexj,com,NULL);insert into cus

    15、toms(Cus_name,Cus_Sex,Cus_ID,Hukou,Mobile,Office_phone,Email,Remark)values(陈云春,男,52240198992312122,六盘水,18798072395,0858-8666666,lps,NULL);insert into customs(Cus_name,Cus_Sex,Cus_ID,Hukou,Mobile,Office_phone,Email,Remark)values(陈真秀,女,52240198992377100,六盘水,18708632329,0858-86686866,lps,NULL);insert i

    16、nto customs(Cus_name,Cus_Sex,Cus_ID,Hukou,Mobile,Office_phone,Email,Remark)values(张成明,男,52240198992522222,贵阳,18798072399,0857-8899999,gy,NULL);73.2.4 SQL查询及结果:select Cus_name 客户名,Cus_Sex 性别,Cus_ID 身份证号,Hukou 户口所在地,Mobile 手机号码,Office_phone 办公电话E,Email 邮箱,Remark 备注 from customs3.3 ADO方式连接数据库的类实现#inclu

    17、de StdAfx.h#importF:VC+.6.0.SP6VC6CNSHAREDADOmsado15.dllno_namespace rename(EOF,adoEOF)rename(EOF,adoEOF)class ADOConnpublic:_ConnectionPtr m_pConnection;/指向Connection对象的指针_RecordsetPtr m_pRecordset;/指向Recordset对象的指针public:ADOConn()virtual ADOConn()void OnInitADOConn();/初始化连接数据库8_RecordsetPtr&GetRec

    18、ordset(_bstr_t bstrSQL);/执行查BOOL ExecuteSQL(_bstr_t bstrSQL);/执行SQL语句Insert Update_variant_tvoid ExitConnect();void ADOConn:OnInitADOConn()/初始化一个连接数据库:CoInitialize(NULL);/初始化OLE/COM库环境try/创建Connection对象m_pConnection.CreateInstance(ADODB.Connection);/设置连接字符串,必须是BSTR型或者_bstr_t类型 _bstr_t strConnect=Pro

    19、vider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False; Initial Catalog=Custom; Data Source=local;m_pConnection-Open(strConnect,adModeUnknown); catch(_com_error e)/捕捉异常9AfxMessageBox(e.Description();/显示错误信息_RecordsetPtr& ADOConn:GetRecordset(_bstr_t bstrSQL)/执行数据库查询try /连接数据库,如果Connec

    20、tion对象为空,则重新连接数据库if(m_pConnection=NULL)OnInitADOConn();m_pRecordset-Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);catch(_com_error e)AfxMessageBox(e.Description();return m_pRecordset;/返回记录集 10BOOL ADOConn:ExecuteSQL (_bstr_t bstrSQL)/执行SQL语句tryif(m_pConnectio

    21、n=NULL)OnInitADOConn();/Connection对象的Execute方法:/(_bstr_tCommandText,VARIANT*RecordsAffected,longOptions)/其中CommandText是命令字符串,通常是SQL命令/参数RecordsAffected是操作完成后所影响的行数/参数Options表示CommandText的类型:adCmdText文本/命令,adCmdTable表名;adCmdProc存储过程;/adCmdUnkown未知m_pConnection-Execute (bstrSQL,NULL,adCmdText);return

    22、true; catch(_com_error e)AfxMessageBox(e.Description();return false; 11void ADOConn:ExitConnect()/断开与数据库的连接if(m_pRecordset!=NULL)m_pRecordset-Close();m_pConnection-Close();:CoUninitialize();/关闭OLE/COM库并释放资源class customs/创建对象客户customs类private: int Cus_ID;CString Cus_name;CString Cus_Sex;CString Hukou

    23、;CString Mobile;int Office_phone;CString Email;CString Remark;public:customs();virtual customs()/设置和读取成员变量值 12int GetCus_ID();void SetCus_ID(int vCusId);CString GetCus_name();void SetCus_nam(CString vCusname);CString GetCus_Sex();void SetCus_Sex(CString vSex);CString GetEmail();void SetEmail(CString

    24、 vEmail);CString GetRemark();void SetRemark(CString vRemark);int GetOffice_phone();void SetOffice_phone(int vphone);CString GetHukou();void SetHukou(CString vHukou);CString GetMobile();void SetMobile(CString vMobile);void SetCus_name(CString vcusName);/数据库操作void sql_insert();void sql_update(CString

    25、cCus_name);void sql_delete(CString Cus_name);13void GetData(CString cCus_name);/根据客户名字读取所有字段;customs:customs()Cus_ID=0;Cus_name=;Cus_Sex=;Hukou=;Office_phone=0;Mobile=;Email=;Remark=;/设置和读取成员变量值int customs:GetCus_ID() return Cus_ID;void customs:SetCus_ID(int vcusId)Cus_ID=vcusId; 14CString customs:G

    26、etCus_name()return Cus_name;void customs:SetCus_name(CString vCusName)Cus_name=vCusName;CString customs:GetCus_Sex()/获取Sex(性别)变量return Cus_Sex;void customs:SetCus_Sex(CString vSex)Cus_Sex=vSex;CString customs:GetHukou()/获取HuKou(户口)变量return Hukou;15void customs:SetHukou(CString vHukou)Hukou=vHukou; i

    27、nt customs:GetOffice_phone()/获取Office_phone(办公电话)变量return Office_phone;void customs:SetOffice_phone(int vOffice_phone)Office_phone=vOffice_phone;CString customs:GetEmail()/获取Email(邮箱)变量return Email;void customs:SetEmail(CString vEmail)Email=vEmail; 16CString customs:GetRemark()/获取Remark(备注)变量return

    28、Remark;void customs:SetRemark(CString vRemark)Remark=vRemark;CString customs:GetMobile()/获取Mobile(手机号)变量return Mobile;void customs:SetMobile(CString vMobile)Mobile=vMobile;void customs:sql_insert()/函数sql_insert的实现ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();/设置查询语句 17CString strRemark;strRemark.Forma

    29、t(%s,Remark);_bstr_t vSQL;vSQL=INSERT INTO customs(Cus_ID,Cus_name,Hukou,Cus_Sex,Mobile,Remark,Office_phone,Email) VALUES(1,+Cus_name+,+Hukou+,+Cus_Sex+,+Mobile+,+strRemark+,1,+Email+);/执行INSERT语句m_AdoConn.ExecuteSQL(vSQL);m_AdoConn.ExitConnect();/断开与数据库的连接void customs:sql_update(CString cCus_name)/

    30、函数sql_update的/实现ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();CString strRemark;strRemark.Format(%s,strRemark);_bstr_t vSQL;char sql100;18strcpy(sql, );strcpy(sql, UPDATE customs SET Cus_ID=);char temp10;itoa(Cus_ID, temp, 10);strcat(sql, temp);strcat(sql, ,Hukou=);strcat(sql, Hukou);strcat(sql, ,Cus_

    31、Sex=);strcat(sql, Cus_Sex);strcat(sql, ,Mobile=);strcat(sql, Mobile);strcat(sql, ,Remark=);strcat(sql, Remark);/strcat(sql, ,Office_phone=);/strcat(sql, Office_phone);itoa(Office_phone,temp,10);strcat(sql, ,Email=);strcat(sql, Email);/itoa(Cus_name, temp, 10); strcat(sql,Cus_name=); strcat(sql,Cus_n

    32、ame);19strcat(sql, WHERE Cus_name =);strcat(sql, temp);/vSQL=UPDATECustoms SETCus_ID=+Cus_ID+,Hukou=+Hukou+,Cus_Sex=+Cus_Sex+,Mobile=+Mobile+,Remark=+Remark+,Cus_name=+Cus_name+,Email=+Email+WHERE Office_phone=+Office_phone;m_AdoConn.ExecuteSQL(vSQL);m_AdoConn.ExitConnect();void customs:sql_delete(C

    33、String cCus_name) /函数sql_delete的/实现ADOConn m_AdoConn;m_AdoConn.OnInitADOConn(); /设置DELETE语句_bstr_t vSQL;vSQL=DELETE FROM customs WHERE Cus_name=+cCus_name;/执行DELETE语句m_AdoConn.ExecuteSQL(vSQL); 20m_AdoConn.ExitConnect();void customs:GetData(CString cCusID)/函数GetData的实现ADOConn m_AdoConn;m_AdoConn.OnI

    34、nitADOConn();_bstr_t vSQL;vSQL=SELECT * FROM customs WHERE Cus_ID=+cCusID;/执行SELETE语句_RecordsetPtr m_pRecordset;m_pRecordset=m_AdoConn.GetRecordset(vSQL);if(m_pRecordset-adoEOF=1)customs();elseCus_ID=atoi(cCusID);Cus_name=(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(Cus_name);21Cus_Sex=(LPCTSTR)(_bstr_

    35、t)m_pRecordset-GetCollect( Cus_Sex);Hukou=(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(Hukou);Mobile=(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(Mobile);Email=(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(Email);Remark=(LPCTSTR)(_bstr_t)m_pRecordset-GetCollect(Remark);Office_phone=atoi(LPCTSTR)(_bstr_t)m_pRe

    36、cordset-GetCollect(Office_phone);m_AdoConn.ExitConnect();/断开与数据库的连接void main() 运行: 223.4 ADO控件访问数据库在应用程序中添加Microsoft ADO Data和Microsoft DataGrid两个控件,并且在Microsoft ADO Data控件ConnectionString属性中添加连接数据库据库的属性值(Provider=SQLOLEDB.1;Data Source=MyPCSERVER Integrated Security=SSPI; Initial Catalog=Custom Per

    37、sist Security Info=False)、Recordsource属性中添加查询数据库表的属性值(SELECT * FROM customs),然后测试连接数据库,连接成功,编译、运行得到如图3-4查询结果。ADO控件访问数据库运行结果:图3-4第4章 总结主要的分工情况如下:徐进(数据库的设计和查询的实现)、吴维相(进行添加、删除、修改等设计)、陈云春(用户权限控制、系统测试)通过这几个星期的努力,客户资料管理系统的设计与开发已完成。其基本功能包括:增加、删除、修改、查询,客户基本信息管理(客户姓名、单位名称、联系电话)相关信息等功能已基本达到。这次课程设计是按照软件开发流程进行2

    38、3的。从一开始的详细设计,用UML描绘出系统的基本框架,到数据库的设计,以及每个部分的实现,采用了面向对象的思想,这对系统的日后维护及功能的扩充有很大的帮助。在这几个星期的开发过程中,加深了对Visual C+ 的理解,对SQL SERVER数据库使用也比较熟练,尤其是SQL 语句的使用。最重要的是,我们对这样一个大的程序的编写过程中,培养了自学的能力,对C+语言的认识有了进一步的提高。尤其是软件的开发过程中,十分注重的是团队的合作精神,这是我们在这次课程设计中深刻体会到的。第5章 参考文献【1】 张海藩 牟永敏 面向对象程序设计实用教程(第二版) 清华大学出版社2007年 【2】 陈天华 面向对象程序设计与Visual C+6.0教程 清华大学出版社2006年【3】萨师煊、王珊. 数据库系统概论(第四版). 高等教育出版社. 2006年.【4】张海藩 软件工程导论(第五版) 清华大学出版社 2008年【5】安训国 数据结构(第四版) 大连理工大学出版社 2001年【6】 2424


    注意事项

    本文(基于VC++的客户资料管理系统的设计与实现————数据库的设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922