学生成绩管理系统VFP.docx
《学生成绩管理系统VFP.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统VFP.docx(53页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统VFP
摘要:
学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
本文简要介绍了本学校学生成绩管理的情况和系统的实现过程,阐述了课题来源,系统及需求分析,系统规划,设计及实现情况。
关键字:
控件、窗体、域。
Abstract:
Student’sachievementadministrativesystemisatypicalinformationmanagementsystem(knowasMIS),Itsdevelopmentincludebackstagesupporterthefoundationandmaintainandfrontthetwoesrespectsofdevelopmentofapplicationprogramsofdatamainly.Astotheformerrequiresetupdataconsistencyandintegralitystrong,datasecuritykindstorehouse.Requireapplicationprogramnottobecomplete,easytousecharacteristicofwaitingforfunctionthelatter.
Thistexthasrecommendedasituationofstudent’sachievementmanagementofinstituteandsystematicrealizationcoursebriefly,Havingexplainedthesubjectsource,thesystemanddemandanalyse,thesystemisplanned,Designandrealizethesituation.
Keyword:
Accuseofone,windowbody,land.
摘要…………………………………………………………………………………2
一前言…………………………………………………………3
二课题来源………………………………………………………………4
三系统及需求分析……………………………………………………4
(一)、系统需求……………………………………………………………4
(二)、可行性分析…………………………………………………………4
(三)、VFP5.0以上的中文版概述………………………………………5
四系统规划………………………………………………………………6
(一)、项目规划………………………………………………………6
(二)、功能框图……………………………………………………7
(三)、规划数据库………………………………………………………7
五系统设计和实现……………………………………………9
(一)、数据分析与项目的建立…………………………………9
(二)、数据库设计………………………………………………………9
(三)、模块设计………………………………………………………10
(四)、系统性能测试……………………………………………31
六结束语……………………………………………………………………………31
参考文献…………………………………………………………………………………32
附录………………………………………………………………………………………33
一前言
VisualFoxPro(简称VFP)是Windows平台下的新一代数据库管理系统,它具有优美的图形用户界面(GUI)、面向对象的开发方式、客户/服务品的数据连接以及通过OLE的数据访问工具等特点。
最新推出了VFP6.0、VFP7.0,它在VFP5.0的基础上更加重了项目管理器、向导、生成器、查询与视图、OLE连接、ActiveX集成、帮助系统制作、数据导入和导出等方面的功能。
“学生成绩管理系统”就是在这样一个优秀的数据库管理系统下开发而成的,可以在VFP5.0以上的版本上运行,也可以生成自身的.EXE文件运行。
本系统的特点是:
易用性、先进性和广泛性强,可用性和实用性高,良好的用户界面,几乎没有专业和业余的区别,普通用户只要懂得使用WINDOWS操作系统及VFP数据库管理就能使用该系统。
本书以怎样建立学生成绩管理系统为主线,全面而系统地介绍了系统的各种功能模块的建立和操作方法。
全书分为六章,全面系统地介绍了在VFP数据库管理系统中建立学生成绩管理的项目管理器及其使用,数据表与数据库的建立,查询与视图,表单设计,报表,工作环境的设置方法与步骤等内容。
“学生成绩管理系统”是目前学校应该普遍需要使用的学生管理系统之一,鉴于这种情况,提出问题、分析问题,也是我这次毕业论文设计的基本目的。
二课题来源
计算机已经成为我们学习和工作的得力助手,今天,计算机的价格已经十分低廉,性能却有了长足的进步。
它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:
首先,计算机可以代替人工进行许多繁杂的劳动;
其次,计算机可以节省许多资源;
第三,计算机可以大大的提高人们的工作效率;
第四,计算机可以使敏感文档更加安全,等等。
由于我校每个学期都要进行期终考试,每期的考试成绩又要进行登记入册,原来学校是由教务处的一位老师专门管理这件事,主要是进行手写登记,费时又费心,而且有时还出现很多错误登记。
现在我校学生成绩管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
作为计算机应用的一部分,使用计算机对学生成绩进行管理,具有着手工管理所无法比拟的优点。
例如:
不易出错、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
三系统及需求分析
(一)、系统需求
·尽量采用学校现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的。
·系统应符合学校学生成绩管理的规定,满足对学校学生成绩管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。
·系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
·系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
通过调查,要求系统需要有以下功能:
1、由于操作人员的计算机知识普遍较差,要求有良好的人机界面,可以存储历届的学生成绩,安全、高效;
2、原始数据修改简单方便;
3、数据查询方便;
4、删除数据方便简单,数据稳定性好;
5、数据计算自动完成,尽量减少人工干预;
6、强大的报表打印功能;
7、退出系统。
(二)、可行性分析
由于本系统管理的对象单一,且每个班级的学生数据内容基本是一致的,涉及的计算中心过程不是很复杂。
因此,比较适合于采用数据库管理。
在存储量、速度方面都能满足数据库运行的要求。
在技术难度方面,由于有指导老师和相关参考文献,特别是网上资料,以及学校给我提供的各种数据要求,完全可以实现。
VFP5.0以上的中文版作为一个关系型数据库系统,它提供了面向对象的编程技术,可简化数据库管理,使开发应用程序这项艰辛的工作就象堆积木那样简单方便。
另外,用VFP5.0以上的中文版开发的应用程序可以独立运行于Windows平台。
(三)、VFP5.0以上的中文版概述
1、概述
VFP5.0以上的中文版,它是运行于Windows9X/2000及WindowsNT平台的32位的数据库系统,充分发挥了32位微处理器强大的32位数据处理性能。
它功能强大,直观易用,支持客户/服务器结构和面向对象编程,提供多种可视化编程工具,支持最新Internet技术,WWW数据库的设计,最新流行的ActiveX等。
VFP5.0以上的中文版完全支持OOP(面向对象)的应用程序设计方法,VFP使用了真正的类,包括继承性,封装性和多态性。
用可视方式创建类、查看类及类代码;利用表单向导进行专业级界面设计;对表关系进行可视化查看;可利用OLE自动化来包含其他软件(如Excel、Word)中的对象并使用这些软件。
通过VisualFoxPro对象和事件模型,用户可以快速创建和实现无模式(modeless)的应用程序;利用生成器和工具栏,开发人员可以快速开发应用程序,而省去编写大量的代码、定义繁多的属性。
总之,VFP5.0以上的中文版是一种适用于专业人员的开发工具。
2、数据库概念的发展
在FoxPro2.X中一个表就是数据库,实际上是真正的数据库中表的概念。
在VisualFoxPro中,数据库指的是可以存储一个或者多个表(.DBF)及视图的关系数据库,这才是真正的关系型数据库的概念。
对于一个大型的信息管理系统,它很可能需要对不同的用户各自创建一个大型的文件系统,它包括许多表,而属于一个用户的一套表与属于另一个用户的一套表实际上是相同的,只是名称有所不同,而在FoxPro2.X中,需要建立大量的代码来区别和维护属于不同用户的一套表,这套表的数量可能是非常庞大的,维护编码也是非常庞大的。
然而VisualFoxPor中引入的真正的数据库的概念,使这一问题的解决变得非常的容易,设计人员只要为不同的用户创建不同的数据库,然后在这些数据库下建立用户自己的表就可以很容易对每个用户进行区别和维护了。
而且,这样的数据库的关系能力更加强大,更加稳定可靠。
3、其他新特性
VisualFoxPor5.0的面向对象编程,一个很重要的部分是通过使用类体现出来的,类具有对象的继承、封装的特性和一切使用对象编程的优点。
可以大大简化编程,在本系统的设计中就充分利用了这种优点(如:
自动转换中英文输入法的gstextbox的自定义,VisualFoxPor5.0自带的可视类库WIASTYLE.VCX中的searchclass类等等),可以按照需要给自己的数据库定制相应的菜单样和工具栏。
重新设计了项目管理器(ProjectManager),其最简单的用途是作为一种组织工具,保存属于特定应用程序所有文件的列表,而且根据文件类型将这些文件进行划分。
它所提供的多页框界面,使对项目文件的添加、建立和编程更加容易。
1998年最新推出了VFP6.0中文版,它在VFP5.0的基础上更加重了项目的管理器、向导、生成器、查询与视图、OLE连接、ActiveX集成、帮助系统制作、数据导入和导出等方面的功能。
可以与OFFICE软件集成。
四系统规划
(一)、项目规划
学生成绩管理系统是一个典型的数据库应用程序,由用户设置模块、数据处理模块、成绩输入模块、成绩管理模块、成绩查询模块、报表打印模块等部分组成,特规划功能模块如下:
1、用户设置模块
该模块主要包括添加用户、修改密码和删除用户。
2、数据处理模块
该模块的主要功能是建立登分册和负责录入学生数据。
(1)建立登分册:
是指建立考试的名称。
(2)学生管理:
主要负责录入学生的信息,如录入学生的学号、年级、班次、姓名和性别。
由于数据量大,所以该模块的设计也发点应从方便用户操作的角度出发,如采用中英文自动切换。
3、成绩输入模块
该模块的主要功能是负责录入学生的成绩,并且可以选择要输入成绩的科目。
4、成绩管理
该模块的主要功能是对学生成绩自动核算,总分、排名。
5、成绩查询模块
查询模块是一个数据库系统中所必须的模块。
方便学校对每个学生的学生成绩查询和对每个班全部学生成绩的查询。
6、报表打印模块
该模块包括打印成绩和打印设置两个子菜单。
(1)打印成绩模块:
打印学生平时及毕业要打印他们的数据,于是设置了打印学生个人成绩,打印班级学生成绩和打印班级平均分的报表,以便学生对平时成绩的查询及毕业入档时学生成绩打印入册的原始凭证。
(2)页面设置模块:
是对打印页面进行设置,如果没有安装打印机,将会提示安装打印机,此时应该点“否”并选“忽略”,否则系统将会产生错误。
7、退出功能模块
退出功能模块用于结束所有操作,退出学生成绩管理系统。
根据以上分析,本系统将建立以下功能模块。
学生成绩管理系统主界面
用户设置
添加用户
修改密码
删除用户
数据处理
建立登分册
学生管理
成绩输入
成绩管理
成绩查询
打印报表
学生成绩管理系统主界面
打印成绩
页面设置
退出
(二)、功能框图
根据系统功能要求,可以将系统分解成几个功能模块来分别设计,功能模块如下图:
数据处理
退出
报表打印
成绩查询
成绩管理
成绩输入
用户设置
页面设置
打印成绩
学生管理
建立登分册
删除用户
修改密码
添加用户
(三)、规划数据库
1、分析数据需求
数据库是管理系统的基础,只有建立了反映实际情况的数据库,才可能提供各种有价值的信息,为决策作出依据。
在学生成绩管理系统中建立的数据库为:
成绩库
2、确定数据库
由于VFP5.0的以上版本的数据库管理比较完善,在设计数据库时,不同主题的信息应存储在不同的表中,并遵循下列规则:
(1)同一信息只保存一次;
(2)防止删除有用信息;
只有在同一信息只保存一次的前提下,才能减少数据冗余性和出错的可能性,而是为了防止删除有用的信息,最好的解决方法仍然是把不同主题的信息放在不同的表中。
根据以上分析,学生成绩管理数据库中建立了以下几个表:
学生表、考试库、课程表、用户。
(1)学生表
①学生表的结构。
字段名类型宽度小数
学号字符型11
年级字符型4
考号字符型8
班次字符型10
姓名字符型8
性别字符型3
②学生表的记录。
假设在学生表中输入3条记录,则为:
学号年级考号班次姓名性别
20041928高一12912321谭仲杰男
20041086高一10207321文淑华女
20041553高一12607321王俊敏女
(2)考试库
①考试库的结构。
字段名类型宽度小数
名称字符型50
时间字符型8
②考试库的记录。
假设在考试库中输入2条记录,则为:
名称时间
2004年高一期末成绩20050112
2004年高二期末成绩20050112
(3)课程表
①课程表的结构。
字段名类型宽度小数
科目字符型20
最高分数值型3
②课程表的记录。
假设在课程表中输入3条记录,则为:
科目最高分
语文115
数学98
历史96
(4)用户
①用户的结构。
字段名类型宽度小数
用户名字符型16
密码字符型16
②用户的记录。
假设在用户中输入2条记录,则为:
用户名密码
admin1
yxl123456
五系统设计和实现
(一)、数据分析与项目的建立
1、数据分析主要是分析各种数据的用途及相互之间的关联,分析数据的类型、数量发生频度和使用频度,并具体弄清楚每个数据所需的范围和位数及来源的时间性,为数据库、文件设计及输出、输入设计提供依据,也为制定合理的数据处理方法提供依据。
编码是一项基础工作,编码必须唯一,编码设计的目的是为了便于数据的存储和检索,提高处理的效率和精度,节省处理时间和减少存储空间且方便使用。
2、项目的建立
项目管理器是“项目”二个字的含义指的就是我们想要编制的应用程序。
成名思义,项目管理器就是用于建立应用程序的集成开发环境,它帮助我们设计、修改、运行一些应用程序级件。
为了开发“学生成绩管理系统”,首先就要启动项目管理器,创建一个新项目。
启动项目管理器,创建新项目——学生成绩管理系统的操作步骤是:
第1步:
启动MicrosoftVisualFoxPro6.0,进入“MicrosoftVisualFoxPro”开发环境。
第2步:
单击“文件”,单击“新建”,弹出“新建”窗口。
第3步:
选中“项目”,单击“新建文件”按钮,弹出“创建”窗口。
第4步:
把所有要开发的“学生成绩管理系统”项目保存在一个文件中,本系统保存在E:
\学生成绩管理系统目录下,在“项目文件”里输入“学生成绩管理系统”,作为该项目的文件名。
在“存为类型”中选取“项目”,单击“保存”按钮,弹出“项目管理器”窗口。
(二)、数据库设计
1、怎样建立“学生成绩管理系统”中的数据库?
在VisualFoxPro6.0中,数据库由表、视图以及它们之间的关系集合而成。
创建一个新数据库的操作步骤如下:
第1步:
在项目管理器窗口中,选中“数据”选项卡,单击选中“数据库”图标。
第2步:
单击“新建”按钮,再单击“新建数据库”,弹出“创建”窗口,在“数据库名”框中输入“成绩库”,作为学生成绩管理的数据库文件名,在“存为类型”栏中,选中“数据库”,并将该文件保存在E:
学生成绩管理系统\data中。
第3步:
单击“保存”按钮,弹出“数据库设计器—成绩库”窗口,显示出了一空的数据库设计窗口,并且“数据库设计器”变为有效。
至此,我们创建了一个空的学生成绩管理数据库。
2、怎样创建数据库中的表?
下面我们在成绩库中创建学生表、考试库、课程表、用户。
(1)建立学生表
建立学生表的操作步骤如下:
第1步:
在“数据库设计器”窗口的工作表中,单击鼠标右键,弱出一个“命令”菜单。
第2步:
单击“新建表”,弹出“新建表”窗口。
第3步:
单击“新建表”按钮,弹出“创建”窗口,在“保存在”框中,选中“data”文件夹,在“输入表中”中输入“学生表”,在“存为类型”框中,选中“表/DBF”。
第4步:
单击“保存”按钮,弹出“表设计器—学生表.DBF”窗口,在“字段”选项卡中,输入学生表每个字段的字段名、类型、宽度、小数位数,完成表的结构。
第6步:
单击“否”按钮,返回到“数据库设计器—成绩库”窗口。
至此,在“数据库设计器—成绩库”窗口中,可以看到创建了一个“学生表”。
(2)建立考试库、用户、课程表的操作方法跟建立学生表的操作方法相同。
(三)、模块设计
1、用户登录窗口功能模块
如果没有进行特殊设置,每次进入系统都将
显示登录界面(如右图),它对操作员进行口令
验证,防止非法用户进入系统,任意增加、修改
和删除数据。
在选择或输入用户并提供正确的密
码后,点“确定”按钮即可进入系统,点“取消”
放弃登录,退出系统。
如果不能提供正确密码,
在点“确定”按钮后会有相应提示,如果连续
三次都输入了错误的密码,系统将自行关闭。
2、用户设置模块,在本模块中了建立三个子模块,即添加用户、修改密码、删除用户。
(1)添加用户功能模块。
其程序代码如下:
Command1.click
use用户excl
publicu1,pw1
u1=allt(thisform.text1.value)
pw1=allt(thisform.text2.value)
ifempty(thisform.text1.value)
messagebox("用户名不能为空!
",48+0,"添加新用户")
thisform.text1.setfocus
else
locateforallt(用户名)==u1
iffound()
messagebox("用户名已经存在,请输入其他用户名!
",48+0,"添加新用户")
thisform.text1.setfocus
else
ifthisform.text2.value==thisform.text3.value
tempstr=''
fori=1tolen(trim(pw1))
tempchr=bitxor(asc(subs(pw1,i,1)),123)
tempstr=tempstr+chr(tempchr)
endfor
dimensionb(1,2)
b[1,1]=u1
b[1,2]=tempstr
appendfromarrayb
messagebox("成功添加新用户!
",64+0,"添加新用户")
releasethisform
else
messagebox("请输入相同密码!
",48+0,"添加新用户")
thisform.text3.setfocus
endif
endif
endif
command2.click
releasethisform
text3.KeyPress
LPARAMETERSnKeyCode,nShiftAltCtrl
ifnkeycode=13&&enter
mand1.click
endif
(2)修改密码功能模块。
其程序代码如下:
Combo1.InteractiveChange
thisform.refresh
Text1.KeyPress
LPARAMETERSnKeyCode,nShiftAltCtrl
ifnkeycode=13
mand1.click
endif
Command1.Click
publicu
u=allt(bo1.value)
tempstr=''
fori=1tolen(allt(trim(thisform.text1.value)))
tempchr=bitxor(asc(subs(thisform.text1.value,i,1)),123)
tempstr=tempstr+chr(tempchr)
endfor
locateforallt(用户名)==allt(bo1.value)andallt(密码)==tempstr
iffound()
doformchangepw2
else
messagebox("密码有误,请重新输入!
",48+0,"修改密码")
thisform.text1.setfocus
endif
Command2.Click
releasethisform
Form1.Init
*main.ole1.simpletext=this.caption
use用户excl
Text2.KeyPress
LPARAMETERSnKeyCode,nShiftAltCtrl
ifnkeycode=13&&enter
mand1.click
endif
Command1.Click
use用户excl
publicpw