南航继续教育学院
课程名称: QQ好友通信录管理系统设计 姓 名: 彭志 学 号: 040720121 指导老师: 陆荣
日 期: 2010-12-18
目录
一、系统简介 ..................................... 3 二、系统结构设计 ................................. 3 三、数据库设计 ................................... 4
1 、数据库的逻辑设计........................................................................................................... 4 2 、数据库的物理设计........................................................................................................... 4 3 、数据库的具体实现........................................................................................................... 5
3.1、创建系统目录结构 ............................................................................................... 5 3.2、创建数据库及表结构 ........................................................................................... 6
四、各主要部件设计 ............................... 6
1、创建启动界面..................................................................................................................... 6 2、创建系统登录界面............................................................................................................. 7 3、设计系统主菜单及主程序 ................................................................................................. 8 4、系统功能表单设计............................................................................................................. 9 5、系统退出........................................................................................................................... 11
五、调试分析 .................................... 12 六、用户使用说明 ................................ 12 七、结束语 ...................................... 12
1、自我评价........................................................................................................................... 12 2、心得体会........................................................................................................................... 12
QQ好友通讯录管理系统设计
一、系统简介
随着人们生活水平的提高,通讯及交通工具的发展使得人与人之间的关系更加紧密,需要人们记住复杂的人员关系是困难,也是很多人头疼的事情。在这种情况下,我希望设计一个QQ好友通信录管理系统,以方便的实现对好友的相关信息进行归类、修改、查询等操作。
本系统采用Visual PoxPro 6.0作为开发平台,完成通讯录管理系统的设计,实现对好友基本资料的常规管理,并能够达到操作过程中的直观、方便、安全等要求。
二、系统结构设计
本系统主要完成对好友基本资料及好友分组信息的基本管理,因此本系统主要完成和实现的功能有密码的设置、好友基本信息和相片信息管理和好友分组。在设计中还要考虑到系统数据库的维护功能,能够及时的根据用户的需求进行进行数据的查看、添加、删除、修改等操作。
采用模块化的设计思想,可以大大提高系统开发的效率,并且可以最大限度的减少不必要的错误。在对系统功能分析的基础上,考虑到Visual FoxPro6.0程序设计的特点,应用模块化的设计思路,得到下图(1)所示的QQ好友通讯录管理系统的功能模块图。
QQ通讯录管理系统 密码管理 基本信息浏览 基本信息管理 好友分组管理 退 出 系统登录验证 系统密码设置 所有信息浏览 相片信息浏览 文字信息管理 相片信息管理 管理好友分组 退出系统
图(1)系统功能模块框图
三、数据库设计
在数据库应用系统中,所有数据都存放在数据库的文件中,可以由不同的用户共享,为了保持数据的性,要求尽量减少数据结构与应用程序之间的相互影响与依赖。所以在数据库应用系统的开发中,数据库设计通常是一项的开发活动,而且总是安排在应用程序设计之前完成。
一个好的数据库设计可以减少信息在数据库中的存储量,提高数据的完整性和一致性,使系统具有较快的响应速度,简化应用程序的实现。通常,数据库的设计主要包括数据库的逻辑设计和数据库的物理设计两个方面的内容。
1 、数据库的逻辑设计
数据库的逻辑设计将数据存储在在一个或多个数据库中,指明各数据库中表的个数,每个表所包含的字段及其属性,并安排各个表之间的关联。
进行数据库设计的依据有3个:第一是在进行系统调查时得出的各种处理数据;第二是功能设计结果;第三是数据库设计规范化理论。数据库设计是系统设计的一项基本工作,其效果的好坏,对后续设计、调试、使用、维护等工作关系极大,因此,一定要高度重视这一部分工作。当然,我们不能简单地将数据库设计理解为在计算机上用可视化的方法建立表的过程,其主要工作是建立一种完整、规范的数据模型以支持整个应用系统对数据的要求。
根据功能分析,本系统需要保存的数据包括用户密码、好友基本文字信息、好友的相片信息、好友分组信息等。一般而言,通讯录系统的用户只有一个,即使用者本人,其他人未经许可无法进入,因此设置一个系统登录用户,并设置初始密码为123456。同时为实现密码设置修改的功能,采用一个内存文件来存储用户密码。好友的基本文字信息、好友相片信息、好友分组信息存储在数据库中。
针对本系统涉及的数据,可以设计出如下所示的数据项和数据结构: (1)文字信息:QQ号码、分组名称、好友昵称、真实姓名、年龄、省份、城市、移动电话、公司电话、家庭电话、个性签名、备注信息。
(2)相片信息:QQ号码、相片。 (3)分组信息:分组名称。
2 、数据库的物理设计
数据库的物理设计就是用指定的开发工具软件来创建实际的数据库,包括定义数据表以及表之间的关联。
完成数据库的逻辑设计后,接下来就是将这些结构转化为Visual FoxPro6.0数据库系统所支持的实际数据模型。根据逻辑设计的结果,本系统设计一个数据库,名为“OICQ.DBC”,并在数据库中建立3张表。
(1)Friend.DBF:存储好友的基本信息,其表结构及索引项如表1所示。
(2)Photo.DBF:存储好友的相片信息,其表结构及索引项设置如表2所示。 (3)Group.DBF:存储好友分组信息,其表结构及索引项设置如表3所示。
表1 好友基本信息(Friend.DBF)
序号 1 2 3 4 5 6 7 8 9 10 11 12 qqnumber 字符型 groupname 字符型 nickname 字符型 realname 字符型 age 整型 10 20 20 10 4 10 10 11 11 11 4 4 升序 升序 主索引 普通索引 QQ号码 好友分组 好友昵称 真实姓名 年龄 省份 所在城市 移动电话 家庭电话 公司电话 个性签名 备注信息 字段名 类型 宽度 索引 索引类型 说明 province 字符型 city 字符型 mobiletel 字符型 hometel comtel 字符型 字符型 signature 备注型 remark 备注型 表2 好友的相片信息(Photo.DBF)
序号 1 2 字段名 Photo qqnumber 类型 备注型 字符型 宽度 4 10 索引 索引类型 普通索引 说明 相片 所属QQ号码 升序 表3 好友分组信息(Group.DBF)
序号 1 字段名 groupname 类型 字符型 宽度 20 索引 升序 索引类型 说明 普通索引 好友分组名称 3 、数据库的具体实现
系统设计和数据库设计完成之后,下面就是利用Visual FoxPro 6.0实现该系统的具体过程和步骤。 3.1、创建系统目录结构
为方便文件的组织和管理,首先在磁盘上创建一个的系统文件夹,由于存储创建系统的所有文件及文件夹。例如在H盘根目录创建文件夹:QQ通讯录管理系统。然后在此文件夹下创建DATA、FORMS、GRAPHICS、MENUS、PROGS 5个子文件夹,分别用于存放数据文件、表单文件、图像和图表文件、菜单文件、程序文件。创建好的目录结构如图(2)所示。
图(2)系统目录结构
3.2、创建数据库及表结构
VFP推荐在项目管理器中开发应用程序,因为项目管理器给开发工作带来很多方便。在项目管理器中创建一个项目后,应用程序就具备了一个开发框架,然后在这个框架中,利用项目管理器所提供的强大功能,按照需求来实现应用程序的设计。
首先,新建一个项目文件,文件名为:QQ通讯录管理系统.PJX。为操作方便设置默认目录为:H:\\QQ通讯录管理系统,即系统预先创建的用于存放本系统文件的主目录。然后在项目管理器中,创建一个新的数据库,存储位置为DATA子目录,文件命名为:Qicq.DBC。在新建的数据库中创建3张数据库表分别命名为:Friend.DBF、Photo.DBF、Group.DBF,并且为三张表分别建立索引,最后建立表间的永久关系。
当整个数据库、数据库表及其索引关联建立好以后就可以得到如下图(3)所示的数据库设计器视图。
图(3)数据库表及其关联
四、各主要部件设计
1、创建启动界面
启动界面通常用于显示程序的版本号以及出版社公司的版权及标志等信息,引导用户进入系统操作。
启动界面的编写思路:在系统刚刚启动时,设定启动画面的显示时间,这里设置为三秒,然后启动一个计时器控件,在计时器的timer事件中不停的检测等待时间是否已经到达,如果等待时间已到,则退出此表单,进入相应的程序界面。 创建一个新的表单文件,文件命名为FrmSplash.SCX。添加所需控件标签控件、计时器控件并依次设置表单及其各控件属性。创建好的启动界面如下图(4)所示。
图(4)启动界面
计时器将会在每隔InterVal指定的时间间隔重复激发Timer事件,这里设置值为1000。当等待三秒时间到达时,则启动系统登录界面,并销毁启动界面窗口。其中为计时器控件的Timer事件编写的代码如下:
2、创建系统登录界面
当用户进入系统时,必须进行身份验证,通过身份验证可以防止非本人用户的进入,确保信息的安全性。
本系统初始运行时,默认密码为123456,用户进入系统后可以进行密码设置,修改的密码存储在名为PS.mem的内存文件中。用户登录系统时首先检查PS.mem文件是否存在,如果存在则使用此文件里存储的密码与用户输入密码进行比较,否者使用初始密码“123456”与用户输入密码比较。如果密码正确则进
入系统,如果不正确可以让用户重新输入,如果连续3次输入密码错误则退出系统。
系统的登录界面如图(5)所示。
图(5)系统登录界面
“进入”按钮的单击(click)事件的处理代码如下:
“退出”按钮单击(click)事件的编写代码为:
3、设计系统主菜单及主程序
当用户输入用户名和密码通过验证正确以后,屏幕出现主表单,即系统操作主菜单。
根据本系统的功能,主菜单主要由“密码管理”、“基本信息浏览”、“基本信息浏览”、“分组管理”、“退出”五个菜单项及相应子菜单构成。 打开项目管理器中的【其他】选项卡,选中【菜单】项,然后单击【新建】按钮,在弹出的对话框中单击【菜单】按钮,参照总体结构图,在打开的菜单设计器中,设计主菜单如下图(6)所示。
图(6)系统主菜单设计
保证系统正常运行的前提设置系统运行的环境,这需要通过一个主程序来完成。在主程序中设置有关的系统环境,然后进入程序主界面,等待用户的操作。主程序的执行过程:先进行环境设置、初始变量设置,在调用do form forms\\frmSplash.SCX进入启动画面,并调用read events 进入消息循环;当用户单击“退出”菜单时,由clear events命令结束消息循环,还原系统初始环境并退出。程序代码见main.prg文件。
4、系统功能表单设计
为便于好友信息的管理,将好友分为不同的组别,分组管理的功能主要包括添加、删除、修改、和查看分组。这里采用表单向导实现,最终的设计结果如图(7)所示。
图(7)分组管理表单界面
好友基本信息管理的实现方式与管理好友分组类似,也是采用表单向导完成,并生成的frmAddFriend.scx表单中各个控件位置进行适当的调整和属性的重新设置,界面更美观,紧凑。其最终结果如图(8)所示。
图(8)基本信息管理表单界面
好友信息浏览可以同时查看好友的文字信息和相片信息。并可以根据好友分组进行查看。信息浏览窗口的最终界面如图(9)所示。其中控件的程序编程代码,这里不再一一给出,请查阅项目中相关程序文件。
图(9)浏览好友的所有信息
照片信息管理主要完成好友相片的添加和删除。其相片信息管理窗口如下图(10)所示。相关程序源代码见项目文件。
图(10)照片信息管理界面
一般情况下,信息管理系统都应该具有密码和权限设置功能,以防止非本人进入系统。本系统为了保证用户好友资料的安全,设计了密码设置和密码修改的功能。密码设置窗口界面如下图(11)所示。
图(11)密码设置窗口界面
5、系统退出
图(12)系统退出确认界面
五、调试分析
程序开发完后,需要对程序进行调试运行测试。QQ好友通讯录管理系统各模块的运行调试结果如图(13)-(18)所示。
六、用户使用说明
启动本系统时,首先弹出一个启动窗口,然后进入到系统登录窗口。系统登录窗口要求用户输入密码验证,(初始密码为“123456”),只有密码输入正确才会进入系统主操作界面,进行其他操作。系统为用户提供3次密码输入错误更改的机会,如果连续3次输入的密码均不正确,则自动退出系统。通过系统菜单选项可以完成密码的设置、好友信息的浏览、信息的管理,分组设置等功能。操作完成可以通过系统菜单退出系统。
七、结束语
1、自我评价
本课程设计在参阅相关了资料的基础上,借鉴类似系统的开发实例,由自己一人亲自动手设计完成,其中系统功能的整个流程能基本成功实现。在开发过程中遇到的大部分问题通过查阅相关书籍,经过自己反复的修改验证得到解决。但其中有关的细节做的不是很好,比如密码设置功能不是很稳定,有时会出现修改密码后,在此启动系统会提示“PSW变量未找到”的错误;好友基本信息的浏览有时不会立马显示出相片,单击“下一张”之后才显示出来。
总体来讲,整个系统的功能框架基本已经实现,系统功能相对简单,功能的实现中也存在不妥之处,很多还需要进一步完善。其中界面的设计花费了不少功夫,尽力做到是每个界面美观大方,结构布局合理。
如果要给自己评一下等级的话(优秀、良好、中等、及格和不及格),我认为“中等”还是蛮合理。
2、心得体会
本次课程设计是对我们学习程序设计和数据库管理系统设计的一次大检验。在这一过程中进一步提高了动手能力,对所学知识的运用能力,锻炼了自己发现问题解决问题的能力。从中发现了自己很多不足,也发觉理论的学习与具体实践的差别。系统设计必须正确处理部分与整体功能之间的关联,在各个小的功能实现之后如何合理的将部分整合成一个大的整体是系统设计成功的关键环节。 系统功能相对比较完善,简单易操作。能够实现一般通讯录的基本要求。本人认为多彩的窗口界面设计是本系统的一大特色,也是自己最满意的地方。