资源描述
基于C+ Builder的固话伴侣系统开发基于C+ Buider的固话伴侣系统开发中文摘要本系统采用Access2003来设计数据库,它方便实用,操作简单,并使用C+ Builder作为开发工具,链接动态链接库以实现功能。论文主要介绍固定电话伴侣系统的设计过程,包括系统分析、数据库分析、数据库设计和所要完成的功能的程序开发过程,使用户对本本系统有一个清晰、完整的了解。着重地说明了系统的数据库设计、动态链接库、难点技术。关键词:C+ Builder,Access数据库,动态链接库,固话伴侣系统基于C+ Builder的固话伴侣系统开发ABSTRACTThe system is based on facilitates Access database 2003 that has formidable function, and designed on Borland C+ builder platform, besides, used Dynamic Link Library under the compositive environment of C+ Builder 6.0. The discourse mainly introduce the whole process of design of the Fixed-line Telephone companion System, including system analysis、database analysis、database design and implementing of the functions, in order to make a clear picture for users. The system database design,Dynamic Link Library and technological difficulties are detailed.Key words: C+ Builder,Access database,Dynamic Link Library, fixed-line telephone companion system目 录第一章 绪论1第二章 系统设计开发技术2第一节 C+ BUILDER介绍2第二节 ACCESS数据库介绍3第三章 系统分析与设计4第一节 系统分析4第二节 系统总体设计4第四章 数据库设计与实现7第一节 系统数据流图7第二节 数据库表9第三节 数据库的存取124.3.1 ADO简介124.3.2 连接数据库12第五章 动态链接库13第一节 动态链接库介绍13第二节 DLL的链接和使用135.2.1 创建和添加导入库(Import Library)135.2.2 链接动态链接库14第三节 本系统链接的动态链接库14第六章 各大功能模块介绍16第一节 系统启动欢迎界面及用户密码保护功能的设计16第二节 通讯录管理模块的设计17第三节 短信管理模块20第四节通讯记录管理模块及常用参数设置模块的设计22第五节发送短信和拨打电话功能23第六节 打开*.TXT文件的功能23第七章 开发难点与技巧24第八章 开发体会25参考文献26致 谢27第一章 绪论固定电话伴侣系统是属于电脑电话集成技术的一种应用。电脑电话集成(Computer Telephony Integration简称CTI)是计算机平台与传统电话网络的合理结合。使用这项技术的最初目的是为了让电脑与电话相结合,是话音、传真和数据通信的集成。现今电脑系统具有高度亲和的使用界面,具备数据库处理能力、路径选择及电话派分的智慧功能与网际网络连线的功能。而电话系统则有电话转接及进行电话会议等功能。这两个系统经过综合集成后,原先各自拥有的功能都将发挥地更加淋漓尽致。随着技术的发展和社会的需要,电脑电话集成技术的各种不同应用方式不断涌现,固定电话伴侣系统就是其中一种。随着通信行业的发展,电话的种类也越来越多。手机的出现,凭着它的便携性和实用性,大大冲击了固定电话的用户市场。用惯了手机的人再用固定电话总有点不习惯, 因为固定电话除了不能随身携带以外,还不能发信息,而且在查找对方电话号码时多少会感觉不方便。那么如何将手机中的收发短信功能和“电话簿”功能及其他一些功能移植到固定电话上呢?固定电话伴侣系统就能解决这个问题。固话伴侣系统是个人电脑与电话机的综合,使用者在个人电脑上操作电话机,获得电脑电话综合所要求的各种功能,充分利用了电脑的强大处理能力来提高固定电话终端的功能。这样,固定电话的功能通过电脑实现了扩展,大大为用户提供了更为便捷的服务。因此,开发这样一套应用软件成为很有必要的事情,在下面的各章中我们将以开发一套固定电话伴侣系统为例,谈谈其开发过程和所涉及到的问题及解决方法。27第二章 系统设计开发技术本次系统开发主要是软件部分的开发,然后结合市面上现有的固话伴侣接线盒实现与固定电话的硬件连接。实现系统功能的应用程序在电脑上运行,已经连接了固定电话的固话伴侣接线盒通过USB接口与电脑相连,这样就可以在电脑上操作电话机,扩展了固定电话的功能。本系统的开发工具是C+ Builder 6和Access 2003,同时调用动态链接库函数来实现共同实现功能。 第一节 C+ Builder介绍在面向对象的可视化编程技术领域中,由Borland公司所开发的C+ Builder以其强大的RAD(Rapid Application Development,快速应用程序开发)功能而独树一帜。它能够节省开发人员设计程序界面和实现底层支持的时间,可以将更多的精力花在程序的逻辑设计上。而且C+ Builder比较稳定,可以完美地嵌入到Windows操作系统中,与Windows系统的兼容性非常好。目前最新的产品是C+ Builder 6,它充分利用了已经发展成熟的Delphi的可视化组件库(Visual Component Library,VCL),结合了先进的可视化应用程序开发工具,功能强大而且高效。Borland C+ Builder 6最主要的特点表现在几个方面:1.提供了出色的可视化应用程序开发环境。2.C+快速开发工具,将C+开发提高到新的层次。3.具有强大的数据库应用程序开发能力。4.提供了强大的网络编程功能。5.强大的Web Service程序开发能力。第二节 Access数据库介绍Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。Access能够存取 Access/Jet、Microsoft SQL Server、Oracle,或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的进阶用户则能使用它来开发简单的应用软件。Access是一种关系型数据库管理系统,其主要特点如下: (1)存储方式单一 (2)面向对象 Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好、易操作 (4)集成环境、处理多种数据信息 Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 (5)Access支持ODBC(开发数据库互连,Open Data Base Connectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。第三章 系统分析与设计第一节 系统分析因为固定电话伴侣系统是以方便用户为基础,再在这个基础上为用户提供多方位的服务,所以它要实现的功能是很多的,其中包括通讯录的管理,短信的收发功能及收发件箱的管理,电话代拨的功能及通讯记录的管理,以及一些用户个人和系统的管理。另外,考虑到系统还要与外部硬件进行连接,还需要设置硬件的初始化功能。首先,用户要能够管理属于自己的通讯录,可以添加新的联系人,查询、修改、删除联系人信息,可以给指定的联系人发送信息和拨打电话。在添加新的联系人时,考虑到同一联系人会有多种联系方式,需要把每一联系人跟他对应的联系方式关联起来。而当通讯录管理系统中联系人比较多时,用户想要找到自己需要的联系人就比较困难,所以,系统提供了按姓名、公司、分组类别等条件进行搜索查询的功能,给用户带来方便。其次,在短信管理方面,首先能够实现对指定用户发送短信的功能,然后再对发送的短信进行进一步的操作,能够对发送成功和发送失败的短信分别进行存储、修改、删除、转发等相关操作。另外,系统还提供了文件的导入功能,使用户能根据自己的需要把现有的文档文件导入为短信内容,大大节省了时间。再次,在通话管理方面,实现了在电脑上代拨电话的功能,还对通话的对象和时间进行了存储,使用户能够方便地查看自己的通话记录,并对其进行管理。除此之外,系统还设置了未接来电通知功能。当用户因为某种原因没能接听电话时,能够及时查看来电信息做出处理。除了一些必需实现的功能,考虑到用户信息的安全性,系统还设置了密码保护功能。用户可以根据需要为系统设定密码,使非法用户不能登陆系统,提高信息的保密性和安全性。最后,系统提供了硬件初始化的功能,如果不对硬件进行初始化,系统的发送短信和拨打电话功能都无法实现,因此这个功能是至关重要的。第二节 系统总体设计固定电话伴侣系统所要实现的基本功能如下:1.系统用户登陆及身份验证2.通讯录管理:包括新增、删除、查询、修改联系人信息,查询联系人信息可以按姓名、按公司、按分组类别等条件查找。3.收发短信息及短信息管理:能够给指定的用户发送短信息,能够接收由另一方发来的短信息,设有收发信箱,能对发送和接收的短信息进行新增、查询、保存、修改、删除、回复、转发等操作,并能把电脑文本文件导为短信息内容。4.电话拨打及通讯记录管理:能够给指定的用户拨打电话,能够接听别的通讯端来电,对拨出和接入的电话有通讯记录管理,设有未接来电通知功能,并对其进行回复。5.系统管理:包括文件的导入,常用参数的设置6.用户管理:包括开启用户密码保护、修改用户名及密码、取消用户密码保护、退出登录7.帮助:包括本系统的产品概述以及主要功能特点8.关于:包括本系统的信息以及系统开发者的相关信息图3-1 系统实物连接图新增联系人关于开始登录界面登录是否有错 Y N结束设定登陆密码没有设定登陆密码系统启动界面通讯录短信管理通讯记录系统管理发短信用户管理帮助电话拨号查询联系人删除联系人收件箱发件箱拨出电话未接来电呼入电话参数设置文件导入修改密码设置密码退出系统取消密码草稿箱回收站发送失败图3-2 系统流程图第四章 数据库设计与实现第一节 系统数据流图用户0登录ID, Password处理结果1234通讯录管理短信息管理通讯记录管理用户管理数据库文件图4-1 系统数据0层图联系方式1.4新增联系方式1.5删除联系方式数据库从表文件联系方式信息结果结果删除条件用户1.1新增联系人1.3查询联系人1.2删除联系人数据库主表文件联系人信息结果删除条件结果结果关键字主从关系一一对应的关系图4-2 通讯录管理数据流图发送失败2.4未发送的短信2.5删除信息收件箱2.12.2删除信息数据库文件发件箱草稿箱回收站2.3发送成功的信息2.62.72.8发送失败信息清空信息恢复信息接收的短信息图4-3 短信管理数据流图未接来电3.4删除记录1.5删除记录删除条件结果结果删除条件拨出号码3.1查看记录3.3查看记录3.2删除记录数据库文件号码信息结果删除条件结果结果号码信息呼入号码3.5查看记录号码信息结果图4-4 通讯记录管理数据流图用 户5.1设置密码5.3取消密码5.2修改密码数据库文件输入新用户和密码结果结果新旧密码结果图4-5 客户管理数据流图第二节 数据库表表4.2.1 联系人信息表字段名类型长度可否为空是否键值姓名文本(16)N性别文本(8)N分组类别文本(0)N公司文本(50)Y职位文本(50)Y国家/地区文本(50)Y省/自治区文本(50)Y城市/县文本(50)Y家庭通讯地址文本(50)Y单位通讯地址文本(50)Y邮政编码文本(20)Y电子邮箱文本(20)YQQ号码文本(20)Y互联网址文本(50)Y出生日期文本(20)Y其他备注文本(50)Y表4.2.2 联系方式详情表字段名类型长度可否为空是否键值姓名文本(16)N性别文本(8)N分组类别文本(0)N公司文本(50)Y职位文本(50)Y电话号码文本(20)N电话类别文本(16)Y联系人信息表和联系方式详情表为主从关系表,其中联系人信息表是主表,联系方式详情表是从表,关联的字段名为:姓名、性别、分组类别、公司、职位。表4.2.3 短信收件箱表字段名类型长度可否为空是否键值发件人文本(20)N内容文本(140)N日期日期/时间N表4.2.4 短信发件箱表字段名类型长度可否为空是否键值收件人文本(20)N内容文本(140)N日期日期/时间N表4.2.5 短信草稿箱表字段名类型长度可否为空是否键值收件人文本(20)N内容文本(140)N日期日期/时间N表4.2.6 短信发送失败表字段名类型长度可否为空是否键值收件人文本(20)N内容文本(140)N日期日期/时间N表4.2.7 短信回收站表字段名类型长度可否为空是否键值发件人文本(20)N内容文本(140)N日期日期/时间N表4.2.8 常用短语列表字段名类型长度可否为空是否键值常用短语文本(140)N表4.2.9 拨出电话列表字段名类型长度可否为空是否键值拨出号码文本(16)N日期日期/时间N表4.2.10 呼入电话列表字段名类型长度可否为空是否键值呼入号码文本(16)N日期日期/时间N表4.2.11 未接来电列表字段名类型长度可否为空是否键值来电号码文本(16)N日期日期/时间N表4.2.12 用户名密码列表字段名类型长度可否为空是否键值用户名文本(16)N密码文本(10)N本系统是在Windows XP下开发的,开发数据库使用的是Access 2003。1、新建一个空数据库,取名为“固话伴侣”2、在lib中建立表联系人信息表、联系方式详情表、短信收件箱表、短信发件箱表、短信草稿箱表、短信发送失败表、短信回收站表、常用短语列表、拨出电话列表、呼入电话列表、未接来电列表、用户名密码列表第三节 数据库的存取4.3.1 ADO简介ADO即Active Data Object的简写(也称OLE DB),是微软提供的用于访问数据库的接口。在C+ Builder 6中提供了一组独立于BDE的ADO对象,通过这些对象可以实现对各种数据源的访问,如关系数据库、文件系统、文本、图像等。4.3.2 连接数据库在C+ Builder中ADO用于访问数据库的对象有ADO Connection 、ADO Command、ADO DataSet 、ADO Table和ADO Query。其中,ADO Connection是用于创建ADO数据库连接的对象,它是使用其他ADO对象的前提。ADO Command对象即通常所说的命令行对象,它用于定义要对数据源执行的一系列操作,执行结果不返回记录集。如Update、Delete、Insert等SQL语句可以用该对象来执行。ADO DataSet是ADO对象中非常重要的对象,其主要特点是执行后能够返回记录集。它可以浏览记录、移动记录、添加、更改、删除记录。而ADO Query则需要设置它的Connection属性或者Connection String属性,以用于连接相应的数据库。第五章 动态链接库第一节 动态链接库介绍动态链接库是从C语言函数库的概念发展起来的。随着多任务操作系统的出现,采用调用函数库的方法显得过于累赘和沉重。在这种形式下,人们提出了“允许一组函数的单一拷贝为多种不同类型的程序所共享”的概念,这个概念的发展就形成了现在的动态链接库。在Windows系统中,动态链接库就是包含函数和数据的模块,这种模块是已经经过编译的代码块,它可以为应用程序提供功能。动态链接库不需要重复编译或链接,一旦装入内存,其地址自动被加载到调用进程的地址空间,可为任何正在进行的程序所调用,而不必再将DLL的另一拷贝装入内存。DLL通过定义两种类型的函数来实现,一种是导出函数(exported),另一种是内部函数(internal).导出函数可为其他模块和DLL调用,而内部函数只能在DLL内部使用,其对外部函数是不可见的。根据装载方式的不同,可以把调用程序对DLL的链接方式分为静态链接和动态链接。静态链接也称隐式链接,它是指在客户程序加载时同时装载其所有的DLL;而在动态链接方式下,客户程序是根据需要来装载DLL的,因此它可以随时装载和卸出。动态链接也称显式链接。第二节 DLL的链接和使用5.2.1 创建和添加导入库(Import Library)5.2.1.1 创建导入库在C+ Builder 6中,不管采用何种链接方式,都需要用于包装DLL的库导入库(Import Library)。导入库的创建方法有两种:(1)在DOS提示符下用implib命令创建导入库。在这种创建方法中,首先使用DOS提示符进入到当前DLL工程所在的目录,然后输入implib命令。Implib命令的格式如下:Implib 导入库名.lib 动态链接名.dll(2)利用C+ Builder 6创建导入库。方法是,在C+ Builder6 IDE中,选择ProjectOptions.命令,在弹出的Project Options对话框中选择Linker选项卡,然后点选Generate import library复选框。这样执行对DLL程序的编译操作(按组合键Ctrl+F9)时,在产生动态链接库的同时会自动产生同名的导入库。本系统中采用第一种方法创建了导入库teldll.lib和usbdll.lib。5.2.1.2添加导入库在导入库产生以后,如果一个工程要调用一个动态链接库,就必须将其对应的导入库添加到该工程中。在C+ Builder 6 IDE中选择ProjectAdd to project.命令,在弹出的Add to project对话框中“文件类型”下拉列表框中选择Library file(*.lib)项,会出现.lib文件。选择指定.lib文件并单击“打开”按钮,添加操作成功。5.2.2 链接动态链接库5.2.2.1 静态链接DLL静态链接DLL又称显式链接DLL,它通过使用一个外部声明子句来使得DLL在应用程序开始执行前即被装入。其中,DLL函数又分为导入和导出,外部声明子句格式如下:导入:extern “C” _declspec(dllimport) (要调用的函数);导出:extern “C” _declspec(dllexport) (要调用的函数);5.2.2.2 动态链接DLL动态链接DLL的方式一般使用Windows API函数LoadLibrary和GetProcAddress来实现。动态链接提供了一种更为灵活的链接方式,它可以在运行时间内决定调用哪个DLL,或调用DLL中的哪个函数和过程。即使在加载一个DLL失败后,应用程序仍能够继续执行。函数LoadLibrary用来加载DLL,而GetProcAddress则用来获取被加载的DLL中要调用的那个函数的地址。本系统中采用静态链接DLL。第三节 本系统链接的动态链接库本系统采用静态链接的方式调用动态链接库TelDLL.dll和USBDll.dll。其中TelDLL.dll为接口动态库, USBDll.dll为访问USB的接口库(开发者不需要调用),但是必须文件。在TelDLL.dll中要调用的函数如下:函数5.2.1int_stdcall TelDLL_init(TOnDevChanged OnDevChanged, TOnMonocaseCMD OnMonocaseCMD, TOnKeyPress OnKeyPrss, TOnUsbSetIniSucceed OnUsbSetIniSucceed, TOnRevSMS OnRevSMS, TOnComePhone OnComePhone, TOnRevBill OnRevBill)功能:调用装入程序,对各事件函数赋值。函数5.2.2int _stdcall IniUsbSet(char Ver,char SMSCenterNumber, char SMSComeNumber, bool & ComePhoneMsg, char PersonalMobile, char ChrVar )功能:对当前可用的USB设备进行初始化操作,当有USB设备连接到USB时进行此操作。函数5.2.3 int _stdcall SetTerminalPara(char SMSCenterNumber, char SMSComeNumber,bool ComePhoneMsg,char PersonalMobile )功能:设置终端参数。函数5.2.4 int _stdcall SendSMS(char SMSBoy,char DestNumber)功能:发送短信。函数5.2.5 int _stdcall Dial(char PhoneNumber)功能:代拨电话。函数5.2.6 int _stdcall StopDial(void)功能:停止代拨以上函数在接口开发的头函数TelDll.h中均有定义。要对这些函数进行调用,就需要添加与其对应的外部声明子句,例如想要调用函数5.2.1,就要添加一下子句:extern C _declspec(dllimport) int _stdcall TelDLL_init( TOnDevChanged OnDevChanged, TOnMonocaseCMD OnMonocaseCMD, TOnKeyPress OnKeyPrss, TOnUsbSetIniSucceed OnUsbSetIniSucceed, TOnRevSMS OnRevSMS, TOnComePhone OnComePhone, TOnRevBill OnRevBill );第六章 各大功能模块介绍第一节 系统启动欢迎界面及用户密码保护功能的设计程序启动后,进入系统的欢迎界面。这一模块的主要功能是美化系统的外观设计,提示用户目前所使用的软件是固话伴侣系统,表示欢迎。欢迎界面如图所示:图6-1 系统欢迎界面欢迎界面启动完后,首先进入系统的用户身份验证窗口。这一模块的主要功能是作为用户登陆验证,保护数据库的安全。如果用户为自己设置了保护密码,则必须为系统所允许的用户才能进入本系统,否则拒绝用户进入。如果没有设置密码保护,则直接点击“确定”按钮就可进入系统。用户身份验证窗口如图所示:图6-2 用户身份验证用户可以在系统的操作部分对密码保护功能进行设定,如启动密码保护、取消密码保护以及对已设定的用户名和密码进行修改。此时的界面如下:图6-3 用户密码保护功能的设置设置新的用户名和密码时,点击“开启密码保护”,弹出以下窗口:图6-4 设置用户帐号密码第二节 通讯录管理模块的设计通讯录管理模块可以分为新增联系人,删除联系人和查询联系人三大功能。这些功能的按钮都统一安排在通讯录管理界面的工具栏上,如图所示:图6-5 通讯录功能实现工具栏一、新增联系人点击“新增”按钮,就会弹出填写新联系人详情的窗口,如图所示:图6-6 新增联系人窗口新增联系人窗口包括基本联系信息和其他联系信息两个界面。其中基本联系信息中还可以增加新的联系方式,点击“增加”弹出窗口如图6-7所示,添加其他联系信息的界面如图6-8所示。图6-7 新增联系方式窗口图6-8 新增其他联系信息窗口二、删除联系人选择想要删除的联系人,点击工具栏上的“删除”按钮,就会弹出窗口提示是否删除联系人,如图所示:图6-9 删除联系人三、查询联系人当联系人数量比较多时,想要查找指定联系人,点击工具栏上“搜索”按钮,弹出“搜索”窗口,在查询条件栏输入所要查找的联系人条件,点击“搜索”即可。“搜索”窗口如下:图6-10 查询联系人第三节 短信管理模块短信管理模块包括有收件箱、草稿箱、发件箱、发送失败、回收站五个部分。这一模块的功能主要是对收发的短信进行相关的操作,如回复、转发、编辑、删除等,模块界面如下:图6-11 短信管理模块发送新的短信或编辑已发送的短信,都可以在以下界面进行:图6-12 编辑短信为了方便用户,短信的内容还可以由用户自己导入文本文件生成或者通过添加常用短语,系统中设有一个“常用短语管理”窗口,如图所示:图6-13 常用短语管理第四节通讯记录管理模块及常用参数设置模块的设计通讯记录管理模块包括呼出电话,未接电话,呼入电话三部分。这一模块的功能主要是使用户对自己通讯情况做一个详细的记录,方便以后有需要时进行查找。其界面如下:图6-14 通讯记录管理模块系统接入外部硬件设备以后,就要对硬件设备进行初始化和参数设置,其窗口如下:图6-15 常用参数设置第五节发送短信和拨打电话功能接入硬件设备,进行了硬件初始化和参数设置以后,通过系统就可以给指定的联系人发送短信和拨打电话了。该功能界面如下:图6-16 发送短信和拨打电话第六节 打开*.txt文件的功能在帮助中,有一项“主窗口源代码”,使用者可以通过点击它直接打开”source.txt”从而了解主窗口的程序代码,方便交流。代码段如下:void _fastcall TMainForm:N12Click(TObject *Sender)Stringfilename;filename=source.txt;ShellExecute(Handle,Open,filename.c_str(),0,0,SW_SHOW)第七章 开发难点与技巧开发本系统中存在一些难点,主要包括以下几个方面:一、用户密码保护功能的实现用户可以根据自己实际的需要,设置属于自己的用户名和密码,用来保密自己的系统信息。开始运行本系统时会出现用户登陆界面。如果用户开启了密码保护功能,则需要输入正确的用户名和密码才可以进入系统。用户也可以关闭密码保护功能,这时登陆界面的用户名和密码可以留空,点击“确认”直接进入系统。其中用户名和密码可以由合法用户自由修改。这实际上是在数据库建立专门的用户帐号密码管理表来实现的。二、一个联系人对应多个联系方式的实现由于现在通讯发达,一个联系人往往拥有多种联系方式。在数据库中,联系人信息和联系方式信息是分别存于两个不同的表的。想要把一个联系人与他的联系方式对应起来,就要把联系人信息表和联系方式信息表设成主从关系,组成主从表。其中,联系人信息表是主表,联系方式信息表是从表,再把两个表中相同的字段关联起来,就能实现一个联系人对应多个联系方式了。添加新联系人时,要先增加新的联系人信息并给予保存,才能在这个基础上添加新的联系方式。因为给从表增加记录时,一定要对应着主表中的一条记录。在增加新的联系方式时,要确保主表联系人信息表中一定要有记录,否则新的联系方式添加无效。三、查询联系人的实现当联系人数量比较多的时候,用户查找起来很不方便,查询功能就是为了方便用户查找指定的联系人。在本系统中,为了提高查询效率,只对完全匹配的记录进行查询。在进一步的完善中,可考虑增加对模糊关键词的查询。用户可以根据需要选择不同的查询条件,当查询条件越多时,编程就越复杂。四、文件导入功能的实现为了节约用户的时间,系统提供文件导入功能使用户能导入指定的文档文件作为要发送短信的内容。本系统是用Open Dialog组件来实现,简单易用。五、动态链接库链接的实现要实现发短信、打电话功能,就要调用动态链接库中的函数。这就要求明白这些函数所实现的功能,并在源程序中添加相应的函数声明语句,增加了程序的复杂度。而且在调用动态链接库时,一旦库中的某些参数发生异常或者连接的硬件与库中的参数发生冲突,就会导致整个程序出错,增加了调试时的困难度。第八章 开发体会通过本次系统开发,使我感受到过程是艰辛同时又充满乐趣的。这次系统开发的自行开发这对我将来踏上工作岗位是非常有帮助的。尽管上一届的同学已经完成的非常出色,但是我仍然希望通过自己的努力完成开发并希望有所突破。这也是我对自己的考验。本次开发所用到的软件Access和C+ Builder都是以前没接触过,于是我在自己以前所学的数据库和C+语言的基础上,通过查阅图书馆大量有关资料,与同学交流经验和自学,并向老师请教等方式,慢慢学会了开发工具的使用。在本次开发过程中我完全按照软件设计步骤的要求来进行,从课题分析开始,再进行总体设计、详细设计,最后到系统实现。每一步都让我将理论学习的知识应用到实践中去。也使我掌握了一整套规范的设计操作流程。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。参考文献1 李佳, 范俊弟, 邓剑民编著,Access 2003数据库应用M,人民邮电出版社,2006年,起止页码:1429页2 本书编委会编著,Access 2003数据库管理基础与提高M,电子工业出版社,2007年,起止页码:1391页3 王晟编著,C+ Builderr数据库开发经典案例解析M,清华大学出版社,2005年,起止页码:1440页4魏俊鹏,于秋生编著,C+ Builder6实用编程100例M,中国铁道出版社,2004年,起止页码:1359页5 程展鹏编著,Borland C+ Builder 6应用开发技术解析M,清华大学出版社,2003年,起止页码:1396页6 魏振忠,张平波,万九卿编著,Borland C+ Builder 4.0自学捷径M,人民邮电出版社,2003年,起止页码:1380页7吴逸贤, 吴目诚编著,精彩C+ Builder 6程序设计M,科学出版社,2003年,起止页码:1518页 9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxG89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz84!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqvadNu#KN&MuWFA5uxY7J
展开阅读全文