同学录管理系统.docx
- 文档编号:8971330
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:19
- 大小:433.23KB
同学录管理系统.docx
《同学录管理系统.docx》由会员分享,可在线阅读,更多相关《同学录管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
同学录管理系统
模块五:
综合实训)
【教学目的要求】
通过对一个VisualFoxPro编制应用程序“通讯录管理系统”开发案例的具体分析全面巩固和熟练知识。
【教学重点,难点】
以“通讯录管理系统”为例,应用VFP开发数据库应用系统全过程
【课时数】
4学时
【教具】
制作多媒体课件在多媒体教室讲解。
【教学过程】
一.需求分析随着信息社会的高速发展,人与人之间的联系越来越频繁,通讯方式越来越多样化,如何保证与朋友、同学、同事、领导、亲戚等之间的联系,并能方便快捷的查找、记录、修改其相关通讯信息。
仅靠以前单独的手工记录已远远不能满足当前的需要。
开发一个通讯录管理系统,借助计算机可以方便、快捷、灵活的管理个人的朋友及相关人员的通讯信息,了解友人相关信息,帮助与友人保持联络。
用户提出开发应用系统的要求后,软件开发者应通过调查研究归纳出目标系统的数据需求和功能需求。
(1)数据需求
通过调查,总结出用户对数据的需求如下:
个人档案表:
:
包括通讯联络个人的基本情况。
通讯信息表:
包括个人的通讯联络内客信息。
个人特长表:
包括通讯联络个人的专业特长信息。
用户表:
包括用户名与密码信息。
(2)功能需求
功能分析的任务是了解用户对数据的处理方法和输出格式。
1)基础数据录入
基础数据包括个人档案、通讯录、专业特长数据等。
要求系统能录入这些数据,并且能够进行修改。
注意在数据录入和修改的过程中应保持数据的参照完整性。
2)查询
能够按编号,按字段值,按分组,按信息选择分类查询出数据等。
3)维护
要求能够维护个人档案、通讯录、专业特长数据信息。
4)打印输出能打印个人通讯录信息、能打印按分类查询结果
二、总体设计
三、详细设计
1、数据库的设计
数据库设计的任务是确定系统所需的数据库。
数据库是表的集合,通常一个系统只需一个数据库。
数据库的设计一般可分为逻辑设计和物理设计两步。
逻辑设计的任务是根据需求分析,确定数据库所包含的表及字段、表间的关系,物理设计就是具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。
(一)逻辑设计
根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,并进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。
本例根据分析确定系统要设置如下表:
(1)通讯个人情况资料表(grda),包括字段:
编号,姓名,性别,出生日期,民族,党员否,简历,照片。
编号为主索引。
(2)通讯联络情况资料表(txl),包括字段:
编号,家庭电话,单位电话,移动电话,电子邮件,个人主页,传真电话,QQ号码,家庭地址,单位地址。
编号为主索引。
(3)通讯个人特殊信息表(zytc),包括编号,专业,专业年限,职称,英语水平。
编号为主索引。
(4)用户表(password),包括用户名与密码信息。
(二)物理设计
下面列出通讯录管理系统所有表的结构和索引,为了便于理解,将部分数据列出。
(1)通讯个人情况资料表
表名:
grda
结构:
记录:
(2)通讯联络情况资料表
表名:
txl
结构:
记录:
(3)通讯个人特殊信息表
表名:
zytc
结构:
记录:
(4)用户表
表名:
password
结构:
2.目录设计
建立“通讯录管理系统”文件夹,在文件夹内建立forms、data、pictures、reports、libs、menus、databack、help、progs子文件夹,分别用于存放表单、数据、图象、报表、类、菜单、备份、帮助、程序文件。
3.应用程序设计
(1)系统登录表单
实现功能:
输入用户名和密码,登录通讯录管理系统。
实现过程:
设计表单,添加控件,以“系统登录”为名存入forms子文件夹下。
设计界面如下:
设置Text1的PassWordChar属值为“*”,将Combo1的Rowsourcetype属性设为6-Fields,Rowsource属性值设为:
password.用户。
设计表单Load事件代码:
publiciasint
i=0
设计表单确定按钮click事件代码
i=i+1
selectpassword
locatefor用户=alltrim(bo1.value)
iffound().and.密码=alltrim(thisform.text1.value)
domenus\txl_main.mpr
doprogs\工具
releasethisform
else
ifi<3
=messagebox("操作员密码错!
"+chr(13)+"再试一次!
",48,"警告")
thisform.text1.setfocus
else
=messagebox("对不起,您错了三次了!
"+chr(13)+"非法用户,请您退出系统。
",48,"严重警告")
releasethisform
endif
endif
设计表单取消按钮click事件代码
thisform.release
设计表单退出按钮click事件代码
releasethisform
closeall
quit
(2).个人信息数据维护表单
实现功能:
添加、修改、删除、查看个人信息数据。
实现过程:
设计表单,添加控件,以“数据维护_1”为名存入forms子文件夹下。
设计界面如下:
表单设置数据环境:
添加grda表。
表单是每一控件分别与对应的表中字段相绑定。
如:
Text1的ControlSource属性值为grda.编号。
首记录按钮代码设计如下:
gotop
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.f.
thisform.Cmand4.enabled=.t.
thisform.refresh
末记录按钮代码设计如下:
gobottom
this.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.f.
thisform.refresh
上一条记录按钮代码设计如下:
skip-1
ifbof()
this.enabled=.f.
thisform.Cmand1.enabled=.f.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
else
this.enabled=.t.
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
下一条记录按钮代码设计如下:
skip1
ifeof()
this.enabled=.f.
thisform.Cmand2.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
else
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
增加记录按钮代码设计如下:
use
setexclusiveon
usedata\grda
appendblank
thisform.refresh
删除记录按钮代码设计如下:
a1=alltrim(thisform.text1.value)
nAnswer=messagebox('确定要删除吗?
',4+32,"重要提示")
ifnAnswer=6
selectgrda
use
usedata\grdaexclusive &&以独占方式打开数据表
delefromgrdawhere编号=a1 &&逻辑删除记录
delefromgrdawhereempty(编号)
pack &&物理删除
thisform.activate &&执行表单的Activate事件
messagebox('删除完毕',48,'操作成功!
')
usedata\grda
thisform.refresh
endif
退出按钮代码设计如下:
releasethisform
(3)通讯数据维护表单
实现功能:
修改、保存、查看个人通讯信息。
实现过程:
设计表单,添加控件,以“数据维护_2”为名存入forms子文件夹下。
设计界面如下:
表单设置数据环境:
添加txl表。
表单是每一控件分别与对应的表中字段相绑定。
如:
Text1的ControlSource属性值为txl.编号。
首记录按钮代码,末记录按钮代码,上一条记录按钮代码,下一条记录按钮代码,增加记录按钮代码,删除记录按钮代码,退出按钮代码设计代码同上。
(4).多表数据维护表单
实现功能:
修改、保存、查看个人信息,通讯信息,专业特长数据信息。
实现过程:
设计表单,添加控件,以“数据维护_3”为名存入forms子文件夹下。
设计界面如下:
表单设置数据环境:
添加grda ,txl,, zytc表。
首记录按钮代码,末记录按钮代码,上一条记录按钮代码,下一条记录按钮代码,退出按钮代码设计代码同上。
首记录按钮代码设计如下:
gotop
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.f.
thisform.Cmand4.enabled=.t.
thisform.refresh
末记录按钮代码设计如下:
gobottom
this.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.f.
thisform.refresh
上一条记录按钮代码设计如下:
skip-1
ifbof()
this.enabled=.f.
thisform.Cmand1.enabled=.f.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
else
this.enabled=.t.
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
下一条记录按钮代码设计如下:
skip1
ifeof()
this.enabled=.f.
thisform.Cmand2.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
else
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
修改记录按钮代码设计如下:
thisform.text1.readonly=.f.
thisform.text2.readonly=.f.
thisform.text3.readonly=.f.
thisform.text4.readonly=.f.
thisform.edit1.readonly=.f.
thisform.check1.readonly=.f.
thisform.pageframe1.page1.grdtxl.readonly=.f.
thisform.pageframe1.page2.grdzytc.readonly=.f.
保存记录按钮代码设计如下:
thisform.text1.readonly=.t.
thisform.text2.readonly=.t.
thisform.text3.readonly=.t.
thisform.text4.readonly=.t.
thisform.edit1.readonly=.t.
thisform.check1.readonly=.t.
thisform.pageframe1.page1.grdtxl.readonly=.t.
thisform.pageframe1.page2.grdzytc.readonly=.t.
(5)数据浏览表单
实现功能:
浏览个人信息,通讯信息,专业特长数据信息。
实现过程:
设计表单,添加控件,以“数据浏览_1”为名存入forms子文件夹下。
设计界面如下:
表单设置数据环境:
添加grda ,txl,, zytc表。
首记录按钮代码设计如下:
gotop
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.f.
thisform.Cmand4.enabled=.t.
thisform.refresh
末记录按钮代码设计如下:
gobottom
this.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.f.
thisform.refresh
上一条记录按钮代码设计如下:
skip-1
ifbof()
this.enabled=.f.
thisform.Cmand1.enabled=.f.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
else
this.enabled=.t.
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
下一条记录按钮代码设计如下:
skip1
ifeof()
this.enabled=.f.
thisform.Cmand2.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
else
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
退出按钮代码设计如下:
releasethisform
(6)通讯录数据浏览表单
实现功能:
浏览通讯信息数据信息。
实现过程:
设计表单,添加控件,以“数据浏览_2”为名存入forms子文件夹下。
设计界面如下:
表单设置数据环境:
添加txl表。
表单是每一控件分别与对应的表中字段相绑定。
如:
txt编号的ControlSource属性值为txl.编号。
首记录按钮代码设计如下:
gotop
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.f.thisform.Cmand4.enabled=.t.
thisform.refresh
末记录按钮代码设计如下:
gobottom
this.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.f.
thisform.refresh
上一条记录按钮代码设计如下:
skip-1
ifbof()
this.enabled=.f.
thisform.Cmand1.enabled=.f.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
else
this.enabled=.t.
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
下一条记录按钮代码设计如下:
skip1
ifeof()
this.enabled=.f.
thisform.Cmand2.enabled=.f.
thisform.Cmand1.enabled=.t.
thisform.Cmand3.enabled=.t.
else
thisform.Cmand1.enabled=.t.
thisform.Cmand2.enabled=.t.
thisform.Cmand3.enabled=.t.
thisform.Cmand4.enabled=.t.
endif
thisform.refresh
退出按钮代码设计如下:
releasethisform
(7)照片浏览表单
实现功能:
浏览照片数据信息。
实现过程:
设计表单,添加控件,以“数据浏览_3”为名存入forms子文件夹下。
设计界面如下:
表单设置数据环境:
添加grda表。
表单是每一控件分别与对应的表中字段相绑定。
如:
txt编号的ControlSource属性值为grda.编号。
按钮代码同上。
(8)个人信息数据查询表单
实现功能:
按编号查询个人信息数据。
实现过程:
设计表单,添加控件,以“数据查询_1”为名存入forms子文件夹下。
设计界面如下:
表单设置数据环境:
添加grda表。
表单是每一控件分别与对应的表中字段相绑定。
如:
Combo1的ControlSource属性值为grda.编号,Text1的ControlSource属性值为grda.编号。
按编号查询记录按钮代码设计如下:
cCurrentProcedure=SYS(16,1)
nPathStart=AT(":
",cCurrentProcedure)-1nLenOfPath=RAT("\",cCurrentProcedure)-(nPathStart)
bo1.setfocus
locateallforbo1.value=grda.编号
thisform.text1.value=grda.编号
thisform.text2.value=grda.姓名
thisform.text3.value=grda.出生日期
thisform.text4.value=grda.性别
thisform.check1.value=grda.党员否
thisform.text5.value=grda.民族
thisform.edit1.value=grda.简历
thisform.image1.controlsource="grda.照片"
*thisform.image1.picture=SUBSTR(cCurrentProcedure,nPathStart,nLenofPath)+'\pictures\'+allt(grda.姓名)+'.jpg'
thisform.refresh
bo1.refresh
(9)按字段值数据查询表单
实现功能:
按字段值数据查询个人通讯信息。
实现过程:
设计表单,添加控件,以“数据查询_2”为名存入forms子文件夹下。
设计界面如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同学录 管理 系统