综合性实验项目“通讯录管理系统的设计”的内容本实验项目是对本课程大部分知识点如数据库设计、表单设计、程序设计的综合应用,要求设计出一个具有登录验证、数据输入、数据显示、修改和查询功能的学生个人通讯录管理系统。实验要求:1、数据库设计:建立通讯录管理系统的数据库,通讯录包括姓名、班级、电话、Email、QQ号等字段。2、系统结构设计:利用模块化设计思想,将系统进行模块划分,并给出系统功能结构图。3、功能模块设计(包括但不限于以下内容):(1)登录功能:要求登录后才可以进入通讯录管理界面。(2)数据输入功能:可以增加记录。(3)数据显示功能:可以显示每条记录。(4)查询功能:可以按姓名查找通讯录信息。(5)修改功能:可以修改通讯录信息。(6)删除功能:可以按姓名删除通讯录信息。(7)应提供一个系统主界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。4、程序调试5、组装发布,生成应用程序,设计成品上传到FTP服务器上。6、设计报告:内容包括本程序的功能描述、程序设计思想系统现有的问题,系统开发的收获与提高。实验条件:PIV以上计算机,至少安装VisualFoxPro6.0,可接入互联网。学生能力培养的重点:培养学生数据库设计的能力,培养学生程序设计的能力,使学生掌握系统开发的一般过程,培养学生协作的能力。附:“通讯录管理系统的设计”参考【目的要求】通过“通讯录管理系统”的开发案例,全面巩固和熟练掌握VFP应用系统开发知识。【内容】一、需求分析随着信息社会的高速发展,人与人之间的联系越来越频繁,通讯方式越来越多样化,如何保证与朋友、同学、同事、领导、亲戚等之间的联系,并能方便快捷的查找、记录、修改其相关通讯信息。仅靠以前单独的手工记录已远远不能满足当前的需要。开发一个通讯录管理系统,借助计算机可以方便、快捷、灵活的管理个人的朋友及相关人员的通讯信息,了解友人相关信息,帮助与友人保持联络。用户提出开发应用系统的要求后,软件开发者应通过调查研究归纳出目标系统的数据需求和功能需求。(1)数据需求通过调查,总结出用户对数据的需求如下:个人档案表:包括联系人的基本情况。通讯信息表:包括联系人的联络内容信息。用户表:包括系统管理的用户名与密码信息。(2)功能需求A.基础数据录入基础数据包括个人档案、通讯信息数据等。要求系统能录入这些数据,并且能够进行修改。注意在数据录入和修改的过程中应保持数据的参照完整性。B.查询能够按编号,按字段值,按分组,按信息选择分类查询出数据等。C.维护要求能够维护个人档案、通讯录数据信息,即进行修改、删除等操作。D.打印输出能打印个人通讯录信息、能按分类查询结果进行打印二、总体设计注:数据录入、数据维护、数据浏览可放在一个表单中。三、详细设计(一)数据库的设计数据库设计的任务是确定系统所需的数据库。数据库是表的集合,通常一个系统只需一个数据库。设计的任务是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。1、根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,并进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。本例根据分析确定系统要设置如下表:(1)个人档案表(grda),包括以下字段:编号,姓名,性别,出生日期,民族,党员否,简历,照片。编号为主索引。(2)通讯信息表(txl),包括以下字段:编号,家庭电话,单位电话,移动电话,电子邮件,个人主页,传真电话,QQ号码,家庭地址,单位地址。编号为主索引。(3)管理员表(gly),包括本系统管理员的用户名与密码信息。其中,个人档案表与通讯信息表为一对一的关系,管理员表可作为自由表。2、具体结构可以参考以下内容,数据最好根据自己的实际情况输入。(1)个人档案表表名:grda结构:字段名类型宽度小数位数索引编号字符型7主索引姓名字符型8性别字符型2出生日期日期型8民族字符型10党员否逻辑型1简历备注型4照片通用型4报表打印个人信息报表打印通讯录报表打印数据查询按编号查询个人数据按姓名查询个人数据按编号查询联系方式按姓名查询联系方式参考记录:(2)通讯信息表表名:txl结构:参考记录:编号姓名家庭电话单位电话移动电话电子邮件个人主页QQ号码家庭地址bj10001刘伟箭0791-381829713907912222bbb@hotmail.combj11002刘简捷13807952111aaa@163.com(3)管理员表表名:gly结构:字段名类型宽度小数位数用户字符型10密码密码10参考记录:用户密码admin123456User01111111(二)目录设计建立“通讯录管理系统”文件夹,设置该文件夹为默认工作目录,系统设计过程中产生的文件均保存在该文件夹下。(三)建立一个项目文件“通讯录管理项目”。(四)打开上述项目文件,新建一个数据库“通讯录管理数据库”,在该数据库中建立如第一步所示三个表文件。(五)程序设计(1)个人档案数据维护表单,文件名为grdaedit实现功能:添加、修改、删除、查看个人信息数据。实现过程:可采用表单向导制作针对个人档案表数据维护的表单。参考界面如下:(2)通讯信息数据维护表单,文件名为txledit实现功能:修改、保存、查看个人通讯信息。实现过程:可采用表单向导制作针对通讯信息表数据维护的表单。参考界面如下:(3)个人信息数据查询表单1,文件名为bhcx实现功能:按编号查询个人信息数据参考设计界面如下:设计过程:设置数据环境:添加grda表。表单中每一控件分别与对应的表中字段相绑定。如:Combo1的ControlSource属性值为grda.编号,Text1的ControlSource属性值为grda.编号。“查询”按钮的Click代码如下:bh=thisform.combo1.valuelocatefor编号=bhthisform.refresh(4)个人信息数据查询表单2,文件名为xmcx实现功能:按姓名查询个人信息数据设计过程:参考(4)(5)联系方式数据查询表单1,文件名为txlcx1实现功能:按编号查询个人联系方式数据设计过程:参考(4)(6)联系方式数据查询表单1,文件名为txlcx2实现功能:按姓名查询个人联系方式数据设计过程:参考(4)(7)个人通讯录报表实现功能:直接生成个人通讯录报表,报表文件名为“通讯录报表”报表界面如下:可在菜单中调用该报表。(7)系统登录表单,文件名为login.scx。(可参考实验十二)实现功能:输入用户名和密码,登录通讯录管理系统。设计界面如下:将管理员表gly添加到数据环境中。属性设置:对象名属性名属性值Combo1RowSourceType6-FieldsCombo1RowSourcegly.用户Text1PassWordChar*“确定”按钮的click事件代码:username=thisform.combo1.valuepwd=alltrim(thisform.text1.value)locatefor用户=usernameiffound().and.密码=pwddoformfrmmain.scxthisform.releaseelsemessagebox(操作员密码错!)thisform.text1.setfocusendif“退出”按钮的click事件代码:releasethisformcloseallquit(8)设计系统主菜单,文件名为menumain。(可参考实验十四)菜单设计参考如下:其中,个人信息维护等子菜单的命令分别调用前面所设计的相应表单。例如:个人信息维护的命令为:doformgrdaedit通讯信息维护的命令为:doformtxledit个人信息查询的命令为:doformbhcx通讯信息查询的命令为:doformxmcx菜单项“退出系统”的过程如下:SetsysmenutodefaultCleareventsquit(9)系统主界面表单,文件名为frmmain。(可参考实验十四)实现功能:顶层表单,显示系统主菜单。表单的Init事件代码如下:Domenumain.mprwiththis,.T.(10)系统主程序,文件名为main.prgDoformloginReadevents6、连编实现目标:通过项目管理器管理本系统各类文件,编译成EXE文件。(1)设置“main.prg”为主文件(2)通过“项目”菜单的“项目信息”功能设置好项目信息。(3)单击项目管理器中“连编”按钮,将该系统连编成可执行文件“通讯录管理系统.exe”。7.退出VFP,直接运行“通讯录管理系统.exe”,测试相关功能。8.编写实验报告和心得,将所设计的系统和实验心得发送至rainbowli@163.com。备注:本例所编写代码较为简单,只考虑了最基本的功能,同学们可根据自己的需要对数据库、表单设计进行增删、或丰富功能。