当前位置:首页>> >>


c 通讯录管理系统的设计与实现.rar

收藏

资源目录
    文档预览:
    编号:20180913212648526    类型:共享资源    大小:5.02MB    格式:RAR    上传时间:2018-09-13
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    45
    金币
    关 键 词:
    通讯录 管理 系统 设计 实现
    资源描述:
    太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸0通讯录管理系统的设计与实现摘 要现今社会随着通讯以及交通的发展,人与人之间的联系越来越多,越来越紧密,这就迫切要求我们把所有人的联系方式统一的管理起来,从而使人们联系更方便,更加促进人与人之间的关系往友好方向发展。在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在的通讯录管理普遍都是采用计算机作为工具,通讯录管理程序来帮助人们进行更有效的通讯录信息管理。本文就介绍基于 Visual C++ 6.0 版本开发的“个人通讯录管理系统” ,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面;对于前者要求建立起数据一致性和完整性强及安全性好的库;而对于后者则要求应用程序功能完备,易使用等特点。本文对通讯录提出了自己的构想和设计,并在这样的基础上,构建实现了该通讯录。 关键词:通讯录;数据库;系统设计;太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸1Address Book Management System Design And ImplementationAbstractModern society with the development of the communications and transportation, the connections between people more and more, more and more closely, it is urgent for us to put all of the contact way of the unified management, which make people contact more convenient, more promote the development of the relationship of the people friendly direction.Before the computer has not yet universal communication management are business CARDS, to be used by the contact record of manual accounting way to operate. Now the address book management is the use of computers as tools generally, address book management program to help people more effectively address book information management.Is introduced in this paper, based on Visual c + + 6.0 development of “personal address book management system“, its development mainly includes the establishment and maintenance of database and front-end application development two aspects.For the former requirement to establish data consistency and integrality and security of library;For the latter requires the application program function complete, easy to use, etc.In this paper, the address book puts forward his own idea and design, and on the basis of this, the building this address book. Key words: the address book, Database; System design;太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸目 录摘 要 ..............................................................................1Abstract ............................................................................21 绪论 ..............................................................................11.1 课题研究背景 ................................................................11.2 课题研究现状 ................................................................11.3 主要研究工作和章节安排 ......................................................11.3.1 主要开发内容 ..........................................................11.3.2 项目开发要求 ..........................................................11.3.3 章节安排 ..............................................................22 论文中使用的相关技术 ..............................................................32.1 开发语言介绍 ................................................................32.1.1 Qt 介绍 ................................................................32.1.2 Qt 信号槽机制简介 ......................................................32.2 开发环境 ....................................................................52.2.1 VisioStudio2008 简介 ...................................................52.2.2 VC2008 与 Qt4.7 的开发环境搭建 ..........................................62.3 Qt 数据库支持 ...............................................................62.3.1 Qt 数据库介绍 ..........................................................62.3.2 SQlite 数据库介绍 ......................................................73 需求分析 ..........................................................................83.1 需求分析 ....................................................................83.1.1 基本功能需求 ..........................................................83.1.2 系统用例分析 ..........................................................84 系统设计 .........................................................................104.1 系统模块关系与划分 .........................................................104.1.1 数据库设计 ...........................................................105 系统的实现 .......................................................................125.1 系统编码规范 ...............................................................125.1.1 类型的命名 ...........................................................125.1.2 方法和属性的命名 .....................................................125.1.3 变量和常数 ...........................................................135.2 系统模块功能设计 ...........................................................135.2.1 数据库模块功能设计 ...................................................135.2.2 登录模块功能设计 .....................................................145.2.3 主界面设计 ...........................................................145.3 数据库模块设计与实现 .......................................................145.3.1 数据库模块设计 .......................................................145.3.2 数据库模块实现 .......................................................155.4 登录模块设计与实现 .........................................................175.4.1 登录模块设计 .........................................................175.4.2 登录模块实现 .........................................................18太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸I5.5 主界面模块设计与实现 .......................................................195.5.1 主界面模块模块设计 ...................................................195.5.2 主界面模块模块实现 ...................................................195.5.3 详细信息模块实现 .....................................................205.5.4 添加联系人信息模块实现 ...............................................215.5.5 用户密码修改模块实现 .................................................225.5.6 联系人搜索模块实现 ...................................................235.5.7 背景颜色修改实现 .....................................................255.5.8 备份 .................................................................265.5.9 导入 .................................................................286 系统测试 .........................................................................306.1 简介 .......................................................................306.2 编写目的 ...................................................................306.2.1 项目背景 .............................................................316.2.2 系统简介 .............................................................316.3 测试概要 ...................................................................316.3.1 测试用例设计 .........................................................316.3.2 测试环境与配置 .......................................................316.3.3 测试方法(和工具) .....................................................316.4 测试结果及缺陷分析 .........................................................317 系统运行 .........................................................................327.1 登陆界面 ...................................................................327.2 系统主界面 .................................................................327.3 通讯录备份和导入 ...........................................................327.4 用户管理 ...................................................................347.5 背景修改 ...................................................................347.6 搜索 .......................................................................357.7 添加 .......................................................................357.8 删除 .......................................................................367.9 修改 .......................................................................377.10 详细信息 ..................................................................37总 结 .............................................................................38参考文献 ...........................................................................39致 谢 .............................................................................40太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸01 绪论 1.1 课题研究背景 随着移动通信与 Internet 向移动终端的普及,现代通讯技术的迅猛发展,人们之间的联系越来越便捷,这也使得同时与许多人保持联系成为可能,这也使得同时与许多人保持联系成为可能,而单纯依靠人脑已经很难记住所有人的联系方式。对于存储电话号码到手机上的方式,比较方便,随时随地可以联系,不过只能通过电话联系,没有记录其他的联系方式,如果手机丢了可能就谁也联系不上了;对于记录电话等信息到本子上的方式,第一也可能丢失本子,第二是查找起来比较困难,需要人工查找,而且更新时不容易,需要涂改以前记录的信息,第三格式比较死板,不利于跟随用户的需求扩展;对于用名片夹存放名片的形式也是查找起来不方便,有丢失的危险;对于记录到 WORD 文档或打印出来的,也是扩展性不强,查找起来不方便。因此,以软件形式实现的通讯录成为了许多人保持联系方式的首选。本通讯录将极有普通通讯录的主要功能,它可以对联系人进行分组,并可以添加或删除组,也可以添加或删除联系人,或者对已经保存的联系人信息进行修改,查询功能也是必不可少的。 1.2 课题研究现状 通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。因此,开发这样一套管理程序成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。 1.3 主要研究工作和章节安排1.3.1 主要开发内容本系统主要是面向用户的分为控制模块,管理模块,其它模块三部分组成。控制模块用于对通讯录进行增删改查的管理以及备份和导入,管理模块主要是针对用户的创建、密码修改进行操作,其它模块有背景颜色的设置。整个系统由本人一人完成,包括系统的需求分析、总体设计、各个模块的设计、数据库的设计以及系统的整合和运行测试等等。1.3.2 项目开发要求 1)项目开发要规范统一,模块划分、代码编写等均按照命名规范文档;太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸12)程序执行速度快,数据安全。系统要具有良好的可扩展性;3)用户界面简单明了,操作简单实用;1.3.3 章节安排首先要做的是主界面,先把主界面的布局调整好,功能按钮都添加上,之后做登陆模块,然后对登陆模块进行测试,然后做控制模块的内容,先做添加,之后是删除,查找,和查看。接着做管理模块,用来管理用户和用户密码。最后做其他模块,比如改界面颜色。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸22 论文中使用的相关技术 2.1 开发语言介绍2.1.1 Qt 介绍Qt 是一个 1991 年由奇趣科技开发的跨平台 C++图形用户界面应用程序开发框架。它既可以开发 GUI 程序,也可用于开发非 GUI 程序,比如控制台工具和服务器。Qt 是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008 年,奇趣科技被诺基亚公司收购,QT 也因此成为诺基亚旗下的编程语言工具。2012 年,Qt 被 Digia 收购。优良的跨平台特性:Qt 支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。面向对象:Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。丰富的 API:Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。支持 2D/3D 图形渲染,支持 OpenGL,丰富的 XML 支持。在发布 Qt 4.6 的同时,作为 Qt 开发跨平台 IDE 的 Qt Creator 也发布了更新版本。Qt Creator 1.3 和 Qt 4.6 共同构成的 Qt SDK,包含了开发跨平台应用程序所需的全部功能。Qt Creator 是一个用于 Qt 开发的轻量级跨平台集成开发环境。Qt Creator 可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境 (IDE),并确保首次接触 Qt 框架的开发人员能迅速上手和操作。即使不开发 Qt 应用程序,Qt Creator 也是一个简单易用且功能强大的 IDE。[1]Qt Creator 包含了一套用于创建和测试基于 Qt 应用程序的高效工具,包括:一个高级的 C++代码编辑器 上下文感知帮助系统 可视化调试器 源代码管理 项目和构建管理工具Qt Creator 在 LGPL2.1 版本授权下有效,并且接受代码贡献。Qt LinguistQt Linguist 被称为 Qt 语言家。它的主要任务只是读取翻译文件、为翻译人员提供友好的翻译界面,它是用于界面国际化的重要工具。Linguist 工具从 4.5 开始可以支持 Gettext 的 PO 文件格式。2.1.2 Qt 信号槽机制简介信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是QT 区别于其它工具包的重要地方。信号和槽是 QT 自行定义的一种通信机制,它独立于标准的 C/C++语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta 太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸3Object Compiler)的 QT 工具,该工具是一个 C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。在我们所熟知的很多 GUI 工具包中,窗口小部件(widget)都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。 信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生 core dumps。所有从 QObject 或其子类(例如 Qwidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。我们可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构造了一个强大的部件编程机制。(1)信号当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。只有定义过这个信号的类及其派生类能够发射这个信号。当一个信号被发射时,与其相关联的槽将被立刻执行,就象一个正常的函数调用一样。信号-槽机制完全独立于任何 GUI 事件循环。只有当所有的槽返回以后发射函数(emit)才返回。 如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地 执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。信号的声明是在头文件中进行的,QT 的 signals 关键字指出进入了信号声明区,随后即可 声明自己的信号。例如,下面定义了三个信号:signals: void mySignal();void mySignal(int x);void mySignalParam(int x,int y);在上面的定义中,signals 是 QT 的关键字,而非 C/C++的。接下来的一行 void mySignal() 定义了信号 mySignal,这个信号没有携带参数;接下来的一行 void mySignal(int x)定义 了重名信号 mySignal,但是它携带一个整形参数,这有点类似于 C++中的虚函数。从形式上 讲信号的声明与普通的 C++函数是一样的,但是信号却没有函数体定义,另外,信号的返回 类型都是 void,不要指望能从信号返回什么有用信息。信号由 moc 自动产生,它们不应该在.cpp 文件中实现。(2)槽槽是普通的 C++成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值。既然槽是普通的成员函数,因此与其它的函数一样,它们也有存取权限。槽的存取权限决定了谁能够与其相关联。同普通的 C++成员函数一样,槽函数也分为三种类型,即 public slots、private slots 和 protected slots:public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象,将它们的信号与槽进行连太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸4接以便信息能够正确的传递。protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常紧密的类。槽也能够声明为虚函数,这也是非常有用的。槽的声明也是在头文件中进行的。例如,下面声明了三个槽:public slots:void mySlot();void mySlot(int x);void mySignalParam(int x,int y);(3)信号与槽的关联建立连接:通过调用 QObject 对象的 connect 函数来将某个对象的信号与另外一个对象的槽函数相关联,这样当发射者发射信号时,接收者的槽函数将被调用。该函数的定义如下:bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member ) [static]这个函数的作用就是将发射者 sender 对象中的信号 signal 与接收者 receiver中的 member 槽函数联系起来。当指定信号 signal 时必须使用 QT 的宏 SIGNAL(),当指定槽函数时必须使用宏 SLOT()。如果发射者与接收者属于同一个对象的话,那么在connect 调用中接收者参数可以省略。断开连接:disconnect 函数来断开连接。其定义如下:bool QObject::disconnect ( const QObject * sender, const char * signal, const Object * receiver, const char * member ) [static]这个函数断开发射者中的信号与接收者中的槽函数之间的关联。2.2 开发环境2.2.1 VisioStudio2008 简介Microsoft Visual Studio(简称 VS)是美国微软公司的开发工具包系列产品。VS 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如 UML 工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括 Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework 和 Microsoft Silverlight 及 Windows Phone。Visual Studio 2008 在三个方面为开发人员提供了关键改进:快速的应用程序开发高效的团队协作突破性的用户体验Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸5帮助在各种平台上快速创建当前最先进的应用程序。Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发) 、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET 应用程序服务和 Microsoft 平台。程序开发为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,例如语言集成的查询 (LINQ),各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。Visual Studio 2008 还使开发人员能够从同一开发环境内创建面向多个 .NET Framework 版本的应用程序。开发人员能够构建面向 .NET Framework 2.0、3.0 或 3.5的应用程序,意味他们可以在同一环境中支持各种各样的项目。Visual Studio 2008 为开发人员提供了在最新平台上加速创建紧密联系的应用程序的新工具,这些平台包括 Web、Windows Vista、Office 2007、SQL Server 2008和 Windows Server 2008。对于 Web,ASP NET AJAX 及其他新技术使开发人员能够迅速创建更高效、交互式更强和更个性化的新一代 Web 体验。高效的团队协作Visual Studio 2008 提供了帮助开发团队改进协作的扩展的和改进的服务项目,包括帮助将数据库专业人员和图形设计人员加入到开发流程的工具。2.2.2 VC2008 与 Qt4.7 的开发环境搭建VC2008 与 Qt 开发环境搭建是十分简单的事情,Qt 授权模式有三种授权协议,分别是 GPL, LGPL 和 Commercial,选择 GPL 协议即可。1.下载并安装 Vc2008 专业版。2.下载并安装 Qt 安装包 qt-win-opensource-4.7.0-vs2008.exe 。3.下载并安装 qt-vs-addin-1.1.7.exe。 4. 在系统环境变量中添加 D:\QT\4.7.0。2.3 Qt 数据库支持2.3.1 Qt 数据库介绍Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作。这里我们所说的“平台独立” ,既包括操作系统平台,有包括各个数据库平台。另外,我们强调了“基于 SQL”,因为 NoSQL 数据库至今没有一个通用查询方法,所以不可能提供一种通用的 NoSQL 数据库的操作。 Qt 的数据库操作还可以很方便的与 model/view 架构进行整合。通常来说,对数据库的操作更多地在于对数据库表的操作,而这正是 model/view 架构的长项。不过,由于受到协议的限制,Qt 开源版本并没有提供上面所有驱动的二进制版本,而仅仅以源代码的形式提供。通常,Qt 只默认搭载 QSqlite 驱动(这个驱动实际还包括 Sqlite 数据库,也就是说,如果需要使用 Sqlite 的话,只需要该驱动即可) 。我们可以选择把这些驱动作为 Qt 的一部分进行编译,也可以当
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:c 通讯录管理系统的设计与实现.rar
    链接地址:http://www.gold-doc.com/p-139100.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开