当前位置:文档之家› 通讯录管理系统的设计与实现毕业论文设计

通讯录管理系统的设计与实现毕业论文设计

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

摘要

现今社会随着通讯以及交通的发展,人与人之间的联系越来越多,越来越紧密,这就迫切要求我们把所有人的联系方式统一的管理起来,从而使人们联系更方便,更加促进人与人之间的关系往友好方向发展。在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在的通讯录管理普遍都是采用计算机作为工具,通讯录管理程序来帮助人们进行更有效的通讯录信息管理。本文就介绍基于Visual C++ 6.0版本开发的“个人通讯录管理系统”,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面;对于前者要求建立起数据一致性和完整性强及安全性好的库;而对于后者则要求应用程序功能完备,易使用等特点。本文对通讯录提出了自己的构想和设计,并在这样的基础上,构建实现了该通讯录。

关键词:通讯录;数据库;系统设计;

Address Book Management System Design And Implementation

Abstract

Modern 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 m anagement are business CARDS, to be used by the contact record of manual accounti ng way to operate. Now the address book management is the use of computers as to ols generally, address book management program to help people more effectively addr ess book information management.Is introduced in this paper, based on Visual c + + 6.0 development of "personal address book management system", its development mai nly 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 functi on complete, easy to use, etc.In this paper, the address book puts forward his own id ea and design, and on the basis of this, the building this address book.

Key words:the address book, Database; System design;

目录

摘要 (1)

Abstract (2)

1 绪论 (1)

1.1 课题研究背景 (1)

1.2 课题研究现状 (1)

1.3 主要研究工作和章节安排 (1)

1.3.1 主要开发内容 (1)

1.3.2 项目开发要求 (1)

1.3.3 章节安排 (2)

2 论文中使用的相关技术 (3)

2.1 开发语言介绍 (3)

2.1.1 Qt介绍 (3)

2.1.2 Qt信号槽机制简介 (3)

2.2 开发环境 (5)

2.2.1 VisioStudio2008简介 (5)

2.2.2 VC2008与Qt4.7的开发环境搭建 (6)

2.3 Qt 数据库支持 (6)

2.3.1 Qt数据库介绍 (6)

2.3.2 SQlite数据库介绍 (7)

3 需求分析 (8)

3.1 需求分析 (8)

3.1.1 基本功能需求 (8)

3.1.2 系统用例分析 (8)

4 系统设计 (10)

4.1 系统模块关系与划分 (10)

4.1.1 数据库设计 (10)

5 系统的实现 (12)

5.1 系统编码规范 (12)

5.1.1 类型的命名 (12)

5.1.2 方法和属性的命名 (12)

5.1.3 变量和常数 (13)

5.2 系统模块功能设计 (13)

5.2.1 数据库模块功能设计 (13)

5.2.2 登录模块功能设计 (14)

5.2.3 主界面设计 (14)

5.3 数据库模块设计与实现 (14)

5.3.1 数据库模块设计 (14)

5.3.2 数据库模块实现 (15)

5.4 登录模块设计与实现 (17)

5.4.1 登录模块设计 (17)

5.4.2 登录模块实现 (18)

5.5 主界面模块设计与实现 (19)

5.5.1 主界面模块模块设计 (19)

5.5.2 主界面模块模块实现 (19)

5.5.3 详细信息模块实现 (20)

5.5.4 添加联系人信息模块实现 (21)

5.5.5 用户密码修改模块实现 (22)

5.5.6 联系人搜索模块实现 (23)

5.5.7 背景颜色修改实现 (25)

5.5.8 备份 (26)

5.5.9 导入 (28)

6 系统测试 (30)

6.1 简介 (30)

6.2 编写目的 (30)

6.2.1 项目背景 (31)

6.2.2 系统简介 (31)

6.3 测试概要 (31)

6.3.1 测试用例设计 (31)

6.3.2 测试环境与配置 (31)

6.3.3 测试方法(和工具) (31)

6.4 测试结果及缺陷分析 (31)

7 系统运行 (32)

7.1 登陆界面 (32)

7.2 系统主界面 (32)

7.3 通讯录备份和导入 (32)

7.4 用户管理 (34)

7.5 背景修改 (34)

7.6 搜索 (35)

7.7 添加 (35)

7.8 删除 (36)

7.9 修改 (37)

7.10 详细信息 (37)

总结 (38)

参考文献 (39)

致谢 (40)

1绪论

1.1课题研究背景

