摘 要
Visual FoxPro是一种用于数据库设计和应用程序开发的数据库管理系统,它采用了可视化的面向对象的程序设计方式,极大的简化了数据库应用系统的开发过程。它易学、高效、功能强大,特别适用于中小型数据库系统的开发。利用它可以对各种事务管理工作中的大量数据进行有效的管理并满足数据检索的需要。
随着计算机技术的飞速发展和计算机在信息管理中应用的普及,利用计算机实现学生档案资料管理势在必行。本系统就是根据学校现阶段的需要,用Visual FoxPro开发一个学生信息查询系统来实现对学生的基本信息、成绩以及各专业学生人数的查询。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成学生信息查询的全过程。同时,本系统还含有注册、修改密码的功能,给用户提供了极大的方便。本文主要介绍了本课题的开发背景,系统的设计思路、总体设计。重点说明了系统的各个功能模块的设计与实现,并对系统进行了测试和运行说明。
关键词: Visual FoxPro 6.0,信息查询,成绩查询
目 录
1 绪 论 1
1.1 研究背景 1
1.2 开发意义 1
2 需求分析 2
3 概要设计 3
3.1 系统功能模块设计 3
3.1.1按班级号查询学生信息模块 3
3.1.2按专业名和课程名查询模块 3
3.1.3查询各专业学生人数模块 3
3.1.4修改密码模块 3
3.2 系统模块结构图 4
3.3 数据库的设计 4
4 详细设计 7
4.1 主程序的设计 7
4.2 登录界面的设计 8
4.3 主界面设计 10
4.4按班级号查询学生信息模块 10
4.5按专业和课程名查询学生成绩模块 11
4.6修改密码模块 12
4.7按专业查询学生人数模块 13
5 系统连编与运行 15
5.1 连编 15
5.2 运行 15
总结 16
参考文献 17
学校作为一个信息大量存储的地方,每年都有大量的新生入学,尤其是近几年高校生源的持续扩招,使得用户对有关信息的查询十分繁琐。面对高校信息量不断增长的问题,很多学校都选择了在学生信息管理中引入计算机管理系统,而学生信息管理中的查询功能又必不可少。因此一个好的学生信息查询系统,对于任何一所大学来说都是非常需要的。
学生信息查询系统,是针对学校信息管理功能的一个分支系统。该系统应用Visual FoxPro 6.0自带的数据库来存储学生的基本信息,能为教职工人员提供快捷的查询手段,极大的方便了学校的管理和教学工作。
开发该系统主要意义是利用计算机来查询学生信息,可以减少大量的人力资源,提高工作效率。同时亦可通过校园网扩展各类信息化应用,共享学生信息。
目前一些学校对于学生的学生信息查询还处于人工管理的阶段,管理大量学生的档案信息,不但工作繁琐而且效率低下,如果利用现代化的查询方式来查询学生的基本信息的话,就会简单方便地多。现在各大高校已经普遍配备了微机,而且用于学生管理的微机的配置在存储量、速度方面都能满足数据库运行的要求,故在计算机硬件方面不需要太大的花销。
本系统的设计是在windows xp中文版环境下,使用Visual Foxpro6.0开发的。它是可以运行于 windows2000及xp相关平台的数据库开发系统。Visual Foxpro6.0不仅可以简化数据库管理,而且应用程序的开发流程更为合理,它使组织数据、定义数据库规则和建立应用程序等工作变得简单易行,利用可视化的设计工具和向导,用户可以快速地创建表单、查询等。
本系统主要实现对学生基本信息的查询,可以实现以下几个方面的功能:
(1)学生基本信息查询:查询每个班级的学生的基本信息。
(2)学生成绩查询:学生的所选课程的成绩。
(3)学生人数查询:查询各专业的学生人数。
学生信息查询系统是学生信息管理中必不可少的一部分,在该系统中共设计了4大功能,包括按班级号查询学生基本信息,按专业名和课程查询学生成绩信息,按专业查询学生人数,用户密码修改,基本上满足了学生信息查询的必需功能,下面将详细介绍各功能模块。
3.1.1 按班级号查询学生信息模块
按班级号查询学生信息模块完成对某个班级学生基本信息的查询,在下拉列表中选择相应的班级号,即学号的前六位,单击“查询”按钮就可完成对学生基本信息的查询,单击“继续”按钮系统会自动刷新表格中的数据供用户继续查询。查询完毕,可单击“返回”进入到主界面进行其它操作。
3.1.2 按专业名和课程名查询模块
在本系统中,用户可以根据学生所学的专业以及课程来完成对学生成绩的查询。需要查询时,在组合框中选择相应的专业和课程名,单击“查询” 按钮,系统会自动将信息显示到表格中。若想继续,则单击“继续”按钮,系统会自动刷新表格中的数据供用户继续查询。查询完毕,可单击“返回”进入到主界面进行其它操作。
3.1.3 查询各专业学生人数模块
每个专业的学生人数是查询中必不可少的一部分,在该模块中,可以将各专业的学生人数以图形的方式显示出来。
3.1.4 修改密码模块
本模块方便用户对原始的密码进行修改 ,从而进一步保证了数据与信息的安全性。
本次系统设计主要由按班级号查询学生信息,按专业名和课程查询学生成绩信息,按专业查询学生人数,用户注册及密码修改五个系统模块组成,其系统模块结构如图3.1所示。
图3.1 系统模块结构图
数据库中包括系统学生表、成绩表、专业表、班级号表、课程表和操作员表,各表结构设计如下。
1、课程表
课程表用来存放所有课程的基本信息,该表被命名为kcb.DBF,其结构如表3.1所示。
表3.1 课程表结构
2、学生表
学生表用来存放学生的基本数据,相当于学校的学生档案,该表被命名为xsb.DBF,其结构如表3.2所示。
表3.2 学生表结构
3、专业表
专业表用来存放学校中所有学生所学专业的基本信息,包括专业名、专业号、科类、学制、学位四个字段,该表在数据库中被命名为zyb.DBF,其结构如表3.3所示。
表3.3 专业表结构
4、操作员表
存放教学管理系统未来操作员的信息,包括姓名、密码等。将来系统运行时,必须先“登录”,核对操作员的姓名和密码,否则只有通过登录才能进入本
系统。该表被命名为czy.dbf,其结构如表3.4所示。
表3.4 系统用户表结构
5、学生成绩表
该表中保存的是学生的所有课程的成绩,主要用来记录每位同学的成绩情况,被命名为cjb.dbf,其结构如表3.5所示。
表3.5 学生成绩表结构
6、班级号表
班级号表主要用于存放学生所在班级的号码,其结构如表3.6所示。
表3.6 班级号表结构
程序在运行期间要使用部分的变量来传递数据,所有这些变量都是在程序中定义的。
在Visual FoxPro6.0中新建一个项目文件,以“学生档案资料管理系统”的名称保存。打开该项目的管理器,在管理器的“代码”选项卡中添加一个名为“MAIN”的代码文件,并在“MAIN”代码文件窗口中添加代码如下:
set talk off
set echo off
set esca off
set exac on && 设置字符串精确比较
set status off && 关闭系统状态行
set sysmenu off && 关闭Visual FoxPro 系统菜单
set excl on
set safe off
set cent on &&设置日期年份为4位
_screen.windowstate=2 &&设置运行屏幕窗口最大化
set cent to 20 &&以上各语句是设置系统主要运行环境参数。
clear
open database jxk &&打开数据库
do form dl
read events && 以上语句是运行操作员登录表单,检验姓名和密码!
do form fmbd
read events && 以上语句是运行系统封面表单!
clear windows
clos data
set sysmenu to defa
return
登录界面的作用是为了验证用户的合法性,只有合法的用户才能进入系统,并且要求使用者提供密码。通过上述措施就限制了非法用户的进入,确保了信息的安全性。设计完成的登录界面如图4.1所示。
图4.1 登录设计界面
该登录界面只允许用户进行1次登录,如果用户没有输入正确的用户名和密码,系统将自动退出系统。所有上述功能的代码设计在登录表单的click行为中,代码如下:
public xm1,mm2
xm1=trim(thisform.text1.value)
mm1=trim(thisform.text2.value)
set exac on
sele czy
locate for xm=xm1.and.mm=mm1
if found()
thisform.release
clear events
else
messagebox('身份不对,你不能使用本系统',16+0+0,'警告!')
thisform.release
quit
endif
在该界面中还具有注册功能,从而保证了多个用户进行访问查询。用户只需在登录界面中点击“注册”按钮,既可进入注册页面。设计完成的注册界面如图4.2所示。
图4.2 注册设计界面
若用户注册时出现重复密码,则系统会提示重输,并且将文本框中的所有数据置零。实现上述功能的代码如下:
public xm1,mm1
xm1=alltrim(thisform.text1.value)
mm1=alltrim(thisform.text2.value)
set exac on
use czy
locate for mm=mm1
if found()
a=messagebox('重复密码,请重输!')
thisform.text1.value=''
thisform.text1.setfocus
thisform.text2.value=''
thisform.text3.value=''
else
insert into czy (xm,mm)values(xm1,mm1)
a=messagebox('注册成功!')
thisform.release
endif
该系统提供的所有功能都放置在一个统一的界面中供用户选择,该界面称之为主界面。本系统的主界面采用了按钮交互方式,如图4.3所示。
图4.3 主界面
在此界面上还提供了4项功能,下面对其分别进行介绍。
该模块完成对某个班级学生基本信息的查询,在文本框中输入相应的班级号,即学号的前六位,单击“查询”按钮就可完成对学生基本信息的查询,单击“继续”按钮可继续进行查询。按班级号查询学生信息界面如图4.4所示。
图4.4 按班级号查询学生信息界面
完成上述功能的代码如下:
*查询按钮的click事件代码
sele xsb
set filt to left(xh,6)=thisform.text1.value
thisform.command1.enabled=.f.
thisform.command2.enabled=.t.
thisform.refresh
*继续按钮的click代码
thisform.command1.enabled=.t.
thisform.command2.enabled=.f.
thisform.text1.value=''
thisform.text1.setfocus
thisform.refresh
在本系统中,用户可以根据学生所学的专业以及课程来完成对学生成绩的查询。需要查询时,在组合框中选择相应的专业和课程名,单击“查询” 按钮,系统会自动将信息显示到表格中。若想继续,则单击“继续”按钮既可。查询完毕,可单击“返回”进入到主界面进行其它操作。按专业和课程名查询学生成绩界面如图4.5所示。
图4.5 按专业和课程名查询学生成绩界面
实现以上功能的代码如下:
*查询按钮的Click代码
zy1=thisform.combo1.value
sele kcb
kc=kch
thisform.grid1.recordsource='SELECT Xsb.xh,xm, xb,xq,cj;
from xsb join cjb on Xsb.xh = Cjb.xh;
where Cjb.kch =kc and zy=zy1 into cursor temp'
thisform.refresh
thisform.command1.enabled=.f.
thisform.command2.enabled=.t.
*继续按钮的Click事件代码
thisform.command1.enabled=.t.
thisform.command2.enabled=.f.
thisform.combo2.value=''
thisform.combo1.value=''
thisform.combo1.setfocus
本模块方便用户对原始的密码进行修改 ,保证了数据安全性。在该界面中,用户首先需要输入自己的原始密码,然后再输入最终密码,重复输入两次。若原始密码错误或最终密码不一致,均不能修改成功。界面如图4.6所示。
图4.6 修改密码界面
确定按钮的Click事件代码如下:
if mm=alltrim(thisform.text1.value)
xgmm1=alltrim(thisform.text2.value)
xgmm2=alltrim(thisform.text3.value)
if xgmm1=xgmm2
replace mm with xgmm1
a=messagebox('修改成功!')
thisform.release
endif
else
a=messagebox('密码不对,请重输!')
thisform.text1.value=''
thisform.text1.setfocus
thisform.text2.value=''
thisform.text3.value=''
endif
各专业的学生人数是查询中必不可少的一部分,在该模块中,可以将各专业的学生人数以图形的方式显示出来。按专业查询学生人数界面如图4.7所示。
图4.7 按专业查询学生人数界面
在该系统所有的界面中都有相应的动态文字的效果,从而使界面更加美观,其代码设计如下:
local i,j,k
i=int(rand()*255)
j=int(rand()*255)
k=int(rand()*255)
thisform.label4.forecolor=rgb(i,j,k)
if thisform.label4.left+100>0
thisform.label4.left=thisform.label4.left-10
else
thisform.label4.left=360
endif
一个应用系统设计和创建完成后,还必须进行连编,以便生成一个可执行文件供最终用户使用。连编完成后还要运行,以检查整个系统的完整性和准确性,同时还可增加程序代码的保密性。
创建一个项目管理器,并以jxgl.pjx为名保存。将其中的主程序设置为主文件。选择主文件,单击“连编”,打开一个“连编选项”对话框,如图5.1所示:
图5.1 连编选项对话框
按图中所示选择连编,生成可执行文件.exe格式的文件。
在盘的指定路径中找到“jxgl.exe”文件,运行即可。
Visual FoxPro拥有VB+Access和ASP+ Access两个开发平台所不具备的优点,它本身自带有一个数据库,不需要再和其他数据库连接,更加简单、方便,使工作量相应的减少,从而减少了系统的开发周期。
本次设计和开发的学生信息查询系统符合学校学生信息查询的规定,满足对学校学生信息管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于未参与系统开发的技术维护人员补充和维护。
但由于时间比较仓促,该系统还存在着一些需要改进的地方,大概有以下几个方面:
(1)系统需要对打印、维护功能等功能进行进一步扩展。
(2)系统的查询功能可进一步丰富,可按年级,院系等进行查询,给出符合记录的列表,选中列表中的具体学生,再查阅该学生的详细信息。
针对以上存在的问题,在以后空闲时间里逐一进行完善,使系统功能更加完善。
通过本次课程设计,让我能够理论联系实际,对所学的知识进一步掌握了。在这次设计过程中,我得到了郑良仁老师的精心指导,在此,我由衷地感谢吴老师!
[1] 沈精虎.Visual FoxPro 中文版数据库编程实战训练[M].北京:人民邮电出版社. 2000.4
[2] 关秀芬. Visual FoxPro 应用系统开发教程[M]. 北京:清华大学出版社. 2008
[3] 曹衍龙等. Visual FoxPro实例解析精粹(第二版).北京:人民邮电出版社,2007.8.
[4] 严蔚敏,吴伟民等.数据结构.北京:清华大学出版社,1997.4.
[5] 余苏宁等. Visual FoxPro课程设计.北京:高等教育出版社,2004.1.
[6] 黄梯云.管理信息系统(修订版)[M].北京:高等教育出版社,2000年.
本文来源:https://www.2haoxitong.net/k/doc/6e6fae778e9951e79b892718.html
文档为doc格式