1、VFP学生管理系统FoxPro+SQL1 作者: 日期:16 个人收集整理 勿做商业用途甘肃广播电视大学金昌分校毕 业 设 计设计题目:学生管理系统 入学年月 * 姓 名_*_ 学 号_*_ 专 业_*_ 指导教师_* 完成日期 年 月目 录摘要3第一章 前 言4第二章 设计用软件技术介绍 42.1 FoxPro42.2 SQL4第三章 学生信息管理系统的具体实现 53.1 学生管理信息系统设计53.1.1 学生管理信息系统设计53。1.2 学生管理信息系统功能模块设计53。2 学生管理信息数据库设计 63。2。1 数据库需求分析 63。2.2 数据库中的关系设计 73。2.3.1 关系设计的
2、原则 73.2。3.2 学生管理信息系统的关系设计 73。3 学生管理信息数据库结构的具体实现93。3。1 创建数据库、表 103。3.2 创建查询、视图和报表 103。3.3 创建表单 113.3。4 主程序的构造 123.4 学生管理系统运行 14第四章 结束语及参考文献15摘 要本课题设计是为适应信息化的要求,提高教务教学管理水平而设计的.教务教学管理包括多项内容,本课题设计只是承担了其中的一部分即:学生管理。本课题设计作为一个数据库应用程序,用到了多项技术,诸如:关系数据库、面向对象编程等。论文对部分重要内容分别予以简要介绍。在课题的实现过程中,本人先后几次同指导老师陈耀昌进行沟通,逐
3、步明确所要实现的目标,从而正确的进行设计,并实现了所要达到的功能.本课题为了要实现功能,建立了一个数据库,包括了五个表:学生基本情况表(dbfjbqk.dbf)用于存储学生基本情况;成绩表(dbfcj。dbf)用于存储学生成绩;成绩总库用于存储学生各门课程(dbfcjzk.dbf)、课程表(dbfkc。dbf)用于存储课程名称;名次表(dbfmc.dbf)用于存储学生成绩名次。关键字:面向对象(Object)、数据窗口(DataWindow)、信息管理系统(Mis)、学生管理。 This lesson design is for adapt to.Educational administrat
4、ion teaching the management included the contents of many items, this lesson the design to just undertook among them of a part namely:Student management.This lesson the design be used as the procedure of a database application, and use the technique of many items, such as:Relation database, face to
5、the object the plait the etc.Right part of and important contents of thesis respectively to introduce with the synopsis.In the lesson function for proceeding for target for of realizing process inside, oneself successively a fews guiding the clear proceeding of teacher Lius 永 the communication, grad
6、ually clear and definite wanting realizing, from but rightly design, and realizes wanting attaining。This lesson the in order to realizes function, established a database, and include five forms:The basic circumstance form( dbfjbqk.dbf) of student used fors the basic circumstance of student of save ;
7、The score form( dbfcj.dbf) used fors a score of student of save ;The total base of score used fors the save the each door of student the course( dbfcjzk。dbf), course the form( dbfkc.dbf) to used for the save course the name;The position form( dbfmc。dbf) used fors the save student score the position.
8、This thesis totally is divided intoes seven chapters, chapter 1:Summary;Chapter 2:The design uses the software introduction;Chapter 3:In a specific way realizes;Chapter 4:End the language;Chapter 5 is a test the data;Chapter 6 is an enclosure.第一章 前 言学生管理信息系统是一个学校不可缺少的部分,它能够为用户提供充足的信息和快捷的查询手段.但一直以来人们
9、使用传统人工的方式管理,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,因此,开发这样一套管理软件就很有必要。近年来,随着计算机厂家的不断增多,计算机硬件成本的大幅度下降,加之人们对计算机也不再觉得神秘陌生,计算机已经不再是
10、高档用品,为学校建立学生管理信息系统提供了物质条件。而现在我国的大部分学校对学生的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。使用学生管理信息系统,有以下几点好处:1、 可以存储历届的学生档案,安全、高效;2、 只需一到二名录入员即可操作系统,节省大量人力;3、 可以迅速查到所需信息,包括学生的基本情况、考试成绩等;4、为将来学校上网做好准备.现在互联网已经十分普及,一些用人单位希望能在世界的任何一个角落查到学生的信息,本系统为学校将来的上网作了先期工作,比如数据库的建立。第二章
11、设计用软件技术介绍2.1 FoxPro语言概述Visual FoxPro 是由Microsoft公司推出的用于中小型企业的一个优秀的小型数据库开发系统.它从单机数据库Foxbase发展而来,现已发展成为具有很强的网络功能的小型数据库系统.它可以用作小型的单机、网络数据库,也可以作为大型数据库的前端开发工具来开发客户机/服务器应用程序。在目前众多的开发工具中,Visual FoxPro在数据库开发工具中有着不可替代的地位,并且易学、易用,对计算机的配置要求也很低,还支持大型数据库通用的SQL语言,故而,实现本系统Visual FoxPro是一个相对较好的选择。2。2 SQL语言简介SQL是结构化
12、查询语言Structured Query Language)的缩写,它实际上包括查询、定义、操纵和控制四个部分,是一种功能齐全的数据库语言。数据定义是指对关系模式一级的定义。数据操纵是对关系中的具体数据的增、删、改和更新等操作。数据控制是指对数据访问权限的授予或撤消。该语言在70年代中期由Boycet和Chamberlin提出,在IBM大型计算机上实现(当时为SEQUEL语言).由于SQL具有语言简洁、方便实用、功能齐全等优点,很快得到推广和应用,随着关系数据库的流行,SQL在计算机界和广大用户中已得到公认.1986年10月美国国家标准局(ANSI)的数据库委员会颁布了SQL的美国标准,作为标
13、准关系数据库语言。1987年6月,国际标准化组织(ISO)采纳SQL为关系数据库语言的国际标准。我国也在1990年制定了SQL标准。SQL作为查询标准语言,在人工智能、软件工程等领域得到了广泛的应用.SQL语言既可以以用户联机的方式联机使用,也可以直接嵌入到程序设计语言中使用,特别适合于程序设计人员编写应用程序并与数据库打交道时,嵌入到主语言中使用。在本课题设计中就使用了SQL语言。第三章 学生信息管理系统的具体实现3。1 学生管理信息系统设计3.1。1 学生管理信息系统功能分析本系统主要用于学校信息管理,主要任务是用计算机对学生各种信息进行日常管理,如录入、查询、增加、删除。另外还考虑到课程
14、管理和成绩管理,设计了本学生信息管理系统。该系统主要包括学籍管理、学籍查询、成绩管理、成绩汇总、课程管理五部分。“学籍管理主要是实现学生基本情况的浏览、添加、编辑和删除;“学籍查询”主要是实现学生基本情况的查询,可以按照学号、姓名、性别、籍贯和生日等进行综合查询,并根据要求浏览结果;“成绩管理”主要是实现学生各学期各门课成绩录入、修改;“成绩汇总主要是实现所有学生的各门课成绩列表,打印家长通知书和补考通知书;“课程管理”主要是选定学生每学期所修课程.以上功能主要为教务员使用,使用时要核对用户名和口令。3。1.2 学生管理信息系统功能模块设计本系统的功能分为如下几大模块:(1)主界面设计该模块提
15、供教务管理系统的主界面,是主系统唯一入口和出口。该界面提供用户选择并调用各子模块,对于进入系统的用户还要核对用户名和口令。(2)课程管理模块该模块提供选定学生每学期所修课程界面,然后进行维护工作(增、删、改).(3)课程名称模块该模块实现添加所需课程名称的功能,每增加一门课程,课程号自动加1。(4)成绩管理模块该模块主要用于录入学生各学期各门课成绩。(5)成绩汇总模块该模块实现汇总所有学生的各门课成绩列表,打印家长通知书和补考通知书。(6)学籍管理模块该模块实现学生基本情况的浏览、添加、编辑和删除。(7)学籍查询模块该模块实现学生基本情况的查询,按照学号、姓名、性别、籍贯和生日等进行综合查询,
16、并根据要求浏览结果。(8)用户管理模块该模块用于设置所有用户的口令和权限。(9)改变口令该模块用于登录用户改变自己的口令.(10)放音(静音)该模块实现播放和停止背景音乐。(11)选曲播放该模块实现播放磁盘中存在的曲目的功能(后缀是”.wav”的文件)。(12)改变背景该模块实现选择磁盘中存在的图象文件作为系统的背景。采用模块化的思想,可以大大提高工作效率,并且可以最大限度地减少不必要的错误,其系统结构框图如下图所示. 系统主界面课程管理课程名称成绩管理成绩汇总学籍管理学籍查询选曲播放用户管理改变口令静音放音改变背景系统登录界面3.2 学生管理信息数据库设计3。2。1 数据库需求分析 Visu
17、al FoxPro 数据库设计的第一步是明确数据库的目的和如何使用,也就是在数据库中存放哪些信息。明确目的之后,就可以确定需要设计哪些表,以及每个表中的字段。在本课题中要实现如下功能并相应地建立建立的数据库表如下表所示。要实现的功能需建立的表新生入校时添加基本情况、社会关系日常考试成绩、奖惩的处理及查询学生的各种信息成绩、个人表现3。2。2 数据库概念结构设计用ER图来说明学生信息管理系统的数据库概念模式,如下图所示。系 1对应 n课程选课对应对应学 生 1 n 1 n3。2.3 数据库中的关系设计利用Foxpro进行管理信息系统的应用软件开发时,其核心任务是数据库中的关系设计,它是系统应用软
18、件设计的基础。其质量的好坏,直接影响到信息管理系统的功能和质量。关系设计的任务是消除数据删除、插入操作中的异常现象,最大限度地降低数据的冗余度,并保证数据的一致性.3.2。3.1 关系设计的原则关系设计的理论基础是规范化理论,设计数据库的过程实际上是对关系模型进行规范化和分解的过程,使非规范化的关系满足规范化理论的要求。要做到这一点,在关系设计时我们应遵循以下原则:一是关系分解后信息不丢失,不增加,即是无损连续分解。必须把全局模式的数据分解到各个子模式关系中,不能丢失数据,也不能因分解而增加数据,以保证数据的完整性。二是合理选择规范程度.记录数多的关系,低级规范造成的冗余度很大,浪费了存储空间
19、又影响了数据的一致性;但对相互联接的运算,低级模式又比高级范式好。另一方面,从存取、插入速度上,又希望一个子模式的属性越少越好,即取高级范式.因此速度与空间、速度与一致性在范式上是矛盾的。所以应根据情况,合理选择规范化程度。三是正确性与可实现性原则。3.2.3。2 学生管理信息系统的关系设计通过分析,消除部分重复组、函数部分依赖和传递函数依赖,本系统建立了一个数据库,包括了五个表:学生基本情况表(dbfjbqk.dbf)用于存储学生基本情况;成绩表(dbfcj。dbf)用于存储学生成绩;成绩总库用于存储学生各门课程(dbfcjzk.dbf)、课程表(dbfkc。dbf)用于存储课程名称;名次表
20、(dbfmc。dbf)用于存储学生成绩名次.学生基本情况表:字段名字段类型字段长度小数位数Cxueh(学号)字符型7Cxingm(姓名)字符型10Lxingb(性别)逻辑型1Cjig(籍贯)字符型10Dshengr(生日)日期型8Cyoub(邮编)字符型6Czhuz(住址)字符型40Mjinal(简历)备注型4Gzhaop(照片)通用型4成绩表:字段名字段类型字段长度小数位数Nxueq(学期)整型4Cxueh(学号)字符型7Ckech(课程号)字符型2Cchengj(成绩)数值型62成绩汇总表:字段名字段类型字段长度小数位数Cxueh(学号)字符型7Nxueq(学期)整型4Ckecm1(课程名
21、1)字符型14Nchengj1(成绩1)数值型52Ckecm2(课程名2)字符型14Nchengj2(成绩2)数值型52Ckecm3(课程名3)字符型14Nchengj3(成绩3)数值型52Ckecm3(课程名3)字符型14Nchengj3(成绩3)数值型52Ckecm4(课程名4)字符型14Nchengj4(成绩4)数值型52Ckecm5(课程名5)字符型14Nchengj5(成绩5)数值型52Ckecm6(课程名6)字符型14Nchengj6(成绩6)数值型52Ckecm7(课程名7)字符型14Nchengj7(成绩7)数值型52Ckecm8(课程名8)字符型14Nchengj8(成绩8)
22、数值型52Ckecm9(课程名9)字符型14Nchengj9(成绩9)数值型52Ckecm10(课程名10)字符型14Nchengj10(成绩10)数值型52Ckecm11(课程名11)字符型14Nchengj11(成绩11)数值型52Ckecm12(课程名12)字符型14Nchengj12(成绩12)数值型52Ckecm13(课程名13)字符型14Nchengj13(成绩13)数值型52Ckecm14(课程名14)字符型14Nchengj14(成绩14)数值型52Ckecm15(课程名15)字符型14Nchengj15(成绩15)数值型52Nzongf数值型71Njunf数值型52Nming
23、c整型4课程名称表:字段名字段类型字段长度小数位数Ckecmc(课程名称)字符型14Ckech(课程号)字符型2选课表:字段名字段类型字段长度小数位数Nxueq(学期号)整型4Ckech(课程号)字符型23.3 学生管理信息数据库结构的具体实现程序设计大体要经过下面的步骤:(1) 创建数据库、表,利用Visual Foxpro的工具创建数据库、表, 并设置表的索引和表间的关系.(2) 创建查询、视图和报表,根据需求,创建对数据的查询、视图和报表。(3) 创建适合的类,利用Visual Foxpro的基类,创建适合的类。(4) 创建表单,通过表单将数据库、表、视图、报表集成起来,用类 对它们进行
24、操作.(5) 创建程序,编制程序将表单连接成一个系统.(6) 调试、连编,利用调试工具检查、修改程序错误,最终编译成应用程序文件(.app)或者可执行文件(。exe)。3。3。1创建数据库、表(1) 新建项目管理器a) 在Visual Foxpro中选择文件 新建,在打开的“新建”对话框中选择“项目”,单击“新建文件按钮,接着打开“创建”对话框,在对话框中选择磁盘、文件夹,输入项目名“student”。b) 单击“保存”按钮,窗口现出“项目管理器”界面,它是一个具有多个选项卡的对话框,其中列出了项目可以管理的文件类型。(2) 创建数据库和数据库表a) 打开“student”项目,将数据库建立在
25、该项目中,让“项目管理器”来管理建立的数据库文件.b) 在“项目管理器”中选择“数据”选项卡;c) 单击“项目管理器”右侧的“新建”按钮,出现“新建数据库”对话框,选择“新建数据库”;d) 在出现的“创建对话框中单击“保存在”下拉式列表,选择要保存数据库的磁盘和文件夹,然后在“数据库名”的右边输入“学生”,单击“保存”按钮。e) 按数据库设计器工具栏上的“新建表”按钮; f) 按“新表,输入新表名,按“保存”; g) 按照系统分析中的数据表结构输入有关数据库表的结构; h) 设置数据库表的索引。3。3.2 创建查询、视图和报表一、 创建查询数据库最常用的操作就是查询,由于查询操作非常频繁,因此
26、查询效率的高低将在很大程序上影响程序执行的效率。查询是搜索哪些满足条件的记录,同时也可以根据需要对这些记录进行排序和分组,可以将查询结果创建为报表、表及视图.无论目的是什么,建立查询的过程是相同的,主要有以下几个步骤:(1) 使用“查询向导”或“查询设计器”;(2) 选择将要出现在查询结果中的字段;(3) 设置选择条件,以满足所需结果的记录;(4) 设置排序或分组项,用以组织查询结果;(5) 定向查询结果,如浏览、报表、表、标签等,如果要保存创建的查询,可以指导一个名称,将查询文件保存为带。QPR扩展名的文件;(6) 运行查询。二、创建视图视图是数据库中的一个特有的功能,只有当包含视图的数据库
27、被打开时,才能使用视图.利用视图,可以从表中提取一组记录,改变这些记录的值,并把更新结果送加到源表中.如果不但要检索数据,还想更新它,就需要使用视图。从多表中选取字段也是视图的一个重要用途。创建视图和创建查询的步骤类似。创建视图时要选择包含在视图中的表和字段、指定用来联接的联接条件、指定过滤器选择特定的记录,与查询不同的是,视图可以把在视图中做的数据修改传给原表。建立视图的主要步骤是:(1) 从“项目管理器”中选定一个数据库;(2) 在“数据库”下,选定“本地视图,并单击“新建按钮,启动“新的本地视图”对话框;(3) 在“新的本地视图对话框中,单击“新视图按钮,进入“视图设计器”,系统将提示从
28、当前数据或自由表中选择表或视图。(4) 根据一定的条件进行“联接和“更新数据”操作。三、创建报表查询和视图能够显示或存储数据,而报表和标签则是数据打印输出的工具.在Visual Foxpro中打印数据,并不是直接送到打印机,而是先建立一个报表或标签文件,从数据表中提取内容,并且设计报表或标签格式,然后再打印报表或标签。使用“报表向导可以快速创建报表,具体步骤是:(1) 在“项目管理器的“文档选项卡中,选择“报表”;(2) 单击“新建”按钮,出现“新报表对话框;(3) 在对话框中单击“报表向导按钮,出现“向导选取对话框;(4) 选择“报表向导”后,单击“确定”按钮,进入“报表向导步骤1 “字段选
29、取”;(5) 在“数据库和表”中选择“视图”,按照向导屏幕上的指令完成后面的操作,最后要保存报表文件(.frx),在保存对话框中输入报表文件名。(6) 通过“预览”和“修改,最终达到报表打印要求.3.3。3 创建表单在Visual Foxpro中表单是面向对象编程的主要工具,面向对象编的大多数工作在表单中进行.设计表单的过程就是设计程序界面的过程。通过表单的设计,设计出用户界面,然后运行它,使用户能够与系统进行交互操作。表单显示了表和视图中的字段和记录,而且包含定位控件,在Visual Foxpro 中可以使用“表单向导”或“表单设计器创建表单。在本系统的设计中,主要使用“表单设计器”来设计表
30、单,步骤如下:一、 启动“表单设计器”(1) 在“项目管理器”中选择“文档”选项卡,然后选择“表单”;(2) 单击“新建按钮,现出“新建表单”对话框;(3) 单击“新建表单”按钮,进入“表单设计器。二、“表单设计器”窗口“表单设计器中有表单和九种工具栏,常用的有三个:(1)“布局”工具栏(2)“表单控件”工具栏,可以向表单添加各种对象.(3)“属性工具栏:设置、编辑表单对象的各种属性。通过表单设计器既可以修改对象属性,也可以向对象添加控件.3.3.4 主程序的构造主程序作为应用程序的入口,在VFP中是必需的,本软件的主程序主要完成初始环境设置、调用开始界面、进入事件循环、等待用户输入、结束时清
31、理环境等一些基本的功能,具体如下:*程序名: MAIN作 用:主程序* 作者:张琦 2003/05/02*HIDE WINDOW SCREENDO FORM FORMSloaderDO PROGSSETTING.PRGDO FORM FORMSLOGIN TO IN_FLAG返回用户的操作权限标志loader.RELEASE()IF P_FLAG!=0全程变量P_FLAG在表单LOGIN的INIT()中定义,记录着用户的操作权限DO FORM FORMSMAINFORM WITH IN_FLAGREAD EVENTSENDIFDO PROGSRESET。PRGQUIT*程序名: SETTING
32、作 用:初始化设置* 作者:张琦* SET SYSMENU OFF SET SYSMENU TO SET TALK OFF SET NOTIFY OFF SET CLOCK STATUS SET PALETTE OFF SET BELL ON SET SAFETY OFF SET ESCAPE ON SET KEYCOMP TO WINDOWS SET CARRY ON SET CONFIRM ON SET EXACT ON SET NEAR ON SET ANSI OFF SET LOCK ON SET EXCLUSIVE OFF SET MULTILOCKS ON SET DELETED
33、ON SET OPTIMIZE ON SET REFRESH TO 0,5 SET ODOMETER TO 100 set date to YMD SET RESOURCE ON SET CENTURY on SET CURRENCY LEFT SET CURRENCY TO ¥ SET HOURS TO 12 SET DECIMALS TO 2 SET FDOW TO 1 SET FWEEK TO 1 SET MARK TO 。 SET SEPARATOR TO , SET POINT TO . * 环境设置还原* 程序名:RESSET。PRG*SET SYSMENU TO DEFAULTS
34、ET SYSMENU ONSET NOTIFY ONSET EXCLUSIVE ONSET SAFETY ON*SET HELP TOSHOW WINDOW SCREEN!*MODIFY WINDOWS SCREEN3。4 学生管理系统运行启动VFP6。0,在VFP中设置默认路径为“driver:student”,打开项目文件“student。pjx”,可查看项目中的所有内容,运行程序“main。prg”,可启动“学生管理信息系统”。第四章 结束语经过二个多月的设计和开发,学生信息管理系统基本开发完毕。其功能基本符合用户需求,能够完成学生基本信息的录入、修改、删除,数据统计以及各类相关报表的打
35、印。同时也考虑到了学校实际情况以减少数据冗余的问题,对于数据的一致性的问题也通过程序进行了有效的解决.但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。在本次毕业设计中,我从*指导老师身上学到了很多东西.老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给于我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢他细心而又耐心的辅导.另外,在系统开发过程中*老师以及同组的其他同学也给于我很大的帮助,帮助解决了不少的难点,使得系统能及时开发完成,这里我一并表示感谢。参考文献1 信息管理系统 侯炳辉 主编 中央广播电视大学出版社 2002年版2 Visual FoxPro 6.0 使用与实例揭秘孟昭光 吴兴兴 高保禄 董志锋 编著 人民邮电出版社 1999年版 3 数据库基础与应用王利 主编 中央广播电视大学出版社 2002年版