VFP 基本数据库系统开发实例(附图)
西南大学计信院
导学
在 Visual Foxpro 中开发一个应用系统应该包括需求分析、项目创建、模块设计、运行调
试、保存发布到建立帮助等,下面介绍如何把各个模块集成起来,并创建一个应用程序。
11.1 系统需求分析
传统的学生成绩管理方法不仅浪效率低,
而且由于管理不规范容易导致各种错误的发生。
因
此实现一个智能化、 系统化的公共计算机成绩管理系统是十分必要和不可缺少的。
它将大大减轻
管理者的劳动强度,降低出错率,提高管理的效率。该系统可以实现如下功能:
1. 数据需求
通过调查,总结出该应用程序对数据的需求大致有如下这些:
(1)
学生信息
包括学号,姓名,性别,出生日期,系科,备注,照片
(2)
管理员信息
包括用户名,密码,管理员姓名,权限,说明信息
(3)
学生成绩信息
主要包括学号 , 课程编号,平时成绩,笔试成绩,上机成绩,总评成绩,审核否
(4)
课程信息
包括课程编号,课程名称
2. 功能需求
功能分析的任务是了解用户对数据的处理方法和输出格式。
(1)
基本数据录入
基本数据包括学生信息、 管理员信息、 学生成绩休息和课程信息等。 要求系统能够录入这些
数据,并且可以进行修改。在数据录入和修改过程中应保持数据的参照完整性。
(2)
查询
能够查询出学生成绩,和补考人员名单等。
(3)
学生和管理员信息的维护
要求能够根据需要对学生和管理员信息进行维护修改等。
(4) 成绩的审核
根据学生的总评成绩审核学生的计算机成绩是否通过。
(5)
打印输出
打印学生成绩表和补考人员名单等。
11.2 系统设计
1. 程序总体结构设计
在开始程序设计之前, 首先应该将程序的总体结构以层次图的形式表示出来,
便于对程序分
层设计和实现。图 1 所示为公共计算机成绩管理系统的功能模块图。
2. 数据库逻辑设计
图 1 公共计算机成绩管理系统功能模块
进行数据库设计的依据有三个:第一是在进行系统调查时由成绩管理员提供的各种处理数
据;第二是功能设计结果; 第三是数据库设计规范化理论。 数据库设计是系统设计的一项基本工
作,其效果的好坏,对后续设计、调试、使用、维护等工作关系极大,因此,一定要高度重视这
一部分工作。 当然, 我们不能简单地将数据库设计理解为在计算机上用可视化的方法建立表的过
程,其主要工作是建立一种完整、规范的数据模型以支持整个应用系统对数据的要求。
根据对实际情况进行分析建立关系模型
1) 学生信息表(学号,姓名,性别,出生日期,系科,备注,照片)
2) 管理人员信息表(用户名,密码,管理员姓名,权限,说明信息)
3) 学生成绩表(学号 , 课程编号,平时成绩,笔试成绩,上机成绩,总评成绩,审核否)
4) 补考名单表(学号,姓名 , 总评成绩,补考成绩)
5) 课程表(课程编号,课程名称)
11.3 创建项目
Visual Foxpro 推荐在项目管理器中开发应用程序,因为项目管理器会为开发工作带来很多方
便。在项目管理器中创建一个项目后,应用程序就具备了一个开发框架,
然后在这个框架中, 再
利用项目管理器所提供的强大功能,按照需求来实现应用程序的设计。
用户可以启动 Visual Foxpro ,选择【文件】 |【新建】命令,在打开的对话框中,选择
“项目 ”
单选按钮,然后单击 “新建文件 ”按钮,接着在 “创建 ”对话框中,输入项目文件名并确定项目路径
(本例使用的路径为
公共计算机成绩管理系统) ,然后单击 “保存 ”按钮,即可启动项目管理器。
一个完整的应用程序,即使规模不大,也会涉及到多种类型文件,如
dbc 数据库、 dbf 表以及
菜单、表单、报表、位图等。为了以后的修改、维护工作方便进行,就需要把这些文件放在不同
的文件夹中便于管理维护,例如
一般把 dbc 数据库文件、 dbf 表文件和 cdx 索引文件放在 DATE
目录,表单、报表、标签等放在
FORMS 目录等。
11.4 数据库的物理设计
a) 数据库名为公共计算机成绩管理
b) 数据表
.dbc
i.
学生信息表 .dbf
学号 /C/10, 姓名 /C/10, 性别 /L/1, 出生日期 /D/8, 系科 /C/30, 备注 /M/4, 照片 /G/4
ii.
管理人员信息表 .dbf
用户名 /C/10, 密码 /C/10, 管理员姓名 /C/10, 权限 /C/4, 说明信息 /C/20
iii.
学生成绩表 .
dbf 学号 /C/10, 课程编号 /C/2 ,平时成绩 /N/6/2, 笔试成绩 /N/6/2 ,上机成绩 /N/6/2, 总评
成绩 /N/6/2, 审核否 /L/1
iv.
补考名单表
学号 /C/10 ,姓名 /C/10, 总评成绩 /N/6/2 ,补考成绩 /N/6/2
v. 课程表
课程编号 /C/2 ,课程名称 /C/14
构
图 2 公共计算机成绩管理数据库及其表结
11.5 界面设计
1) 创建启动表单
下面设计应用程序的封面,主要由一个表单来实现,其效果如图
在项目管理器中,打开“文档”选项卡,选择“表单”选项,
10.4 所示。
单击“新建”按钮, 在打开的
对话框中单击“新建表单”按钮,这时,将弹出一个表单设计器和表单
工具栏中的标签和命令按钮,分别在表单中添加一个标签控件(采用系统默认名称
Form1。单击表单设计器
Labell )和
两个命令按钮控件(采用系统默认名称
下面分别设置各对象的主要属性。属性设置见表
command1和 command2)。
10.6 所示。
设置 command1对象的 click 事件代码为:
do form
密码 .scx
* 打开“密码”表单
设置 command2对象的 click 事件代码为:
thisform.release
* 释放本表单
Quit
* 清除事务处理退出 VF
2) 创建身份验证表单
在项目管理器中, 与主表单的创建方法相类似, 可以创建“身份验证”表单的界面如图
10.5
所示。 首先通过表单控件工具栏在表单上添加二个标签控件、
一个文本框控件及两个命令按钮控
件。
其中“密码”表单中各对象的属性设置情况如表
10.7 所示:
设置密码表单的 init 事件为:
Thisform.text1.SetFocus()
Thisform.text1.passwordchar='*'
设置密码表单的 load 事件为:
SELE 1
USE 密码
设置 option1 对象的 click 事件代码为:
PUBLIC M.权限 ,M. 密码
sele 1
SET EXAC ON
LOCA FOR 密码 =ALLTRIM(Thisform.text1.Value)
IF FOUND()
M. 密码 =密码
M. 权限 =权限
KUAN=1
thisform.release
ELSE
Thisform.text1.passwordchar=''
Thisform.text1.Value='
密码错误 !'
A=INKEY(1)
Thisform.text1.Value=''
THISFORM.OPTIONGROUP1.VALUE=0
Thisform.text1.SetFocus()
Thisform.text1.passwordchar='*'
KUAN=0
ENDIF
设置 option2 对象的 click 事件代码为:
thisform.release
* 释放本表单
clear event
11.6 主菜单设计
下面利用 Visual FoxPro 的菜单功能设计应用程序的子系统,其结构示意如图
10.8 所示。
打开项目管理器中的“其他”选项卡,选中【菜单】项,然后单击“新建”按钮,在弹出的
图 10.8
对话框中
单击“菜单”按钮,参照总体结构图
10.8 ,在打开的菜单设计器中,设计主菜单,如图
10.9 所
示。
单击菜单项后的“创建”按钮, 即可在打开的菜单设计器窗口中创建该菜单项的子菜单。
如
果要设置命令
的快捷键,可以单击其后的选项按钮,然后在打开的对话框中,输入快捷键的名称,如图
10.10
图 10.9
所示。
最后单击确定按钮,返回到菜单设计器窗口,在“退出”菜单项的文本框中,输入
clear
events ,然后单击
关闭按钮,将菜单保存为“主菜单 .mnx”。运行该菜单,其效果如图
10.11 所示。
图 10.10
图 10.11
接着,创建应用程序的主文件,将其保存为“主程序. prg ” 。在代码编辑窗口中,输入以
下代码:
_screen.windowstate=2
_screen.caption="
公共计算机成绩管理系统 "
_screen.closable=.f.
_screen.picture="
close all
clear all
clear
图片 \news_2003816214445.jpg"
set sysmenu off br> set sysmenu to
set talk off
set safety off
set status bar off
do form
封面 .scx
DO 菜单 1.MPX
read event
set sysmenu to default
set sysmenu on
set status bar on
close all
clear all
return
图 10.12