江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
第十一章 应用程序开发(复习要点)
第十一章 应用程序开发

11.1 开发应用程序的基本步骤

在开发应用程序时,首先应进行系统环境规划,规划中要考虑的因素有:应用程序所面向的用户及其可能需要的各种操作、数据库规模、系统工作平台(单用户或是网络)、程序要处理的数据类型(是本地数据还是远程数据)等。规划完成之后,即可利用项目管理器来进行每一步开发,它可以帮助管理开发过程中的所有文件,并最终连编成应用程序。应用程序的开发步骤大致如下图所示:

1. 数据库结构设计

2. 系统功能模块设计

3. 菜单设计

4. 用户界面设计

5. 查询设计

6. 报表设计

7. 系统维护设计

8. 系统模块调试

9. 用项目管理器连编成应用程序

11.2 优化应用程序的技巧

1. 优化表和索引

(1) 如果没有启用记录或表缓冲,应该使用INSERT-SQL命令(因索引只需更新一次),而不要使用APPEND BLANK 命令后再使用REPLACE;

(2) 当需要将大量记录追加到索引过的表中时,应先取消或关闭索引,在数据追加完毕,再重建索引,这样速度会快些;

(3) 在SQL语句中要尽量避免函数调用;

(4) 如果需要经常使用某种索引顺序,应周期性使用此索引对表进行排序,提高表的性能;

(5) 在多用户环境中,使用CDX 索引文件比 IDX 索引文件快。

2. 使用Rushmore 技术加速数据访问

使用 Rushmore 技术可以显著地提高查询的速度。Rushmore 是一种从表中快速地选取记录集的技术,它可将查询响应时间从数小时或数分钟降低到数秒。访问单表时,使用 FOR 子句,访问多表时,使用SELECT-SQL 查询,可自动隐含地使用该技术。

(1)访问单个表中的数据,使用一个FOR子句;

(2)访问多个表中的数据,使用SELECT-SQL、DELETE-SQL、UPDATE-SQL命令。

3. 优化表单和控件

(1) 使用数据环境;

(2)在表单集里限制表单数目;

(3)在页框中动态加载页面控件;

(4)动态绑定控件与数据;

(5)当必须对屏幕进行多处更改时,延迟屏幕刷新;

(6)在经常使用的方法程序中减少代码。

4. 提高VFP程序性能的一般技巧

(1)数据要选择正确的数据类型

(2)避免重复打开文件,需要打开多个文件时,将它们分配给不同的工作区,需要时使用SELECT命令选择工作区;

(3)尽量使用FOR…ENDFOR循环,而不要使用DO WHILE…ENDDO循环,因为FOR循环较快;

(4)从多个字段复制数据时,用SCATTER TO ARRAY 比用SCATTER MEMVER快;

(5)为了有效的使用内存,避免在需要对象之前就创建它们,当不要该对象时应及时清除它;

(6)尽量将输出发送到顶层窗口,速度快些;

(7)使用SET TALK OFF命令取消状态显示,可节省屏幕顶端更新时间;

(8)将SET DOHISTORY 设置为OFF,避免当运行程序时每次都更新命令窗口;

(9)使用名称表达式代替宏替换,因为名称表达式更快;

(10)有效地引用对象属性:

·优化对属性的重复引用,可将属性值保存到一个变量中,再进行更改,在完成时一次性的设置属性;

·有效地引用多个属性,可以用WITH…ENDWITH命令避免重复查找同一个对象,或将对象的引用保存在变量中。

11.3 程序开发实例

—— 简单的高校教学管理系统

1. 设计数据库

    数据库的组成:学生登记表、教师登记表、院系登记表、专业登记表、班级登记表、教学计划表、课程登记表、成绩登记表

    数据表的结构:各数据表的结构如下表。

    表名
    字段名及字段类型
    学生登记表
    学号
    姓名
    性别
    出生日期
    班级
    年级
    专业
    院系
    特长
    政治面貌
    C8
    C8
    C2
    D
    C5
    C2
    C4
    C3
    M
    C10
    教师登记表
    教工号
    姓名
    性别
    出生日期
    职称
    晋升时间
    职务
    专业
    院系
    参加工作时间
    C5
    C8
    C2
    D
    C10
    D
    C10
    C4
    C3
    D
    成绩登记表
    学号
    姓名
    课程代号
    平时成绩
    期末考试
    总评成绩
    考试类型
    教师
    考试日期
    C7
    C8
    C5
    N5.1
    N5.1
    N5.1
    C10
    C5
    D
    教学计划表
    院系名称
    班级名称
    课程名
    学年/学期
    学时数
    考试类型
    教室
    任课教师
    C10
    C10
    C16
    C5
    N3
    C10
    C4
    C8
    课程登记表
    课程代号
    类别
    课程名
    学分
    是否考试
    是否必修
         
    C5
    C2
    C16
    N3.1
    L
    L
         
    班级登记表
    班级代号
    班级名称
    班级人数
    专业代号      
    C5
    C10
    N3
    C4      
    专业登记表
    专业代号
    专业名称
    部门代号
           
    C4
    C20
    C3
           
    院系登记表
    院系代号
    院系名称
             
    C3
    C20
             

2. 设计基本表单

    总表单:设计主界面表单与口令检查表单(采用表单集)并运行测试。

    数据表表单:先用向导创建各数据表的表单,再用表单设计器修改成所需的样式。

    数据测试:利用各表单向每个数据表输入部分数据,并进行简单测试。

3. 设计菜单

主菜单组成:根据需要本系统设置6大项菜单:系统维护(需密码才可进入)、浏览、查询、信息输出、帮助、退出。

菜单设计:根据需要完成的各项功能,在菜单设计器中设计各菜单的子菜单和菜单项。

4. 设计浏览表单

    设计成表单集的形式,该表单集既要能浏览到各表的详细信息,又要能浏览到相关表的统计信息。在此表单中出现的任何信息仅供浏览。

5. 设计查询表单

    先在表单设计器中设计一个查询总表单,再用表单向导中的一对多表单向导设计几个分表单,并在表单设计器中进行所需的修改, 最后在总表单的命令按钮中添加所需代码, 使各项查询功能得到实现。

6. 设计输出报表

    根据学校通常所需的教学管理信息,设计一组报表,需要时可以打印出来。

    输出报表包括:学生一览表、教师一览表、部门一览表、专业一览表、班级一览表、课程一览表、成绩一览表、教学计划一览表。

7. 完善菜单设计

    编制各菜单项的过程代码使菜单功能得以实现。

8. 编制帮助信息

    将帮助信息以独立的文件形式保存在计算机中,通过表单的调用来显示帮助信息。帮助信息主要介绍本系统的各项功能及使用方法。

9. 连编应用程序

设计一个主程序,并在项目管理器中用连编按钮将系统所有文件连编成一个应用程序。

10.测试

对不符合要求的部分进行修改,重新连编,再调试,直到完全满足要求为止。