随着移动通信与Internet向移动终端的普及,现代通讯技术的迅猛发展,人们之间的联系越来越便捷,这也使得同时与许多人保持联系成为可能,这也使得同时与许多人保持联系成为可能,而单纯依靠人脑已经很难记住所有人的联系方式。对于存储电话号码到手机上的方式,比较方便,随时随地可以联系,不过只能通过电话联系,没有记录其他的联系方式,如果手机丢了可能就谁也联系不上了;对于记录电话等信息到本子上的方式,第一也可能丢失本子,第二是查找起来比较困难,需要人工查找,而且更新时不容易,需要涂改以前记录的信息,第三格式比较死板,不利于跟随用户的需求扩展;对于用名片夹存放名片的形式也是查找起来不方便,有丢失的危险;对于记录到WORD 文档或打印出来的,也是扩展性不强,查找起来不方便。因此,以软件形式实现的通讯录成为了许多人保持联系方式的首选。

本通讯录将极有普通通讯录的主要功能,它可以对联系人进行分组,并可以添加或删除组,也可以添加或删除联系人,或者对已经保存的联系人信息进行修改,查询功能也是必不可少的。

1.2课题研究现状

通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。

随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。

因此,开发这样一套管理程序成为很有必要的事情,对于我们即将计算机专业毕业的学员来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。

1.3主要研究工作和章节安排

1.3.1主要开发内容

本系统主要是面向用户的分为控制模块,管理模块,其它模块三部分组成。控制模块用于对通讯录进行增删改查的管理以及备份和导入,管理模块主要是针对用户的创建、密码修改进行操作,其它模块有背景颜色的设置。

整个系统由本人一人完成,包括系统的需求分析、总体设计、各个模块的设计、数据库的设计以及系统的整合和运行测试等等。

1.3.2项目开发要求

1)项目开发要规范统一,模块划分、代码编写等均按照命名规范文档;

2)程序执行速度快,数据安全。系统要具有良好的可扩展性;

3)用户界面简单明了,操作简单实用;

1.3.3章节安排

首先要做的是主界面,先把主界面的布局调整好,功能按钮都添加上,之后做登陆模块,然后对登陆模块进行测试,然后做控制模块的内容,先做添加,之后是删除,查找,和查看。

接着做管理模块,用来管理用户和用户密码。

最后做其他模块,比如改界面颜色。

2论文中使用的相关技术

2.1开发语言介绍

2.1.1Qt介绍

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 Linguist

Qt Linguist被称为Qt语言家。它的主要任务只是读取翻译文件、为翻译人员提供友好的翻译界面,它是用于界面国际化的重要工具。

Linguist工具从4.5开始可以支持Gettext的PO文件格式。

2.1.2Qt信号槽机制简介

