




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VF程序设计课程知识要点绪论 数据库系统概述1数据处理是对数据进行的采集、存储、检索、加工、变换和传输。数据管理经历了人工管理、文件系统管理、数据库系统管理三个阶段。2数据库(Database,DB)是依照某种数据模型组织起来,并存放二级存储器中的数据集合。数据库的基本结构分三个层次:(1)物理数据层。(2)概念数据层。(3)逻辑数据层。数据管理技术发展过程经过人工管理、文件系统 和数据库系统三个阶段,其中数据独立性最高的阶段是数据库系统。 3数据库管理系统(Database management system,DBMS)是位于用户与操作系统之间的一层数据管理软件,是操作系统支持下的系统软件。
2、4数据库系统(Database system)实际是一个可运行的存储、维护和应用系统所提供数据的软件系统,是存储介质、处理对象和管理系统的集合体,它通常由数据库、数据库管理系统、应用程序和数据库开发人员和数据库管理人员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。5数据库一般有三种数据模型:层次型、网状型、关系型。在关系模型中,每一个关系的逻辑结构都是一个二维表 ,表中的一行称为一条记录,表中的一列称为一个字段
3、 。关系运算是指从一个关系(二维表)经过关系运算后,得到一个新的关系(二维表结构),专门的关系运算包括:投影、选择和连接。第1章 Visual FoxPro 6Visual FoxPro是微软公司推出的数据库应用开发工具,常用版本Visual FoxPro6.0,它是中小型数据库应用系统的首选工具。Visual FoxPro的工作方式:交互操作方式和程序执行方式。其中交互操作方式又分为命令执行方式和菜单选择方式。向导作为一种快捷的设计工具,通过一组对话框依次与用户对话,引导用户分布完成Visual FoxPro的某项任务。Visual FoxPro有20余种向导工具。设计器用来创建和修改Vis
4、ual FoxPro应用程序所需组件,生成器用来在Visual FoxPro应用程序组件中添加某些控件,或设置其属性。生成器不能独立使用,必须依附于某个设计器。7在Visual FoxPro 中,开发数据库应用系统(DBAS),通常为每个DBAS建立一个项目文件(扩展名为.pjx)创建项目文件 create project <项目名>修改项目文件 modify project <项目名>“项目管理器”窗口是由6个选项卡组成,各选项卡的功能如下。(1)“全部”选项卡:用于显示和管理项目包含的所有文件。(2)“数据”选项卡:包含项目中所有的数据,如数据库、数据库表、自由表、
5、查询和视图等。(3)“文档”选项卡:包含显示、输入和输出数据时所涉及到的所有文档,如表单、报表和标签等。(4)“类”选项卡:显示和管理用户自定义类。(5)“代码”选项卡:显示与管理各种程序代码文件,包括扩展名为*.PRG的程序文件和扩展名为*.APP的应用程序文件,以及API函数库等。(6)“其他”选项卡:显示与管理有关的菜单文件、文本文件、位图文件、图标文件和帮助文件等。第2章 表的基本操作8安装完Visual Foxpro后,系统自动使用默认值来设置环境。要定制自己的系统环境,使用”工具”菜单下“选项”命令。用户文件默认路径的设置:工具选项“文件位置”选项卡“默认目录”选项,注意:设置为默
6、认值,这样下次开机,系统设置的默认目录仍然有效。9数据库由一个以上相互关联的数据表组成,其文件扩展名为*.DBC,可以包含一个或多个表、视图、到远程数据源的连接和存储过程等。用户可以同时打开多个数据库,但只能有一个数据库成为当前数据库。创建数据库:Create database <数据库名>打开数据库:Open database <数据库名>设置当前数据库:Set database to <数据库名>关闭数据库:Close database 删除数据库:Delete database <数据库名> delete tables如果选用 delete
7、 tables 短语时,数据库中的所有数据表都将被删除;否则至删除数据库文件,原数据库中的表则变成自由表。10数据表是用来存储和管理数据记录,数据在表中是按行和列的格式排列的,每行代表唯一的记录,而每列代表记录的一个字段。表文件名可以由字母、汉字、数字和下划线组成,扩展名*.DBF。另外还有一个备注文件(.fpt),用来存放备注字段和通用字段的内容。数据表又分为自由表和数据库表,自由表不能建立永久关系。自由表中字段名由字母、汉字、数字或下划线等组成,其长度不超过10个字符。数据库表中可以建立长字段名,最长可达128个字符,长文件名被存储在*.dbc文件的一个记录中,它的前10个字符同时还作为字
8、段名保存在*.dbf文件中。数据库表具有自由表所没有的属性,如字段级规则和记录级规则、触发器和永久关系等。在定义表结构时,要定义表中每个字段的名称、类型、宽度、小数位数和是否接受空值。表中的一行也称为元组,表中的一列也称为属性。一个汉字占2个字节,而整数型占4 个字符。某属性不是该关系的主关键字,却是另一个关系的主关键字称为外部关键字,属性的取值范围称为域。11建立一张新的数据表,可以通过三种途径,即表设计器、表向导和命令。命令方式:CREATE TABLE | DBF 表名称NAME 长表名FREE(字段名1 字段类型(字段宽度,精度)NULL|NOT NULL,字段名2【例】要创建学生档案
9、表(xsda.dbf)结构,可按以下命令操作。CREAT TABLE xsda (编号 N(6),学号 C(6),姓名 C(10),性别 F(1),出生年月 D(8),入学成绩 N(6,2),简历 M(4)备注型字段和通用型字段的长度固定为4个字节,其内容都存放在与表同名的备注文件(*.fpt)中。打开表:use 表名关闭表:close all | tablesall修改表结构的命令P64(1)添加一个字段:Alter table dx add 备注 m(4)(2)修改一个字段:Alter table sb alter 编号 C(6)(3)删除一个字段:Alter table sb drop
10、简历(4)重命名一个字段:Alter table sb rename 入学成绩 to 高考总分12插入记录(1)Append blank 向表的末尾加入一条空记录。(2)Insert blank before 指在表的指定位置上插入一条新的记录。选用BEFORE选项时,表示在当前记录前插入,否则在当前记录后插入。完整命令格式:INSERT into 表名(字段名1,字段名2,)VALUES(表达式1 ,表达式2, )例:比较下面两种形式的差别Insert into xsda; values(1050,”WJ050”,”刘流”,.F.,08/01/88,603.50,”甘肃兰州”)Insert
11、into xsda(编号,学号,姓名,出生年月); values(1051,”WJ051”,”武婷”,04/05/88)13修改和替换记录的内容REPLACEWITH命令p59 REPLACEWITH命令可以在不打开任何编辑窗口的情况下,直接对表进行字段值的修改和替换,其格式为:REPL 字段1 WITH 表达式1 ADDITIVE,字段2 WITH 表达式2ADDITIVE<范围>for<条件>while<条件> 其中,ADDITIVE选项表示可将新加入的内容添加到原内容的后面,比如在备注文件的后面加上新的文字。例:给每位男生生活补助加20元use xsd
12、areplace 生活补助 with生活补助+20 for 性别=.T.replace 工资 with 工资+500 for 职称=“教授“14LISTDISPLAY <范围>FOR <条件>WHILE <条件>FIELDS<表达式表>DISPLAY命令用于在Visual Foxpro 的主窗口中,显示当前记录指针所指向的记录,它可以简写成DISP;而LIST命令则列出表中的所有记录,它与DISPLAY ALL功能基本相同。表示范围的短语有all、next、record 、rest例:当前记录号是10,若要显示当前记录:Display若要显示10
13、、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.。 记录指针标志可以理解为保存当前记
14、录号的变量,它的初值总是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 &
15、amp;&记录指针指向当前记录之后的第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 <字段表>ASCENDI
16、NGDESCENDING/A为升序排序,指定/D为降序排序,默认为升序排序。/C 排序时不区分字母大小写。排序与索引的区别是:排序将产生一个新的数据表,新表与原表不再有任何联系,而索引是产生索引文件,通过指针相关联,索引查询,先通过关键字排序在索引中顺序查找相应的记录号,再通过关联在原表中找到相应的记录。18索引类型:在Visual FoxPro中,它包括主索引、候选索引、普通索引和惟一索引四种。主索引:组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引,在数据库中的每个表,可以且只能建立一个主索引。Visual F
17、oxPro 不允许在关键字字段中有 重复值 或 空值 。 在VFP中,用命令可以创建候选索引、普通索引和惟一索引,但是不可以创建主索引。Visual FoxPro支持单索引文件(.idx)和复合索引文件(.cdx)创建单索引的命令是INDEX ON <索引关键字表达式> to <单索引文件> for条件。例:index on 编号 to bhao复合索引文件包括结构复合索引文件、独立复合索引文件。结构复合索引文件与表文件同名,并且随表的打开而打开,随表的关闭而关闭建立结构复合索引:p75Use sbIndex on 价格 tag jg Index on 部门+str(价
18、格,9,2) tag bmjg & 复合索引表达式类型要一致。使用索引(设置当前索引)Set order to jg建立独立复合索引文件的命令Index on <索引关键字表达式> tag <索引标识名> of <非结构复合索引文件名>for <条件>Index on 入学成绩 tag cj of sbcj19顺序查询P78LOCATE FOR 逻辑表达式1 范围 WHILE 逻辑表达式2 NOOPTIMIZECONTINUELOCATE FOR在找到符合条件的第一条记录以后,就停止查找,而CONTINUE命令则告诉系统继续往下查找。Fo
19、und()函数用来表示locate 命令是否找到符合条件的记录。例如:p129 将sb表中的第1个非主要设备的价格减少10%。Use sbLocate 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 3Select 0Use sb21数据表的统计p88(1)
20、COUNT范围 FOR <条件>WHILE <条件>TO <内存变量>功能:统计指定范围内满足条件的记录个数。(2)TOTAL 0N <关键字> TO <文件名><范围>FOR <条件>WHILE <条件>FIELDS <字段表>功能:对当前数据表中指定的数值型字段进行分类求和,并生成一个汇总数据表。(3)SUM <表达式表><范围>FOR <条件>WHILE <条件>TO <内存变量表>功能:在指定范围内满足条件的所有记录,计
21、算出各记录对应于指定表达式的值,再分别对这些值求和.?MAX(74,93,-23,45)的值是93,(4)AVERAGE <表达式表><范围>FOR <条件>WHILE <条件> TO <内存变量表>功能:将指定范围内满足条件的所有记录,计算出各记录所对应于指定表达式的值,再分别对应这些值求平均值。22字段有效性规则 设置字段掩码p113“输入掩码”(Input Mask)是指定字段的值必须遵守的标点、空格和其他格式的要求。“输入掩码”是字段或者控件的一种属性,用以限制或控制用户输入数据的格式。与“格式”相同,“输入掩码”属性也对应着
22、各种格式化代码。 9 只允许输入数字若要输入类似(010)123-45678这样的号码,则需要在“输入掩码”输入(999)999-99999。X 只允许输入字符23记录的有效性规则 P113记录有效性规则是用来设置同一记录不同字段数据之间所要满足的逻辑关系。24关系的类型:“一对一”关系、“一对多”关系、“多对多”关系表与表之间的连接有四种类型:内部联接(inner join)左联接(leftout join) 右联接(rightout join) 完全联接(fullout join)25关系的完整性分为域完整性、实体完整性、参照完整性三种。P112域完整性:即字段级验证规则;实体完整性:即记
23、录级验证规则;参照完整性是Visual FoxPro定义的一个规则系统,通过使用这个规则,系统来确保相关表中记录之间关系的有效性,并且不会意外地删除或更改相关数据,使相关表之间保持数据一致性。具体说,参照完整性规则包括更新规则、插入规则、删除规则。第4章 结构化程序设计26常量的类型有字符型、数值型、货币型、日期型、日期时间型、逻辑型等多种类型。(1)字符型常量的定界符有' '、" "、 (2)日期型、日期时间型常量的定界符(3)逻辑型常量 .T. .F.Visual Foxpro中含有系统变量、字段变量、内存变量三种系统对象变量,并且明确了他们的分工。27
24、. 一个数据表文件最多可有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
25、 是错的29字符型表达式 + - $ 例 P51+:用于连接两个字符表达式,结果为将两个字符型数据首尾相接的字符型数据。:用于连接两个字符表达式,同时删除第一个字符串的尾部空格。$:用于两个字符表达式之间的比较,判断第一个字符数据是否完全包含在第二个字符型数据中。其用法为<expC1> $ <expC2>,如果<expC2>中包含有<expC1>,则表达式值为真(.T),否则为假(.F.)。关系表达式 < > = <> ! = p50 表2.6逻辑表达式 and or not P50表2.630常见系统函数 P53(1)A
26、T(<字符表达式1>,<字符表达式2>),<数字>)检索字符表达式1在字符表达2中的位置,数字表示第几次出现例:? AT("科技","Help科技") 结果是:5?AT(“a”,”farmarom”,2) 结果是:5(2)LEN(<字符表达式>) 测定字符串的长度 例: ? LEN("What's your name") 结果是:16(3)BETWEEN(<被测试的表达式>,<低限>,<高限>) 测定表达式是否在两个表达式之间,返回的结果为逻辑
27、型 ? 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()
28、 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,Ctoday
29、 = 20070122 today = CTOD("01222007")33? | ?命令格式:? | ? 表达式 FUNCTION 参数 FONT 字体名,字体大小功能:在屏幕上显示表达式的内容。说明:? 表达式:用于对表达式进行计算,然后在屏幕上新起一行显示计算结果; ? 表达式:不换行而接着当前行直接输出。34INPUT <字符表达式> TO <内存变量>功能:该命令等待用户从键盘输入数据,可以输入任意合法的表达式。输入字符串时必须加定界符' '、" ",输入逻辑型常量时要用圆点定界(如:.T.、.F.)。A
30、CCEPT <字符表达式> TO <内存变量>功能:该命令等待用户从键盘输入字符串。该命令只能接收字符串。在输入字符串时不需要加定界符。35 <行,列> SAY <表达式>|GET <变量> RANGE <表达式1>,<表达式2>VALID <条件>功能:在屏幕上指定的行、列位置输出指定表达式的值,并且将输入的数据保存到所指定的变量中。说明: <行,列>用于指定在屏幕上输出的行、列位置坐标,行和列均应是数值表达式,并且系统将自动对其取整。 SAY <表达式>子句是用来在屏幕上
31、指定的行、列位置输出指定表达式的值。 GET <变量>子句是用来在屏幕上指定的行、列位置输入数据给指定的变量,且必须与READ命令配套使用。36分支结构程序设计IF.ELSE.ENDIF和DO CASE.ENDCASE37循环结构程序设计 当型循环结构 步长型循环结构 扫描型循环结构EXIT是无条件结束循环命令,使程序跳出DO WHILEENDDO循环,而去执行ENDDO后的第一条命令。EXIT只能在循环结构中使用,但是可以放在DO WHILE ENDDO中任何地方。 LOOP控制直接返回到DO WHILE语句,而不执行LOOP和ENDDO之间的命令。因此LOOP称为无条件循环命令
32、,只能在循环结构中使用。38子程序、过程、自定义函数的调用 Do <子程序名> With <实际参数表>例题 5-23 DO <过程名> With <实际参数表>例题 5-24 <函数名><参数表> 例题 5-25在程序中没有通过PUBLIC和LOCAL命令声明全局变量和局部变量,而由系统自动隐含建立的变量都是私有变量。全局变量又称公共变量,在任何模块中都可使用的变量。私有变量仅在定义它的模块以及下层模块中有效,而在定义它的模块运行结束时自动清除。本地变量又称局部变量,只能在建立它的模块中使用,而且不能在高层或底层模块中使
33、用,该模块运行结束时本地变量就自动释放。第5章 菜单设计39菜单同样有着自己的组织结构(树型结构),它是由菜单栏、菜单标题、菜单和菜单项组成创建菜单:Create Menu结果栏。选定菜单项的类别,包括有: 子菜单:即此菜单项下还有子菜单,单击右边的编辑按钮可编辑子菜单; 命令:选择此菜单执行一条命令,可调用一个程序; 主菜单名或菜单项:给菜单对象设置一个名字,以方便对它的引用; 过程:定义一个与菜单项相关联的过程。在“菜单设计器”窗口中设计的菜单是保存在一个以*.mnx为文件扩展名的数据表中,该表存储与菜单系统有关的所有信息,因此这时菜单并不能被调用。要在应用程序中使用菜单,必须先通过*.m
34、nx表来生成相应的程序代码。单击菜单“菜单”“生成”命令,Visual FoxPro提示将菜单系统以*.mnx 为文件扩展名保存。在保存菜单系统之后,Visual FoxPro 提示一个带有*.mpr 扩展名的输出文件,此文件将包含已生成的菜单程序。生成相应的菜单程序后,就可以在程序或命令窗口中使用以下代码来执行菜单。DO <菜单程序.MPR>第6章 表单设计 40面向对象程序设计(Object Oriented Programming,OOP)方式,它以对象和数据结构为程序设计的中心,而不是以操作和过程为中心。OOP方式用“对象”表示各种事物,用“类”表示对象的抽象,用“消息”实
35、现对象之间的联系,用“方法”实现对象处理的过程。类是对象的抽象描述;对象是类的实例。类具有继承性、封装性和多态性等三个特征。Visual FoxPro中的应用程序必须要创建一个事件循环,事件循环由READ EVENTS命令建立,由CLEAR EVENTS停止事件处理。41绝对引用是通过提供对象的完整容器层次来引用对象,若要使表单中的控件无效,需要提供以下地址:Formset.Form.PageFrame.Page.Grid.Column.Control.Enabled=.F.相对引用是指在容器层次中引用对象时,可以通过快捷方式指明所要处理的对象。例如:(1)THISFORMSET.Frml.C
36、mdl.Caption"关闭":表示将本表单集Frml表单中Cmdl对象的标题(Caption)属性设置为“关闭”。(2)THISFORM.Cmdl.Caption"关闭":表示将本表单的Cmdl对象的标题(Caption)属性设置为“关闭”。(3)THIS.Caption"关闭":对于需要改变标题的控件,表示将本对象的标题(Caption)属性设置为“关闭”。(4)THIS.Parent.BackColorRGB(192,0,0):将本对象的父对象背景色设置为暗红色。42表单,即用户与计算机进行交流的一种屏幕界面,用于数据的显示、输
37、入、修改。表单集,是一个对象,可以包含多张表单的容器。 数据环境,在打开或修改一个表单或报表时需要打开的全部表、视图和关系,它以窗口形式(类似于数据库设计器)反映出与表单有关的表、视图、表之间关系等内容。表单的常用方法:cls hide release refresh show有关表单事件引发的显示顺序:load(对象被创建之前发生) init(对象被创建时发生) active(激活对象)43表单创建、编辑 Create form <表单名> Modify form <表单名> 保存表单将产生两个文件:*.scx表单文件 和 *.sct 表单备注文件 运行表单 Do f
38、orm <表单名>44常用控件的常用属性设置p186表单名.控件名.属性名=属性值Tmand1.caption=”姓名”在程序中调用事件格式的代码是 :表单名.对象名.事件名第9章 报表设计45报表是通过打印机将所需的记录用书面形式输出来的一种方式。包括数据源和布局,数据源为数据库中的表或视图、查询或临时表;报表布局定义报表的打印格式。报表保存后系统会产生两个文件:报表定义文件(* .FRX )和.报表备注文件(*.FRT)。46报表设计的带区: 报表设计的三个基本带区:页标头、细节和页注脚。三 程序填空题1、程序的功能是求1到100之间所有整数的平方和并输出结果,请填空。 S=0
39、 X=1 DO WHILE X<=100 S=S+X2X=X+1 ENDDO ? S RETURN2、自定义计算阶乘n!的函数。FUNCTION JCPARA NUMS=1FOR N=1 TO NUM S=S*N ENDFORRETURN S3、学生成绩的分档次统计。从键盘上输入分数,按059、6069、7079、8089、9099和100分六个档次统计。STORE 0 TO K0,K6,K7,K8,K9,K10INUPUT “请输入分数:” TO A DO CASE CASE A<60 K0=K0+1 CASE A<70 K6=K6+1 CASE A<80 K7=K7
40、+1 CASE A<90 K8=K8+1 CASE A<100 K9=K9+1 OTHERWISE K10=K10+1 ENDCASE4下面程序功能是按姓名提供学生成绩的查询,请填空。USE STUDENTACCEPT”请输入待查学生姓名:” TO XMDO WHILE .NOT. EOF( )IF 姓名=XM ?”姓名:”姓名,”成绩:”STR(成绩,3,0)ENDIFSKIPENDDOSET TALK ON5统计 “RCDA”数据表中工资超过3000元的人数。 USE RCDA RC=0 DO WHILE .NOT. EOF() IF 工资>3000 RC=RC+1 EN
41、DIF SKIP ENDDO 2,30 SAY “工资在3000元以上的人数:” 2,60 SAY RC 6.键盘输入任意表名(设表中均有“分数”字段,数据类型为N),再输入一个分数,在该表中查找此分数,如果找到显示该记录的姓名,否则显示“没有找到”。 ACCEPT TO A INPUT TO N USE &A
42、; LOCATE FOR 分数=n /在打开表中查找分数字段值等于键盘输入数值N的记录IF FOUND( ) ? 姓名 ELSE ? “没有找到” ENDIFUSE 7.设表文件图书.DBF包含如下字段:书名(字符型),作者(字符型),出版日期(日期型)。
43、下面程序的功能是:列出图书表中的每个记录。请将程序完善。CLEAR USE 图书 DO WHILE .T.IF EOF( ) EXIT ENDIF? 书名+作者+ DTOC(出版日期) SKIP ENDDOUSERETURN8设教师.DBF用于存放教师信息,其字段有:姓名(字符型),性别(字符型),工资(数值型)。下面程序的功能是:列出教师表中的每个记录。请将程序完善。SET TALK OFFCLEARUSE 教师 GO BOTTOMDO WHILE .NOT.BOF( ) ? 姓名+性别+ STR (工资,7,2) SKIP -1 END
44、DOUSESET TALK ONRETURN 9实现分段函数:Y=1(X>0)Y=0(X=0)Y=-1(X<0)根据输入X的值输出Y的值。请将程序填写完整。SET TALK OFFINPUT “输入X” TO XIF X>=0 IF X>0Y=1 ELSE Y=0ENDIFELSE Y=-1 ENDIF?YCANCEL10、设供应商.DBF用于存放供应商信息,其字段有:姓名(字符型),电话(字符型),地址(字符型)。下面程序的功能是:查找所有姓李的电话号码中含有123的供应商的信息。请将程序填写完整。SET TALK OFFCLEARUSE 供应商 DO WHILE
45、160; NOT EOF()IF SUBSTR(姓名,1,2)=“李” AND “123” $ 电话 ?姓名+电话+地址 ENDIF SKIP ENDDOUSESET TALK ONRETURN 11设已建立一个日销售文件RXS(营业员代号,商品名,销售量,价格,营业额),每笔营业产生一个记录,但营业额字段的值为填写而为0.00,编程查询某营业员的全天营业额。 ClearSet talk offUse rxs.dbfReplace all 营业额with _销售量*价格 5,10 say “查询营业员的全天营业额”?Input “请输入营业员代号:” to _dh_ _
46、Sum 营业额 for 营业员代号=dh to _je _9,4 say “营业员” + dh + “的全天营业额是:” + str(je,10,2)+”元”Use Set talk on12下面程序功能是按姓名提供学生成绩的查询,请填空。USE STUDENTACCEPT”请输入待查学生姓名:” TO XMDO WHILE .NOT. EOF() 或者 !EOF() IF 姓名=XM ?”姓名:”姓名,”成绩:”STR(成绩,3,0)ENDIFSKIP ENDDOSET TALK ON13在表文件(sbsy.dbf)中查找数量少于16,且编号字段的第一位字符为“A”的记录,显示符合条件的记录
47、号。表文件内容如下:记录号 编号 数量 1 A103 152 A012 85 3 A210 67 4 B101 50 5 A120 65Set talk offUse sbsySet order on tag 编号Locate for _数量<16_Do while _not eof( )_ If substr(编号,1,1)_=“A”? 编号 Endif_continue_EnddouseSet talk on14在主程序中,通过调用过程计算园的面积。Set decimals to 2area=0Input “请输入半径:” to rDo js with _r_? “area=”,ar
48、eaReturn Procedure jsParameters r,sS=_PI()*r*r_return四、写出程序运行结果1、【程序清单】SET TALK OFFCLEARINPUT "请输入工作时间:" TO SJIF SJ>150 GZ=SJ*15+(SJ-150)*15*0.1ELSE IF SJ<120 GZ=SJ*15-300 ELSE GZ=SJ*15 ENDIFENDIF?“本月应发工资:"+STR(GZ,8,2)RETURN当输入工作时间为100时,结果:本月应发工资::1200.002. A=10B=20C=30IF A>B
49、IF C>AC=A+BELSEC=A-BENDIFENDIF? C结果: 30 3、【程序清单】 X=2.5DO CASE CASE X>1 Y=X+2 CASE X>2 Y=X-1ENDCASE? Y结果:4.54、【程序清单】STORE 5 TO NSTORE 1 TO T DO WHILE N>0 STORE T*N TO T STORE N-1 TO N ENDDO ? “X=”,STR(T) 结果:X= 1205计算托运行李费用。若X<=50kg,则运费按0.25元/KG计;若X>50KG,则大于50KG的部分,按每公斤0.5元计。 INPUT “
50、请输入行李重量:”TO XIF X>50 Y=0.5*(X-50)+0.25*50 ELSE Y=0.25*X ENDIF10,10 SAY “行李运费:”+STR( Y)结果:7、【程序清单】S=0P=5DO WHILE P<=10 P=P+1 S=S+P*2ENDDO?S结果:1028、【程序清单】P = 0FOR N = 1 TO 49IF N>10EXITENDIFIF MOD (N, 2) = 0P = P+NENDIFENDFOR?“P=”, PRETURN结果:P=30 9、【程序清单】K=1A1=10A2=A1+5A3=A1-5A4=A1+A2S=100DO
51、WHILE K<5STORE“A”+STR(K,1) TO MS=S+2*&MK=K+2ENDDO?SRETURN结果:130 10【程序清单】S=0M=-1K=1DO WHILE K<=5M=-MIF M>0S=S*KELSES=S+KENDIFK=K+1ENDDO?M,S结果: 1 50 11【程序清单】SET TALK OFFK=1A1=10A2=A1+5A3=A1-5A4=A1+A2S=100DO WHILE K<5STORE“A”+STR(K,1) TO MS=S+2*&MK=K+2ENDDO?SRETURN结果:13012、【程序清单】Set
52、 talk offDimension a(6)For k=1 to 6 A(k)= 20-2*kEndforK=5Do while k>=1 A(k)=A(k)-A(k+1) K=k-1Enddo? A(1), A(3), A(5)Set talk on程序运行的结果: 6 4 2 13【程序清单】STORE 0 TO K, SDO WHILE k<20IF MOD(K,4)=2K=K+3LOOPELSES=S+KENDIFIF K>12EXITENDIFK=K+3ENDDO ?S结果: 39 14【程序清单】 主程序pm.prgSet talk offStore 2 to
53、x1,x2,x3X1=x1+1Do pm1? x1+x2+x3Return子程序pm1.prgX2=x2+1Do mp2X1=x1+1Return子程序pm2.prgX3=x3+1Return to master程序运行的结果: 9 。15【程序清单】STORE 0 TO S,T,PFOR K=1 TO 10DO CASECASE INT(K/2)=K/2T=T+KCASE INT(K/5)=K/5S=S+KOTHERWISEP=P+KENDCASEENDFOR?S,T,P结果: 5 30 20 五写出SQL查询语句标准的SQL语言包括四个部分内容。P64 P1091.数据定义:用于定义和修改基本表、定义视图和定义索引。如:Create(建立)、Drop(删除)、Alter(修改)。例如:创建一张新的学生基本信息表(xs.dbf)create table xs (编号 N(4),姓名 C(6),出生年月 D(8),入学成绩 N(6,2),城市 C(10),简历 m(4)修改表结构,(1)添加一个新的字段:性别 L(1)ALTER TABLE XS ADD性别 L(1)(2)将编号字段类型数值(N)改为字符(c)ALTER TABLE XS ALTER 编号 C(4)(3)将城市字段改名为通讯地址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关+于建立我国公众参与科学技术决策制度的探讨
- 餐饮品牌直营店承包经营合同范本
- 仓储安全管理员综合责任履行合同
- 生态修复工程拆迁房买卖及环境补偿协议
- 校园食堂餐饮茶点供应与承包管理合同
- 厂房拆迁及后续发展用地规划合作协议
- 高端厨电品牌厂商与经销商协同发展协议
- 能源企业财务记账代理与能源交易合同
- 房屋拆除安全责任及施工管理协议
- 急诊护理院感防控体系构建
- 2023年新高考(新课标)全国2卷数学试题真题(含答案解析)
- 中科曙光公司在线测评题
- 2025届全国新高考语文60篇必背课文合集
- 2024年甘肃省高考化学真题试卷含答案
- 2024年辽宁阜新市事业单位招聘普通高校退伍大学生(高频重点复习提升训练)共500题附带答案详解
- 降血糖药 教学课件
- 22G101三维彩色立体图集
- DL∕T 552-2015 火力发电厂空冷凝汽器传热元件性能试验规程
- 四川省自贡市2023-2024学年八年级下学期期末历史试题 (无答案)
- 履带吊拆装施工工艺技术
- 干燥综合征考核试题
评论
0/150
提交评论