《VF程序设计》知识要点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《VF程序设计》课程知识要点
绪论数据库系统概述
1.数据处理是对数据进行的采集、存储、检索、加工、变换和传输。

数据管理经历了人工管理、文件系统管理、数据库系统管理三个阶段。

2.数据库(Database,DB)是依照某种数据模型组织起来,并存放二级存储器中的数据集合。

数据库的基本结构分三个层次:(1)物理数据层。

(2)概念数据层。

(3)逻辑数据层。

数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是数据库系统。

3.数据库管理系统(Database management system,DBMS)是位于用户与操作系统之间的一层数据管理软件,是操作系统支持下的系统软件。

4.数据库系统(Database system)实际是一个可运行的存储、维护和应用系统所提供数据的软件系统,是存储介质、处理对象和管理系统的集合体,它通常由数据库、数据库管理系统、应用程序和数据库开发人员和数据库管理人员组成。

其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。

数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。

数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。

5.数据库一般有三种数据模型:层次型、网状型、关系型。

在关系模型中,每一个关系的逻辑结构都是一个二维表,表中的一行称为一条记录,表中的一列称为一个字段。

关系运算是指从一个关系(二维表)经过关系运算后,得到一个新的关系(二维表结构),专门的关系运算包括:投影、选择和连接。

第1章Visual FoxPro
6.Visual FoxPro是微软公司推出的数据库应用开发工具,常用版本V isual FoxPro6.0,它是中小型数据库应用系统的首选工具。

Visual FoxPro的工作方式:交互操作方式和程序执行方式。

其中交互操作方式又分为命令执行方式和菜单选择方式。

向导作为一种快捷的设计工具,通过一组对话框依次与用户对话,引导用户分布完成Visual FoxPro的某项任务。

V isual FoxPro有20余种向导工具。

设计器用来创建和修改Visual FoxPro应用程序所需组件,生成器用来在V isual FoxPro 应用程序组件中添加某些控件,或设置其属性。

生成器不能独立使用,必须依附于某个设计器。

7.在Visual FoxPro 中,开发数据库应用系统(DBAS),通常为每个DBAS建立一个项目文件(扩展名为.pjx)
创建项目文件create project <项目名>
修改项目文件modify project <项目名>
“项目管理器”窗口是由6个选项卡组成,各选项卡的功能如下。

(1)“全部”选项卡:用于显示和管理项目包含的所有文件。

(2)“数据”选项卡:包含项目中所有的数据,如数据库、数据库表、自由表、查询和视图
等。

(3)“文档”选项卡:包含显示、输入和输出数据时所涉及到的所有文档,如表单、报表和标签等。

(4)“类”选项卡:显示和管理用户自定义类。

(5)“代码”选项卡:显示与管理各种程序代码文件,包括扩展名为*.PRG的程序文件和扩展名为*.APP的应用程序文件,以及API函数库等。

(6)“其他”选项卡:显示与管理有关的菜单文件、文本文件、位图文件、图标文件和帮助文件等。

第2章表的基本操作
8.安装完V isual Foxpro后,系统自动使用默认值来设置环境。

要定制自己的系统环境,使用”工具”菜单下“选项”命令。

用户文件默认路径的设置:工具——选项——“文件位置”选项卡——“默认目录”选项,注意:设置为默认值,这样下次开机,系统设置的默认目录仍然有效。

9.数据库由一个以上相互关联的数据表组成,其文件扩展名为*.DBC,可以包含一个或多个表、视图、到远程数据源的连接和存储过程等。

用户可以同时打开多个数据库,但只能有一个数据库成为当前数据库。

创建数据库:
Create database <数据库名>
打开数据库:
Open database <数据库名>
设置当前数据库:
Set database to <数据库名>
关闭数据库:
Close database
删除数据库:
Delete database <数据库名> [ delete tables]
如果选用[ delete tables] 短语时,数据库中的所有数据表都将被删除;否则至删除数据库文件,原数据库中的表则变成自由表。