信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT 区别于其它工具包的重要地方。信号和槽是QT自行定义的一种通信机制,它独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为moc(Meta Object 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:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象,将它们的信号与槽进行连接以便信息能够正确的传递。

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.1VisioStudio2008简介

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 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。

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.2VC2008与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.3Qt 数据库支持

2.3.1Qt数据库介绍

Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作。这里我们所说的“平台独立”,既包括操作系统平台,有包括各个数据库平台。另外,我们强调了“基于SQL”,因为 NoSQL 数据库至今没有一个通用查询方法,所以不可能提供一种通用的 NoSQL 数据库的操作。Qt 的数据库操作还可以很方便的与 model/view 架构进行整合。通常来说,对数据库的操作更多地在于对数据库表的操作,而这正是 model/view 架构的长项。不过,由于受到协议的限制,Qt 开源版本并没有提供上面所有驱动的二进制版本,而仅仅以源代码的形式提供。通常,Qt 只默认搭载 QSqlite 驱动(这个驱动实际还包括 Sqlite 数据库,也就是说,如果需要使用 Sqlite 的话,只需要该驱动即可)。我们可以选择把这些驱动作为 Qt 的一部分进行编译,也可以当作插件编译。如果习惯于使用 SQL 语句,我们可以选择QSqlQuery类;如果只需要使用高层次的数据库接口(不关心 SQL 语法)。

Qt为数据库访问提供的QtSql模块实现了数据库和Qt应用程序的无缝集成,同时为开发人员提供了一套与平台无关和具体所用数据库均无关的调用接口。这使得开发人员只需掌握基本的SQL语句,就能进行简单的数据库应用程序开发。如下表所示,QtSql 模块由3部分组成。

表2-1

2.3.2SQlite数据库介绍

SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中。它是D.RichardHipp创建的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。至今已经有14个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是链接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都存储在主机端上单一个文件中。此种简洁的设计是通过写入时锁定整个数据文件而完成的。

程序库实现了多数的SQL-92标准,包括事务,就是代表原子性、一致性、隔离性和持久性的(ACID),触发器和多数的复杂查询。不进行类型检查。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。

多个进程或线程可以同时访问同一个数据而没有问题。可以同时平行读取同一个数据库。但同一时间只能有一个进程或线程进行数据写入;否则会写入失败并得到一个错误信息(或者会自动重试一段时间,而这重试时间的长短是可以设置的)。

程序设计者还提供了一个叫做sqlite3的独立程序用来查询和管理SQLite数据库文件。SQLite的用户可以把这个程序当作如何写SQLite应用程序的示例。

同时它还支持事务处理功能等等。也有人说它象Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果你是个很小型的应用,或者你想做嵌入式开发,没有合适的数据库系统,那么你可以考虑使用SQLite。到2013年10月17日最新版本是 3.8.1 。它的官方网站是:https://www.doczj.com/doc/8b88503.html,或者http://www.sqlite .com .cn,能在上面获得源代码和文档。同时因为数据库结构简单,系统源代码也不是很多,也适合想研究数据库系统开发的专业人士

3需求分析

3.1需求分析

3.1.1基本功能需求

作为通讯录系统,最基本的功能是记录一个联系人的信息,那么,联系人的信息需要有哪些呢?这是一个在需求分析中要特别注意的问题,一般而言,通讯录使用者可能需要的信息有以下这些:

姓名、邮箱、QQ、手机号码、电话号码、生日、工作单位,其他备注信息。

这样开发者了解了需要保存的每个联系人的基本信息有哪些,同时,应当注意到,不是每一位联系人都有工作单位,也不是每一位联系人都有手机或者QQ。因此,除了姓名外,其他信息都可以是空的。与记录联系人信息相关的操作很容易联想到有增加联系人、删除联系人、对联系人信息进行更新以及查找联系人3种。所以对联系人的操作的需求归纳为以下4点:

创建新联系人、删除已存在的联系人信息、修改已存在的联系人信息、以及按照相关信息进行查找。

另外,为了避免所有人打开电脑都能随意查看机主的通讯录,本系统还应设置一个登录界面,即拥有机主的用户名和密码才能进入系统。而作为通讯录的拥有者,同时还会拥有一个数据库,可以方便的进行用户名的添加功能。使用该系统的主要为两种角色,分别为信息录入员和管理员,下面我们队这两种角色进行基本功能需求分析。

主要是实现功能:

1.可以进行登陆,注册。

2.可以添加联系人。添加联系人的按钮要写成“添加联系人”,不要写成创建卡片其他的,联系人的属性有:姓名,移动电话,固定电话,QQ号,备注。

3. 可以删除联系人。删除联系人的按钮写成“删除联系人”,删除的时候要出现提示框,提示是否删除,以免误删,点住某个联系人,点删除键,就可以删除。

4.实现多用户使用,用户登录需要有用户名,密码,进入程序后需要有管理用户的功能,这样可以使用户改自己的登录密码,或者添加新的使用用户。

5. 添加联系人后自动排序,按姓的开头字母排。

6.可以查找,由于之前做的可以按姓名,qq号等查询,所以这个也要做成可以按姓名,移动电话,固定电话,qq号查询。

7.可以修改联系人的信息。

8.可以修改界面的颜色。

9.可以备份通讯录,还可以导入之前备份的通讯录。

10.可以管理所有用户,进行用户密码修改。

3.1.2系统用例分析

图3-1显示了信息录入员操作的功能模块。包括了用户登录,联系人详细信息查看,创建联系人信息,修改联系人信息,删除联系人信息,用户密码修改。

图3-1用户操作用例图

4系统设计

4.1系统模块关系与划分

系统总体划分分为两大模块,即前台用户模块和后台数据库模块,如图4-1所示。而前台用户模块又分为了系统管理、控制模块、其它模块,每个模块之间的关系如图4-2所示。

图4-1系统整体模块划分

图4-2模块划分及模块之间的关系

4.1.1数据库设计

数据库应用系统的核心毫无疑问是存储在数据库中的数据。而要合理有效地存储数据,有赖于设计一个结构良好的数据库结构。同时,对于一些比较重要的系统,可能还需要考虑到备份、同步等问题。因此,一个系统选用何种数据库是要综合权衡各方面因素之后才能决定的。而对于通讯录而言,它主要应用于桌面,因此没有数据同步的要

求,数据量也很小,备份工作也不需要经常地进行。所以,可以考虑用Access 数据库作为存储手段。

在以数据库为核心的程序中,数据库设计的重要性不言而喻。如果设计不合理,不仅操作数据比较麻烦,增加应用程序设计人员的工作量,数据库的性能也会受到影响。本数据库的核心就是联系人信息表。通过进行正规化的表格设计,可以令数据库具有可读性和扩展性,同时也会提升应用的性能。正规化就是在设计表格时,消除冗余性和不协调的从属关系的过程。

图 4-3 用户实体E-R 图

图4-4 用户实体E-R 图 用户 用户名 密码 注册 修改密码

相关主题
文本预览
相关文档 最新文档