课程设计模板2.docx
《课程设计模板2.docx》由会员分享,可在线阅读,更多相关《课程设计模板2.docx(28页珍藏版)》请在冰豆网上搜索。
课程设计模板2
摘要
VisualFoxPro是一种用于数据库设计、创建和管理的软件,利用它可以对各种事务管理工作中的大量数据进行有效的管理并满足数据检索的需要。
随着计算机技术的飞速发展和计算机在信息管理中应用的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便,于是利用计算机实现通讯录管理与应用系统势在必行。
本系统就是根据日益繁多的人际交往的需要,用VisualFoxPro6.0开发一个通讯录管理系统与应用来实现对通讯信息准确、高效的管理和维护。
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成通讯应用管理的全过程,包括数据的浏览、修改、添加和删除,利用不同方式对信息进行管理和查询以及用户管理权限的改变等。
本文主要介绍了本课题的开发背景,系统的设计思路、总体设计。
重点说明了系统的各个功能模块的设计与实现,并对系统进行了测试和运行说明。
关键词:
VisualFoxPro6.0,通讯录管理与应用,信息管理和测试
目录
1绪论1
1.1研究背景1
1.2开发意义1
1.3本文结构2
2需求分析3
2.1系统的可行性分析3
2.1.1经济上的可行性3
2.1.2技术上的可行性3
2.2功能需求分析4
3概要设计5
3.1系统功能模块设计5
3.1.1日常档案管理模块5
3.1.2毕业生档案管理模块5
3.1.3学生成绩管理模块5
3.1.4用户权限修改模块5
3.2系统模块结构图5
3.3数据库的设计6
4详细设计9
4.1主程序的设计9
4.2登录界面的设计10
4.3主界面设计12
4.4日常档案管理模块13
4.5毕业生档案管理模块17
4.6学生成绩管理模块18
4.7用户权限修改模块19
5系统连编与运行23
5.1连编23
5.2运行23
结论24
参考文献25
1绪论
1.1研究背景
通讯录管理是一个专门针对人际交往问题、存储用户信息以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
随着近年来计算机技术在我国的迅猛发展以及人际交往的日益繁多,人们的生活摆脱了传统式的记事本、电话簿,越来越多是使用计算机。
因此利用计算机来对通讯录信息进行管理已成为一个不可逆转的趋势。
计算机所拥有的存储量大、易查找、易更新、保密性好、数据处理快等诸多优点极大的解决了以前记事本、电话薄传统管理信息的缺点,提高了工作效率。
通讯录作为一个大量存储信息的工具,信息的使用、查找、修改等的实现尤为重要。
面对通讯信息量不断增长的问题,很多用户都选择了在通讯录管理中引入计算机管理系统。
因此一个好的通讯录管理与应用系统,对于任何一所企业或个人来说都是非常需要的。
1.2开发意义
通讯录系统管理与应用,是针对通讯档案资料管理情况而设计的一款信息管理应用。
该系统应用VisualFoxPro6.0自带的数据库来存储每个人的联系方式和资料,方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
开发该系统主要有两方面的意义,一方面利用计算机来管理通讯录信息和资料,可以减少大量的人力资源,提高工作效率。
另一方面用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
1.3本文结构
本文主要由以下几部分构成:
(1)绪论。
主要包括研究背景和现存在的问题。
(2)系统分析。
主要包括系统在经济上和技术上的可行性。
(3)系统总体设计。
主要包括系统功能模块设计和数据库设计两部分。
(4)系统详细设计。
主要介绍了各个界面的具体功能的操作方法和实现方法。
(5)系统的测试。
2需求分析
目前,日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,使用记事本等管理大量资料信息,不但工作繁琐而且效率低下,如果利用现代化的管理方式来管理这些信息的话,就会简单方便地多。
2.1系统的可行性分析
目的:
可行性研究的目的是用最小的代价在尽可能少的时间内确定问题是否能够解决。
而该系统正是用比较简单的VFP语言,来编写的小型的、实用的通讯录信息管理系统,既能很好的完成对用户信息的管理,又比较经济实惠。
2.1.1经济上的可行性
由于计算机的普及和人民生活水平的提高,使用电脑完成对通讯录管理势在必行,微机的配置只要在存储量,速度方面都能满足数据库运行的要求就可以了,故在计算机硬件方面不需要太大的花销。
2.1.2技术上的可行性
本系统采用的是VFP语言,在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上也有很丰富的相关资料,通过参考一些功能模块程序的设计,实现该系统是完全可以的。
本系统的设计是在windowsxp中文版环境下,使用VisualFoxpro6.0开发的。
它是可以运行于windows2000及xp相关平台的数据库开发系统。
VisualFoxpro6.0不仅可以简化数据库管理,而且应用程序的开发流程更为合理,它使组织数据,定义数据库规则和建立应用程序等工作变得简单易行,利用可视化的设计工具和向导,用户可以快速地创建表单、查询等。
2.2功能需求分析
本系统主要实现对通讯录信息进行管理,需要实现以下几个方面的管理功能:
(1)通讯录管理信息:
信息的添加、删除、浏览、修改和查询等操作。
(2)系统维护:
包括用户登录,用户修改密码,数据的修改、浏览、添加、删除以及按姓名、联系方式、地址进行查询。
(3)打印报表:
可以根据用户需要打印特定条件的信息报表。
3概要设计
3.1系统功能模块设计
通讯录管理系统主要功能分为三个模块,包括用户登录和修改密码、系统维护和数据的操作、信息管理和查询。
基本上满足了用户通讯录管理与应用的必需功能,下面将详细介绍各功能模块。
3.1.1系统数据流程
在系统数据流程图中,该系统完成对用户通讯信息管理的使用和应用。
如用户登录、修改、查询、记录的基本操作等主要功能。
在本系统设计中,为了保持界面的一致性,所有的日常操作都使用统一的操作界面,根据用户的选择来显示操作的功能按钮。
3.1.2用户权限修改模块
该模块是对系统的使用者进行管理的场所,包括新建用户,修改,查询用户等的功能。
3.2系统模块结构图
3.2.1系统功能结构模块
本次系统设计主要有登录管理、菜单界面管理、系统维护管理四个系统模块组成,其系统模块结构如图3.1所示。
图3.2系统功能结构图
3.2.2用户功能模块
3.3数据库的设计
数据库中包括系统用户表、通讯表各表结构设计如下。
1、系统用户表
用户表代表了一个用户的个人信息,是不允许随意修改的,所以本系统采用了一定的保密措施,主要是用户的管理,所有的用户信息保存在这个表中,该表被命名为用户表.Dbf,其结构如表3.4所示。
表3.4系统用户表结构
编号
字段名
字段类型
字段长度
小数位数
作用
1
姓名
字符型
10
0
用户名称
2
密码
字符型
10
0
用户密码
3
用户类型
数值型
1
0
用户类型
2、通讯录.DBF。
其结构如表3.5所示。
主要是通讯录信息的管理,包括联系方式、地址、电话等。
该表被命名为通讯录.DBF,其结构如表3.5所示。
表3.5通讯录表结构
编号
字段名
字段类型
字段长度
小数位数
1
编号
字符型
2
0
2
姓名
字符型
6
0
3
性别
字符型
2
0
4
出生年月
日期型
8
0
5
住宅电话
字符型
10
0
6
办公电话
字符型
10
0
7
手机
字符型
11
0
8
小灵通
字符型
8
0
9
qq
字符型
9
0
10
e-mail
字符型
20
0
11
备注
字符型
10
0
12
家庭住址
字符型
10
0
13
邮政编码
字符型
10
4详细设计
4.1主程序的设计
程序在运行期间要使用部分的变量来传递数据,所有这些变量都是在程序中定义的。
在VisualFoxPro6.0中新建一个项目文件,以“通讯录管理系统”的名称保存。
打开该项目的管理器,在管理器的“代码”选项卡中添加一个名为“MAIN”的代码文件,并在“MAIN”代码文件窗口中添加代码如下:
SETTALKOFF&&关闭对话
SETESCAPEOFF&&关闭ESCAPE键
SETEXACTON&&打开完全匹配
SETEXCLUSIVEON&&打开独占
SETCONSOLEON&&将输出结果到发送到主窗口或当前窗口
SETDATETOLONG&&设置长日期
SETSCOREOFF&&关闭分值栏
SETSAFETYOFF&&关闭安全提示
SETSTATUSBAROFF&&关闭系统提示栏
SETCENTURYON&&打开世纪开关
SETDELETEDON&&屏闭删除项
SETSYSMENUOFF&&关闭系统菜单
SETNOTIFYOFF&&关闭提示
&&设置系统窗口属性
_SCREEN.MaxButton=.F.&&取消最大化按钮
_SCREEN.MaxWidth=800&&设置最大宽度
_SCREEN.MaxHeight=600&&设置最大高度
_SCREEN.Caption="个人通讯录管理系统"&&设置窗口标题
_SCREEN.Picture='6.jpg'&&设置窗口背景图片
_SCREEN.AutoCenter=.T.&&指定表单初次显示时,自动位于主窗口中央
&&定义全局变量
publicUserName,UserType
&&打开菜单
Doxtcd.mpr
DoFormfrmLogin.scx
READEVENTS
ProcedureOnQuit
CLEAREVENTS
CLOSEALL
QUIT
Endproc
4.2登录界面的设计
登录界面的作用是为了验证用户的合法性,只有合法的用户才能进入系统,并且要求使用者提供密码。
通过上述措施就限制了非法用户的进入,确保了信息的安全性。
设计完成的登录界面如图4.1所示。
图4.1登录设计界面
在该界面中显示当前的操作时间,该时间为本系统从操作系统中取出的时间,而且不允许操作者进行修改,所以在表单执行时会自动显示该时间,并设置成只读状态。
此外,该登录界面还设置了一些美化操作。
采用动态效果,让“欢迎使用通讯录系统”动起来。
密码错误将不许用户进入系统。
上述功能的代码设计如下:
对象cmdOK过程:
Click
IFALLTRIM(thisform.txtUserName.Value)==''
MessageBox("请输入用户名")
RETURN
ENDIF
IFALLTRIM(thisform.txtUserPwd.Value)==''
MessageBox("请输入密码")
RETURN
ENDIF
SELECT用户表
&&查找指定用户名为的记录
LocateForAllt(用户名)=Allt(thisform.txtUserName.Value)
IfFound()==.T.&&如果找到
IfAllt(密码)==Allt(thisform.txtUserPwd.Value)&&比较密码,成功则进入
MessageBox("欢迎光临",64,"提示信息")
UserName=用户名
UserType=用户类型
releasethisform
Else&&比较密码不成功
MessageBox("密码不正确",16,"错误提示")
Endif
Else&&没有找到指定用户
MessageBox("用户名不存在",16,"错误提示")
Endif
对象:
Timer1过程:
Timer
locali,j,k
i=int(rand()*255)
j=int(rand()*255)
k=int(rand()*255)
thisform.label3.forecolor=RGB(i,j,k)
ifthisform.label3.left+180>0
thisform.label3.left=thisform.label3.left-10
else
thisform.label3.left=360
endif
4.3主界面设计
该系统提供的所有功能都放置在一个统一的界面中供用户选择,该界面称之为主界面。
本系统的主界面采用了菜单交互方式,如图4.2所示。
图4.2主界面
在此界面上还提供了4项功能,下面对其分别进行介绍。
4.4用户密码管理模块
用户密码修改界面如图4.3所示。
该界面的所有功能都在相同的界面下操作,选择菜单对应的用户密码修改/修改密码命令,弹出以下界面。
上述功能的代码设计如下:
图4.3日常管理设计界面
(1)确定:
对象cmdOk过程:
Click
Ifthisform.txt用户名.Value=""
MessageBox("用户名不存在",16,"提示")
return
Endif
IfALLTRIM(thisform.txtPwd.Value)!
=ALLTRIM(thisform.txt密码.Value)
MessageBox("密码不正确",16,"提示")
return
Endif
IfALLTRIM(thisform.txtPwd1.Value)==""
MessageBox("请输入新密码",16,"提示")
return
Endif
IfALLTRIM(thisform.txtPwd1.Value)!
=ALLTRIM(thisform.txtPwd2.Value)
MessageBox("新密码与确认密码不同",16,"提示")
return
Endif
&&设置用户记录的密码
thisform.txt密码.Value=ALLTRIM(thisform.txtPwd1.Value)
TableUpdate(.T.)&&保存缓冲区中的数据
releasethisform&&关闭表单
MessageBox("密码已经成功修改,请在下次登录时使用新密码")
(2)取消:
对象cmdCancel过程Click
releasethisform
4.5数据维护管理模块
数据信息管理界面如图4.4—4.7所示。
这是系统的核心部分,是维护该系统信息的重要组成部分,包括数据的浏览、添加、修改和删除。
上述功能的代码设计如下:
4.4数据信息的浏览界面
4.5数据信息的添加界面
(1)对象:
Command1(增加按钮)过程:
Click
insertblank
thisform.txt编号.value=str(recno(),4,0)
jtdz=thisform.txt家庭地址.value
xm=thisform.txt姓名.value
bhdh=thisform.txt办公电话.value
xb=thisform.txt性别.value
qq=thisform.txtqq.value
email=thisform.txte_mail.value
zzdh=thisform.txt住宅电话.value
bz=thisform.txt备注.value
sj=thisform.txt手机.value
xlt=thisform.txt小灵通.value
thisform.refresh
(2)对象:
Command2(保存按钮)过程:
Click
ifempty(xm)
messagebox("姓名不能为空!
")
else
go1
locatenextrecno()-1for姓名==xm
iffound()
ifmessagebox("记录已经存在,是否替换?
",1+48,"警告")=1
replace通讯录.家庭地址withjtdz;
通讯录.姓名withxm,通讯录.办公电话withbgdh;
通讯录.性别withxb,通讯录.qqwithqq;
通讯录.e_mailwithemail,;
通讯录.住宅电话withzzdh,通讯录.备注withbz;
通讯录.手机withsj;
通讯录.小灵通withxlt
endif
else
repl通讯录.家庭地址withjtdz;
通讯录.姓名withxm,通讯录.办公电话withbgdh;
通讯录.性别withxb,通讯录.qqwithqq;
通讯录.e_mailwithemail,;
通讯录.住宅电话withzzdh,通讯录.备注withbz;
通讯录.手机withsj,通讯录.小灵通withxlt
endif
endif
(3)对象:
Command3(浏览按钮)过程:
Click
doform浏览
thisform.release
(4)对象:
Command4(退出按钮)过程:
Click
thisform.release
4.6数据信息的修改界面
(1)对象:
Command1(第一条)过程:
Click
gotop
mand1.enabled=.f.
mand4.enabled=.t.
mand3.enabled=.t.
mand2.enabled=.f.
thisform.dy
thisform.refresh
(2)对象:
Command2(上一条)过程:
Click
skip-1
mand3.enabled=.t.
mand5.enabled=.t.
ifbof()
messagebox("已经到第一个!
")
mand2.enabled=.f.
mand5.enabled=.f.
else
thisform.dy
endif
thisform.refresh
(3)对象:
Command3(下一条)过程:
Click
skip
mand5.enabled=.t.
ifeof()
messagebox("已经到最后一条!
")
mand3.enabled=.f.
mand5.enabled=.f.
mand2.enabled=.t.
else
mand2.enabled=.t.
endif
thisform.dy
thisform.refresh
(4)对象:
Command4(最后一条)过程:
Click
gobottom
mand1.enabled=.t.
mand4.enabled=.f.
mand3.enabled=.f.
mand2.enabled=.t.
thisform.dy
thisform.refresh
(5)对象:
Command5(修改)过程:
Click
gorecno()
thisform.txt姓名.readonly=.f.
thisform.txt邮政编码.readonly=.f.
thisform.txt性别.readonly=.f.
thisform.txt手机.readonly=.f.
thisform.txt小灵通.readonly=.f.
thisform.txt住宅电话.readonly=.f.
thisform.txtqq.readonly=.f.
thisform.txte_mail.readonly=.f.
thisform.txt办公电话.readonly=.f.
thisform.txt家庭地址.readonly=.f.
thisform.txt备注.readonly=.f.
mand6.enabled=.t.
(6)对象:
Command6(保存)过程:
Click
ifempty(xm)
messagebox("姓名不能为空!
")
else
replace通讯录.家庭地址withjtdz;
通讯录.姓名withxm,通讯录.办公电话withbgdh;
通讯录.性别withxb,通讯录.qqwithqq;
通讯录.e_mailwithemail,;
通讯录.住宅电话withzzdh,通讯录.备注withbz;
通讯录.邮政编码withyzbm,通讯录.手机withsj;
通讯录.小灵通withxlt
endif
thisform.txt姓名.readonly=.t.
thisform.txt邮政编码.readonly=.t.
thisform.txt性别.readonly=.t.
thisform.txt手机.readonly=.t.
thisform.txt小灵通.readonly=.t.
thisform.txt住宅电话.readonly=.t.
thisform.txtqq.readonly=.t.
thisform.txte_mail.readonly=.t.
thisform.txt办公电话.readonly=.t.
thisform.txt家庭地址.readonly=.t.
thisform.txt备注.readonly=.t.
mand6.enabled=.f.
(7)对象:
Command7(退出)过程:
Click
thisform.release
4.7数据信息的删除界面
(1)对象:
Command1(第一条)过程:
Click
gotop
mand3.enabled=.t.
mand2.enabled=.f.
thisform.refresh
n=recno()
(2)对象:
Command2(上一条)过程:
Click
skip-1
mand3.enabled=.t.
ifbof()
messagebox("已经到第一个!
")
mand2.enabled=.f.
endif
thisform.refresh
n=recno()
(3)对象:
Command3(下一条)过程:
Click
s