10.数据表是用来存储和管理数据记录,数据在表中是按行和列的格式排列的,每行代表唯一的记录,而每列代表记录的一个字段。

表文件名可以由字母、汉字、数字和下划线组成,扩展名*.DBF。

另外还有一个备注文件(.fpt),用来存放备注字段和通用字段的内容。

数据表又分为自由表和数据库表,自由表不能建立永久关系。

自由表中字段名由字母、汉字、数字或下划线等组成,其长度不超过10个字符。

数据库表中可以建立长字段名,最长可达128个字符,长文件名被存储在*.dbc文件的一个记录中,它的前10个字符同时还作为字段名保存在*.dbf文件中。

数据库表具有自由表所没有的属性,如字段级规则和记录级规则、触发器和永久关系等。

在定义表结构时,要定义表中每个字段的名称、类型、宽度、小数位数和是否接受空值。

表中的一行也称为元组,表中的一列也称为属性。

一个汉字占2个字节,而整数型占4 个字符。

某属性不是该关系的主关键字,却是另一个关系的主关键字称为外部关键字,
属性的取值范围称为域。

11.建立一张新的数据表,可以通过三种途径,即表设计器、表向导和命令。

命令方式:CREATE TABLE | DBF 表名称[NAME 长表名][FREE](字段名1 字段类型[(字段宽度[,精度])][NULL|NOT NULL][,字段名2…]
【例】要创建学生档案表(xsda.dbf)结构,可按以下命令操作。

CREAT T ABLE xsda (编号N(6),学号C(6),姓名C(10),性别F(1),出生年月D(8),入学成绩N(6,2),简历M(4))
备注型字段和通用型字段的长度固定为4个字节,其内容都存放在与表同名的备注文件(*.fpt)中。

打开表:use 表名
关闭表:close [all | tables[all]]
修改表结构的命令P64
(1)添加一个字段:Alter table dx add 备注m(4)
(2)修改一个字段:Alter table sb alter 编号C(6)
(3)删除一个字段:Alter table sb drop 简历
(4)重命名一个字段:Alter table sb rename 入学成绩to 高考总分
12.插入记录
(1)Append [blank] 向表的末尾加入一条空记录。

(2)Insert [blank] [before] 指在表的指定位置上插入一条新的记录。

选用BEFORE选项时,表示在当前记录前插入,否则在当前记录后插入。

完整命令格式:
INSERT into 表名[(字段名1[,字段名2,…])]
V ALUES(表达式1 [,表达式2,…] )
例:比较下面两种形式的差别
Insert into xsda;
values(1050,”WJ050”,”刘流”,.F.,{08/01/88},603.50,”甘肃兰州”)
Insert into xsda(编号,学号,姓名,出生年月);
values(1051,”WJ051”,”武婷”,{04/05/88})
13.修改和替换记录的内容REPLACE…WITH命令p59
REPLACE…WITH命令可以在不打开任何编辑窗口的情况下,直接对表进行字段值的修改和替换,其格式为:
REPL 字段 1 WITH 表达式 1 [ADDITIVE][,字段 2 WITH 表达式2[ADDITIVE]][<范围>][for<条件>][while<条件>]
其中,[ADDITIVE]选项表示可将新加入的内容添加到原内容的后面,比如在备注文件的后面加上新的文字。

例:给每位男生生活补助加20元
use xsda
replace 生活补助with生活补助+20 for 性别=.T.
replace 工资with 工资+500 for 职称=“教授“
14.LIST/DISPLAY [<范围>][FOR <条件>][WHILE <条件>][[FIELDS]<表达式表>] DISPLA Y命令用于在Visual Foxpro 的主窗口中,显示当前记录指针所指向的记录,它可以简写成DISP;
而LIST命令则列出表中的所有记录,它与DISPLAY ALL功能基本相同。

表示范围的短语有all、next、record、rest
例:当前记录号是10,若要显示当前记录:
Display
若要显示10、11、12、13、14号记录的内容,应使用的命令是:
LIST NEXT 5。

15.表记录的定位
(1)绝对定位GO [RECORD]表达式[IN 工作区│IN 表别名]
GOTO [RECORD]表达式[IN 工作区│IN 表别名]
例如:go 3 指向第三条记录
GO TOP 将记录指针定位在表的第一个记录(TOP)
GO BOTTOM将记录指针定位在表的最后一个记录(BOTTOM)
注意:表的最后一条记录并不等于表尾,因为表的末尾是一个指针,它指示下一条新记录将存储的位置,也可以把它看做是一条空记录。

所以,程序中虽然用了GO BOTTOM 命令,但函数EOF()返回的值是.F.。

记录指针标志可以理解为保存当前记录号的变量,它的初值总是1,不可能为0或负数,最大值是表中记录的总数加1。

如果刚打开的表中没有记录,bof(),eof()的值为.T. ,recno()的值为1
如果刚打开的表中没有记录,bof(),eof()的值为.F. ,recno()的值为1
(2)相对定位SKIP <n> 是指把指针从当前位置开始,相对于当前记录向前或向后移动若干个记录位置。

当n为正值时,则向下移动;当n为负值时,则向上移动;当无n时,则向下移动1个,如下所示。

SKIP &&记录指针指向当前记录的下一个记录
SKIP -2 &&记录指针指向当前记录之前的第2个记录
SKIP 5 &&记录指针指向当前记录之后的第5个记录
已知当前表中有20条记录,当前记录为第3号,在执行命令skip 7后,当前为第10号记录?
16.记录的删除P68
(1)逻辑删除DELETE
(2)物理删除pack 将打上删除标记(逻辑删除)的记录作物理删除
(3)恢复记录recall
(4)清除记录ZAP
第3章查询与统计
17.数据表的排序
SORT ON <字段1>[/A] [/C] [/D][,<字段2>[/A] [/C] [/D]…] TO <文件名>
[<范围>][FOR <条件>][WHILE <条件>][FIELDS <字段表>]
[ASCENDING|DESCENDING]
[/A]为升序排序,指定[/D]为降序排序,默认为升序排序。

[/C] 排序时不区分字母大小写。

排序与索引的区别是:排序将产生一个新的数据表,新表与原表不再有任何联系,而索引是产生索引文件,通过指针相关联,索引查询,先通过关键字排序在索引中顺序查找相应的记录号,再通过关联在原表中找到相应的记录。

18.索引类型:在Visual FoxPro中,它包括主索引、候选索引、普通索引和惟一索引四种。

主索引:组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。

主索引只适用于数据库表的结构复合索引中。

自由表中不可以建立主索引,在数据库中的每个表,可以且只能建立一个主索引。

Visual FoxPro 不允许在关键字字段中有重复值或空值。

在VFP中,用命令可以创建候选索引、普通索引和惟一索引,但是不可以创建主索引。

Visual FoxPro支持单索引文件(.idx)和复合索引文件(.cdx)
创建单索引的命令是INDEX ON <索引关键字表达式> to <单索引文件> [for〈条件〉]。

例:index on 编号to bhao
复合索引文件包括结构复合索引文件、独立复合索引文件。

结构复合索引文件与表文件同名,并且随表的打开而打开,随表的关闭而关闭
建立结构复合索引:p75
Use sb
Index on 价格tag jg
Index on 部门+str(价格,9,2) tag bmjg & 复合索引表达式类型要一致。

使用索引(设置当前索引)
Set order to jg
建立独立复合索引文件的命令
Index on <索引关键字表达式> tag <索引标识名> of <非结构复合索引文件名>[for <条件>] Index on 入学成绩tag cj of sbcj
19.顺序查询P78
LOCA TE FOR 逻辑表达式1 [范围] [WHILE 逻辑表达式2] [NOOPTIMIZE]
……
CONTINUE
LOCATE FOR在找到符合条件的第一条记录以后,就停止查找,而CONTINUE命令则告诉系统继续往下查找。

Found()函数用来表示locate 命令是否找到符合条件的记录。

例如:p129 将sb表中的第1个非主要设备的价格减少10%。

Use sb
Locate for not 主要设备
If found()
Display 名称,价格
Replace 价格with 价格*(1+0.1)
Display 名称,价格
索引查询
Seek <表达式>
例use sb
Inder on 编号tag bh
Seek “0001”
20.工作区p80
工作区与数据表一一对应关系,一个工作区中只能打开一张表,一张表也只能在一个工作区中打开。

Use sb in 3
Select 0
Use sb
21.数据表的统计p88
(1)COUNT[范围] [FOR <条件>][WHILE <条件>][TO <内存变量>]
功能:统计指定范围内满足条件的记录个数。

(2)TOT AL 0N <关键字> TO <文件名>[<范围>]
[FOR <条件>][WHILE <条件>][FIELDS <字段表>]
功能:对当前数据表中指定的数值型字段进行分类求和,并生成一个汇总数据表。

(3)SUM [<表达式表>][<范围>][FOR <条件>][WHILE <条件>][TO <内存变量表>] 功能:在指定范围内满足条件的所有记录,计算出各记录对应于指定表达式的值,再分别对这些值求和.
?MAX(…74‟,‟93‟,‟-23‟,‟45‟)的值是93,
(4)A VERAGE[<表达式表>][<范围>][FOR <条件>][WHILE <条件>] [TO <内存变量表>]
功能:将指定范围内满足条件的所有记录,计算出各记录所对应于指定表达式的值,再分别对应这些值求平均值。

22.字段有效性规则设置字段掩码p113
“输入掩码”(Input Mask)是指定字段的值必须遵守的标点、空格和其他格式的要求。

“输入掩码”是字段或者控件的一种属性,用以限制或控制用户输入数据的格式。

与“格式”相同,“输入掩码”属性也对应着各种格式化代码。

9 只允许输入数字
若要输入类似(010)123-45678这样的号码,则需要在“输入掩码”输入(999)999-99999。

X 只允许输入字符
23.记录的有效性规则P113
记录有效性规则是用来设置同一记录不同字段数据之间所要满足的逻辑关系。

24.关系的类型:“一对一”关系、“一对多”关系、“多对多”关系
表与表之间的连接有四种类型:
内部联接(inner join)
左联接(leftout join) 右联接(rightout join) 完全联接(fullout join)
25.关系的完整性分为域完整性、实体完整性、参照完整性三种。

P112
域完整性:即字段级验证规则;
实体完整性:即记录级验证规则;
参照完整性是Visual FoxPro定义的一个规则系统,通过使用这个规则,系统来确保相关表中记录之间关系的有效性,并且不会意外地删除或更改相关数据,使相关表之间保持数据一致性。

具体说,参照完整性规则包括更新规则、插入规则、删除规则。

第4章结构化程序设计
26.常量的类型有字符型、数值型、货币型、日期型、日期时间型、逻辑型等多种类型。

(1)字符型常量的定界符有' '、" "、[ ]
(2)日期型、日期时间型常量的定界符{}
(3)逻辑型常量.T. .F.
Visual Foxpro中含有系统变量、字段变量、内存变量三种系统对象变量,并且明确了他们的分工。

27.一个数据表文件最多可有128个字段变量,且它们的总长度不得超过4000个字节。

在数据表中有一个专门用来指示当前记录的记录指针,字段变量的当前值就是当前记录中该字段的值。

PARAMETERS命令声明的形参变量被看作模块程序中建立的私有变量; LPARAMETERS命令声明的形参变量被看作模块程序中建立的局部变量。

28.日期时间表达式
+:加(秒或天数)。

{^2007/12/01 10:38:20AM}+30结果为{^2007/12/01 10:38:50AM};
而{^2007/12/01}+30结果为{^2007/12/31}
-:减(秒或天数),其操作同上
注意:两个日期不能相加,{^2007/12/01 }+{^2007/12/31} 是错的
29.字符型表达式+ - $ 例P51
+:用于连接两个字符表达式,结果为将两个字符型数据首尾相接的字符型数据。

–:用于连接两个字符表达式,同时删除第一个字符串的尾部空格。

$:用于两个字符表达式之间的比较,判断第一个字符数据是否完全包含在第二个字符型数据中。

其用法为<expC1> $ <expC2>,如果<expC2>中包含有<expC1>,则表达式值为真(.T),否则为假(.F.)。

关系表达式< > = <> ! == p50 表2.6
逻辑表达式and or not P50表2.6
30.常见系统函数P53
(1)A T(<字符表达式1>,<字符表达式2>)[,<数字>])
检索字符表达式1在字符表达2中的位置,数字表示第几次出现
例:? A T("科技","Help科技") 结果是:5
?AT(“a”,”farmarom”,2) 结果是:5
(2)LEN(<字符表达式>)
测定字符串的长度
例:? LEN("What's your name") 结果是:16
(3)BETWEEN(<被测试的表达式>,<低限>,<高限>)
测定表达式是否在两个表达式之间,返回的结果为逻辑型
? BETWEEN(3*6,12,25) 结果是:.T.
(4)EOF([<工作区号>|<表别名>])
BOF([<工作区号>|<表别名>])
RECNO([<工作区号>|])
(5)substr( <源字符表达式>,<起始位置>[,<子串长度>])
?substr(“workroom”,5,2) 结果是:ro
left() right() trim()
Str() asc() chr() val() int() mod() round() abs( ) sqrt()
Max() min()
Date() year() mouth() day() time() ctod() dtoc() datetime()
Iif()
分析复杂表达式的运算结果(主要理清运算符的运算的优先次序):
例:表达式“ab” $”cab” and 9+3>12 or 3+8>12的结果为: .T.
31.程序文件的扩展名为*.prg
命令方式:MODIFY|MODI COMMAND|COMM[[路径] 文件名]
运行程序格式:DO <程序名>
32.赋值语句:STORE <表达式> TO <名称列表> 或<名称> = <表达式>
STORE 40*2-3 TO A,B,C
today = {^2007/01/22}
today = CTOD("01/22/2007")
33.? | ??命令
格式:? | ?? 表达式[FUNCTION 参数] [FONT 字体名,字体大小]…
功能:在屏幕上显示表达式的内容。

说明:? 表达式:用于对表达式进行计算,然后在屏幕上新起一行显示计算结果;
?? 表达式:不换行而接着当前行直接输出。

34.INPUT [<字符表达式>] TO <内存变量>
功能:该命令等待用户从键盘输入数据,可以输入任意合法的表达式。

输入字符串时必须加定界符' '、" ",输入逻辑型常量时要用圆点定界(如:.T.、.F.)。

ACCEPT [<字符表达式>] TO <内存变量>
功能:该命令等待用户从键盘输入字符串。

该命令只能接收字符串。

在输入字符串时不需要加定界符。

35.@ <行,列> [SAY <表达式>]|[GET <变量> [RANGE <表达式1>,<表达式2>][V ALID <条件>]
功能:在屏幕上指定的行、列位置输出指定表达式的值,并且将输入的数据保存到所指定的变量中。

说明:①<行,列>用于指定在屏幕上输出的行、列位置坐标,行和列均应是数值表达式,并且系统将自动对其取整。

②SA Y <表达式>子句是用来在屏幕上指定的行、列位置输出指定表达式的值。

③GET <变量>子句是用来在屏幕上指定的行、列位置输入数据给指定的变量,且必须与READ命令配套使用。

36.分支结构程序设计
IF...ELSE...ENDIF和DO CASE...ENDCASE
37.循环结构程序设计
当型循环结构步长型循环结构扫描型循环结构
EXIT是无条件结束循环命令,使程序跳出DO WHILE…ENDDO循环,而去执行ENDDO后的第一条命令。

EXIT只能在循环结构中使用,但是可以放在DO WHILE…ENDDO中任何地方。

LOOP控制直接返回到DO WHILE语句,而不执行LOOP和ENDDO之间的命令。

因此LOOP称为无条件循环命令,只能在循环结构中使用。

38.子程序、过程、自定义函数的调用
Do <子程序名> [With <实际参数表>]
例题5-23
DO <过程名> [With <实际参数表>]
例题5-24
<函数名>[<参数表>]
例题5-25
在程序中没有通过PUBLIC和LOCAL命令声明全局变量和局部变量,而由系统自动隐含建立的变量都是私有变量。

全局变量又称公共变量,在任何模块中都可使用的变量。

私有变量仅在定义它的模块以及下层模块中有效,而在定义它的模块运行结束时自动清除。

本地变量又称局部变量,只能在建立它的模块中使用,而且不能在高层或底层模块中使用,该模块运行结束时本地变量就自动释放。

第5章菜单设计
39.菜单同样有着自己的组织结构(树型结构),它是由菜单栏、菜单标题、菜单和菜单项组成
创建菜单:Create Menu
结果栏。

选定菜单项的类别,包括有:
①子菜单:即此菜单项下还有子菜单,单击右边的编辑按钮可编辑子菜单;
②命令:选择此菜单执行一条命令,可调用一个程序;
③主菜单名或菜单项:给菜单对象设置一个名字,以方便对它的引用;
④过程:定义一个与菜单项相关联的过程。

在“菜单设计器”窗口中设计的菜单是保存在一个以*.mnx为文件扩展名的数据表中,该表存储与菜单系统有关的所有信息,因此这时菜单并不能被调用。

要在应用程序中使用菜单,必须先通过*.mnx表来生成相应的程序代码。

单击菜单“菜单”——“生成”命令,Visual FoxPro
提示将菜单系统以*.mnx 为文件扩展名保存。

在保存菜单系统之后,V isual FoxPro 提示一个带有*.mpr 扩展名的输出文件,此文件将包含已生成的菜单程序。

生成相应的菜单程序后,就可以在程序或命令窗口中使用以下代码来执行菜单。

DO <菜单程序.MPR>
第6章表单设计
40.面向对象程序设计(Object Oriented Programming,OOP)方式,它以对象和数据结构为程序设计的中心,而不是以操作和过程为中心。

OOP方式用“对象”表示各种事物,用“类”表示对象的抽象,用“消息”实现对象之间的联系,用“方法”实现对象处理的过程。

类是对象的抽象描述;对象是类的实例。

类具有继承性、封装性和多态性等三个特征。

Visual FoxPro中的应用程序必须要创建一个事件循环,事件循环由READ EVENTS命令建立,由CLEAR EVENTS停止事件处理。

41.绝对引用
是通过提供对象的完整容器层次来引用对象,若要使表单中的控件无效,需要提供以下地址:Formset.Form.PageFrame.Page.Grid.Column.Control.Enabled=.F.
相对引用
是指在容器层次中引用对象时,可以通过快捷方式指明所要处理的对象。

例如:
(1)THISFORMSET.Frml.Cmdl.Caption="关闭":表示将本表单集Frml表单中Cmdl对象的标题(Caption)属性设置为“关闭”。

(2)THISFORM.Cmdl.Caption="关闭":表示将本表单的Cmdl对象的标题(Caption)属性设置为“关闭”。

(3)THIS.Caption="关闭":对于需要改变标题的控件,表示将本对象的标题(Caption)属性设置为“关闭”。

(4)THIS.Parent.BackColor=RGB(192,0,0):将本对象的父对象背景色设置为暗红色。

42.表单,即用户与计算机进行交流的一种屏幕界面,用于数据的显示、输入、修改。

表单集,是一个对象,可以包含多张表单的容器。

数据环境,在打开或修改一个表单或报表时需要打开的全部表、视图和关系,它以窗口形式(类似于数据库设计器)反映出与表单有关的表、视图、表之间关系等内容。

表单的常用方法:cls hide release refresh show
有关表单事件引发的显示顺序:load(对象被创建之前发生)—— init(对象被创建时发生)—— active(激活对象)
43.表单创建、编辑
Create form <表单名>
Modify form <表单名>
保存表单将产生两个文件:*.scx表单文件和*.sct表单备注文件
运行表单
Do form <表单名>
44.常用控件的常用属性设置p186
表单名.控件名.属性名=属性值
mand1.caption=”姓名”
在程序中调用事件格式的代码是:表单名.对象名.事件名
第9章报表设计
45.报表是通过打印机将所需的记录用书面形式输出来的一种方式。

包括数据源和布局,数据源为数据库中的表或视图、查询或临时表;报表布局定义报表的打印格式。

报表保存后系统会产生两个文件:报表定义文件(* .FRX)和.报表备注文件(*.FRT)。

46.报表设计的带区:
三程序填空题
1、程序的功能是求1到100之间所有整数的平方和并输出结果,请填空。

S=0
X=1
DO WHILE X<=100
S=S+X^2
X=X+1
ENDDO
? S
RETURN
2、自定义计算阶乘n!的函数。

FUNCTION JC
PARA NUM
S=1
FOR N=1 TO NUM
S=S*N
ENDFOR
RETURN S
3、学生成绩的分档次统计。

从键盘上输入分数,按0—59、60—69、70—79、80—89、90—99和100分六个档次统计。

STORE 0 TO K0,K6,K7,K8,K9,K10
INUPUT “请输入分数:” TO A
DO CASE
CASE A<60
K0=K0+1
CASE A<70
K6=K6+1
CASE A<80
K7=K7+1
CASE A<90
K8=K8+1
CASE A<100
K9=K9+1
OTHERWISE
K10=K10+1
ENDCASE
4.下面程序功能是按姓名提供学生成绩的查询,请填空。

USE STUDENT
ACCEPT”请输入待查学生姓名:” TO XM
DO WHILE .NOT. EOF( )
IF 姓名=XM
?”姓名:”+姓名,”成绩:”+STR(成绩,3,0)
ENDIF
SKIP
ENDDO
SET TALK ON
5.统计“RCDA”数据表中工资超过3000元的人数。

USE RCDA
RC=0
DO WHILE .NOT. EOF()
IF 工资>3000
RC=RC+1
ENDIF
SKIP
ENDDO
@2,30 SAY “工资在3000元以上的人数:”
@2,60 SAY RC
6.键盘输入任意表名(设表中均有“分数”字段,数据类型为N),再输入一个分数,在该表中查找此分数,如果找到显示该记录的姓名,否则显示“没有找到”。

ACCEPT TO A
INPUT TO N
USE &A
LOCATE FOR 分数=n //在打开表中查找分数字段值等于键盘输入数值N的记录IF FOUND( )
? 姓名
ELSE
? “没有找到”
ENDIF
USE
7.设表文件图书.DBF包含如下字段:书名(字符型),作者(字符型),出版日期(日期型)。

下面程序的功能是:列出图书表中的每个记录。

请将程序完善。

CLEAR
USE 图书
DO WHILE .T.
IF EOF( )
EXIT
ENDIF
? 书名+作者+ DTOC(出版日期)
SKIP
ENDDO
USE
RETURN
8.设教师.DBF用于存放教师信息,其字段有:姓名(字符型),性别(字符型),工资(数值型)。

下面程序的功能是:列出教师表中的每个记录。

请将程序完善。

SET TALK OFF
CLEAR
USE 教师
GO BOTTOM
DO WHILE .NOT.BOF( )。

相关文档
最新文档