VFP_实验2-3 数据表记录的查找、统计及文件操作
- 格式:doc
- 大小:1.37 MB
- 文档页数:16
vfp实验报告实验名称:VFP(Visual FoxPro)实验报告实验目的:1. 了解VFP的基本概念和特点;2. 掌握VFP的基本操作和开发环境;3. 学习VFP的数据操作和报表生成功能;4. 实践VFP的应用开发过程。
实验步骤:1. 安装VFP开发环境,并完成环境配置;2. 熟悉VFP的主要界面和功能,包括项目浏览器、表格设计器、报表设计器等;3. 创建一个新的VFP项目,包括创建数据库和相关表格;4. 使用VFP进行数据操作,包括数据的增、删、改、查;5. 利用VFP的报表设计器,创建一个简单的报表;6. 运行和调试VFP项目,检查程序的正确性和完整性;7. 提交实验报告,包括实验过程、遇到的问题和解决方案、实验结果等。
实验结果:1. 成功安装了VFP开发环境,并完成了环境配置;2. 熟悉了VFP的主要界面和功能,掌握了表格设计器和报表设计器的基本操作;3. 创建了一个新的VFP项目,包括创建了数据库和相关表格;4. 成功进行了数据操作,包括数据的增、删、改、查;5. 使用报表设计器创建了一个简单的报表;6. 运行和调试VFP项目,程序运行正确,并满足设计要求。
实验总结:通过本次VFP实验,我对VFP的基本概念和特点有了更深入的了解,掌握了VFP的基本操作和开发环境的使用方法。
在实验过程中,我遇到了一些问题,如环境配置、数据操作的语法问题等,但通过查阅相关资料和请教同学,最终成功解决了这些问题。
通过本次实验,我不仅熟悉了VFP的开发流程和相关工具的使用,还提升了自己的问题解决能力和实际开发能力。
总的来说,本次实验收获丰富,对今后的VFP开发工作有了更充分的准备。
查询与统计一、实验目的练习VFP查询与统计的相关操作,包括数据排序、界面和命令方式建立索引、查询满足条件的记录,建立表的关联和统计命令的使用。
二、内容与设计思想实验内容:1.数据排序;2.索引的建立;3.顺序查询和索引查询;4.数据工作区;5.统计命令;6.SELECT-SQL查询7.数据完整性。
设计思想:在Visual ProFox中,使用软件提供的界面和命令操作两种方式,对表中的数据进行查询和统计的相关操作。
三、使用环境Windos XP操作系统;Visual ProFox 6.0四、核心代码及调试过程1、做教材习题(p119)的第3题,并打开表设计器,查看已建立的3个索引,写命令;(9分)use sb &&打开sbindex on 编号tag bh descending &&建立以编号降序排列,标识为普通索引 (1)index on 名称+dtos(启用日期) tag mcrq descending unique &&index on val(部门)-val(dtos(启用日期))/100000000 tag bmrq descending candidatemodify structure2、删除第3(3)小题所建立的索引,并用表设计器重新建立之(截图);(6分)delete tag bmrq3、做教材习题(p119)的第4题;(10分)顺序查询:locate for year(启用日期)=1992 and 主要设备=.f.索引查询:index on 主要设备tag zysb for year(启用日期)=1992seek .f.4、做教材习题(p120)第14题;(21分)(1)查询价格小于10万元的设备的启用日期select SB.名称,SB.启用日期FROM SB WHERE SB.价格<100000(2)查询车间使用的设备或者价格不小于10万元的设备的部门名,查询结果输出到表RESULT.DBFSELECT SB.名称AS 设备名,BMDM.名称AS 部门名;FROM SB INNER JOIN BMDM ON SB.部门=BMDM.代码;WHERE "车间"$BMDM.名称OR SB.价格>=100000(3)查询1992年启用的设备的名称和部门名SELECT SB.名称AS 设备名,BMDM.名称AS 部门名;FROM SB INNER JOIN BMDM ON SB.部门=BMDM.代码;WHERE YEAR(SB.启用日期)=1992(4)查询大修过的设备的编号和名称SELECT SB.编号,SB.名称FROM SB,DX WHERE SB.编号=DX.编号(5)查询有增值的设备的设备名和部门名SELECT SB.名称AS 设备名,BMDM.名称AS 部门名;FROM SB,BMDM,ZZ;WHERE SB.部门=BMDM.代码AND SB.编号=ZZ.编号(6)试算出1992年前启用的主要设备的台数SELECT COUNT(SB.编号) AS 1992年前启用设备台数;FROM SB WHERE YEAR(SB.启用日期)<1992(7)试算出大修过的设备中每种设备大修费用的平均值SELECT SB.名称,A VG(DX.费用) AS 平均大修费用;FROM SB,DX WHERE SB.编号=DX.编号group BY DX.编号5、有表GZ.DBF(工资)和ZC.DBF(职称)内容如下:(9分)(表在sever上拷贝使用)1)同时打开GZ和ZC,写命令或者在数据工作期中操作截图均可。
VFP的报表、查询、统计和视图第一节报表打印 (2)第二节项目管理器和菜单创建 (4)第三节查询的建立和使用 (6)第四节统计 (11)第五节视图的建立和使用 (14)第六节表间关联概述 (17)第一节报表打印例题:作业78 报表打印【实验内容与设计思想】将rsgl-1.dbf复制成rsglbb1.dbf,然后将其制成报表打印成文件rsglbb1.frx,使其预览页面如下图所示:操作方法:利用向导建立报表打印报表报表设计器预览报表分组报表的建立和修改第二节项目管理器和菜单创建作业85 项目管理器和菜单制作【实验内容与设计思想】1、项目管理器用来将一个应用程序的所有文件集合成一个有机的整体,形成一个扩展名为.pjx的项目文件。
它就像一个总的控制中心,管理着VFP中包含的数据库、表单、报表、查询等一切文件。
请建立一个项目管理器“VFP上机实验习题集.pjx”,将你所有做过的作业都集成起来,形成一个有机的整体。
建立项目管理器.swf将文件添加入项目管理器 .swfVFP上机实验习题集.pjx2、利用菜单设计器,设计本项目的菜单系统,把所有的程序、表单、数据库都可以通过本菜单系统打开并自动运行。
建立“人员管理”主菜单VFP上机实验习题集主菜单.MPR第三节 查询的建立和使用概念:查询是在不修改表内容的情况下,对一个或多个表中你希望查询的内容输出到屏幕、表文件或表单中。
操作:1、使用查询向导建立查询,注意字段选择。
使用向导建立查询2、运行查询,将查询结果输出到指定的地方运行查询例题:作业79 使用向导建立查询建一个新表,这个表中既要包括rygi-1.dbf中的所有内容,又要包含bmb.dbf中的字段“负责人”,将查询结果保存到chaxun2.dbf中。
我们将利用查询来完成这个任务。
将查询结果输出到表中.swf作业81 数据库查询【实验内容与设计思想】l、在rygl-2.dbf中查询工资介于2000-4000元之间的人员姓名、性别、学历、职务和工资情况。
实验一 VFP数据表基本操作1、数据表的建立和数据的输入一、实验目的1、了解数据表的基本概念2、掌握数据表的建立2、掌握数据表中数据的添加3、掌握从其他数据表中添加数据二、实验内容及任务1、将所附带的VFPEX文件夹及该文件夹中的所有文件复制到C盘根目录下。
2、在文件夹VFPEX345、从数据表三、实验环境和实验材料1、Visual FoxPro 6.0中文版;2、素材软盘四、实验方法和步骤1、复制实验所需文件双击“我的电脑”,打开窗口,双击A驱动器,窗口中显示A盘中的内容,鼠标右击VFPEX文件夹,显示快捷菜单,选择“复制”命令;打开C盘根目录并右击,显示快捷菜单,选择“粘贴”命令,软盘中的VFPEX文件夹及其文件被复制到C盘根目录中。
2、创建数据表并输入数据1)进入Visual FoxPro 6.0环境。
2)选择“文件/新建”命令,显示“新建”对话框,如图1-1,选择“表”并单击“新建文件”,显示创建对话框,如图1- 2,“保存在”选择“VFPEX文件夹”,“输入表名”为“XS.DBF”,单击“保存”,显示表设计器,如图1-3。
图1-1 图1-23)按要求输入相关的字段名、字段类型、字段宽度等内容,具体如图1-3。
图 1-34)单击“确定”,显示“现在输入数据吗?”确认框,如图1-4,单击“是”,显示数据表窗口,如图1-5,将上述三条记录依次输入到数据表中,并关闭窗口。
图1-4图1-53、向数据表添加记录1)选择“文件/打开”命令,显示打开对话框,如图1-6,在“查找范围”中选择“VFPEX文件夹”,“文件类型”中选择“表(*.dbf )”,双击XS.DBF数据表,打开数据表。
图1-62)选择“显示/浏览”命令,显示数据表窗口,如图1-5。
3)选择“表/追加新记录”命令,在数据表窗口中添加新的空记录,将上述记录添加到数据表,并关闭数据表4、从其他数据表添加数据到当前数据表1)打开数据表XS.DBF,并显示数据表窗口,如图1-5。
查询、统计和多表操作表文件中记录的顺序通常是人们在输入数据时按输入的先后次序存储的,并以记录号表示,这个顺序只反映了存放数据的先后顺序。
但在数据处理实际应用中,由于数据库十分庞大,为了高效方便地处理数据,常常需要对记录位置进行重新整理,并按某种指定的顺序对表记录进行处理。
例如,对学生成绩表按学号为序显示输出记录,以便查找;或按总分高低为序输出记录,以便进行比较等等。
对记录位置进行重新整理通常有排序和索引两种方法。
排序是对表文件进行物理位置的整理;索引是对表文件进行逻辑位置的整理。
一、排序表文件的排序操作就是根据表的某个关键字或关键字表达式重新排列表记录的位置。
执行排序操作后将生成一个新的表文件(称为:排序文件)。
新文件的结构和数据可以与源文件完全相同,也可以只取源文件的部分字段。
新文件不改变源文件内容和记录顺序。
【命令】 SORT TO<新文件名>ON <字段名1>[/A] [/D] [/C] [,<字段名2> [/A] [/D] [/C]…] [ASCENDING|DESCENDING][<范围>][FOR<条件>|WHILE<条件>][FIELDS<字段名表>| FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>]【功能】对当前表中指定范围内、满足条件的记录按指定字段升序或降序重新排序,并将排序结果存入新文件名中。
【说明】①排序结果存入由TO <新文件名>指定的表文件中,系统默认文件扩展名为.DBF。
②在ON子句中的字段名表示排序的关键字段。
当使用一个关键字时,叫“单重排序”;使用多个关键字时,叫“多重排序”。
在多重排序中,关键字有主次之分。
主关键字是指能够唯一标识某个记录的关键字;次关键字是指标识具有某种相同属性的某些记录的关键字。
在关键字表达式中,主关键字排在前面,次关键字排在后面。
VFP实验报告实验(一)数据表的基本操作实验目的:1.掌握建立表与复制表的操作2.掌握数据表的显示与维护3.掌握索引和数据统计的使用实验内容与步骤:1、建立表与复制表操作:(1)建立一个职工表(zg.dbf),字段有:职工号(C,6),姓名(C,8),性别(L),出生日期(D),职称(C,10),基本工资(N,8,2),津贴(N,8,2),实发工资(N,8,2),其内容如下:(2)按上面的内容输入到表中,其中实发工资这个字段不用输入数据(3)修改职工表表结构,在实发工资前增加一个新的字段,扣款(N,8,2),并给这个字段添加相应的数据。
(4)将zg.dbf的表结构复制到新表zg1.dbf中。
Use zg.dbfCopy stru to zg1.dbfUse zg1.dbfDisp stru(5)将zg.dbf 中的所有男教师的记录都复制到zg2.dbf中。
Use zg.dbfCopy to zg2.dbf for 性别=.T.Use zg2.dbfbrowse2、写出下列显示表记录的命令。
(1)显示zg.dbf中所有的讲师Use zg.dbfList for 职称=”讲师”(2)显示所有女教师的姓名List 姓名for 性别=.F.(3)显示70年后出生的教师List for year(出生日期)>1970(4)显示第三条记录的内容Go 3disp(5)显示前三条男教师的姓名,出生日期,职称Locate 姓名,出生日期,职称for 性别=.T.DispContDispContdisp(6)从第3条记录开始显示到末尾记录Go 3DispList rest(7)显示所有男教授的姓名、年龄、基本工资List 姓名, yesr(date ())-year (出生日期),基本工资for 性别=.T. and 职称=”教授”(8)显示所有男性教授或副教授List for 性别=.T. and (职称=”教授” or 职称=”副教授”)(9)显示所有姓林的教师List for substr(姓名,1,2)=”林”(10)显示姓名中有“林”字的记录。
实验2-3 数据表记录的查找、统计及文件操作
一、实验目的
掌握记录的顺序查找和索引查找;熟练运用REPLACE命令;掌握数据表的统计计算类命令;掌握表内容的复制与批量追加命令。
二、实验准备
预习表内容的检索命令,表内容的记数、数值字段求和、求平均数、分类求和命令,以及表内容的复制命令。
三、实验内容
1.进行记录内容查询
(1)用LOCATE----CONTINUE命令查找显示职工表中所有“基本工资”=2300的记录(假设记录不止一条)。
(2)用SET ORDER TO命令重新指定新的主索引文件或标识,索引查找姓名为“张伟”的记录。
(3)利用SEEK索引查询命令,将职工表文件中所有基本工资=2300的记录逐条显示(假设记录不止一条)。
2.统计各类记录数、计算数值字段的合计数、平均数、分类求和(1)统计职工表文件中基本工资的平均值和总额。
(2)分别统计职工表文件中男女职工的人数。
(3)统计销售表中数量小于50的记录数。
(3)销售表文件中分别按职工号和商品号分类汇总销售金额。
3.在“工资.DBF”表的最后追加一条记录,填入每个项目的平均值,再追加一条记录,填入每个项目的合计数,结果如表2-16所示。
表2-16 工资表中每个项目的平均值与合计记录
4.表复制产生:.DBF、.TXT和.XLS文件
利用COPY TO命令,根据职工表文件,复制产生“职工2.DBF”,“职工2.TXT”,“职工2.XLS”文件,结果包含所有已婚的女职工的职工号、姓名、性别、基本工资字段。
(1)将“职工.DBF”文件中男职工的数据批量追加到上面的“职工2.DBF”文件;
(2)将“职工2.TXT”文件的所有数据追加到“职工2.DBF”文件。
(注意文件类型。
)
6.在Visual FoxPro命令窗口,用命令实现如下操作:(1)显示所有.DBF文件名。
(2)显示“职工2.TXT“文件的内容。
(3)删除当前文件夹下的所有“.XLS”文件。
四、实验2-3报告
1.通过上述实验,请回答下列问题
(1)顺序查找与索引查找有何不同?
①索引查找是依赖索引文件用折半查找的算法来实现的。
例如,在10
2个记录中查找一个满足条件的记录,采用折半查找的算法则不超多10次比较即可完成查找,而顺序查找则最多需要比较1023次。
顺序查找速度较慢,适合于记录数比较少的数据表。
②顺序查找的优点:算法简单,且对表的结构无任何要求。
可用于查找未索引或已索引的表文件。
注意:顺序查找中,LOCATE和CONTINUE只能用于当前工作区。
(2)SUM命令与REPLACE命令有什么不同?
①SUM命令是数值字段求和命令,REPLACE命令是表记录修改命令。
②SUM命令的默认范围是ALL,REPLACE命令的默认范围是NEXT 1.
③REPLACE命令同表达式的值成批修改多个指定字段的值,SUM命令是对当前表的指定数值型字段或者全部数值型字段纵向求和。
④命令格式不同。
例REPLACE命令中ADDITIVE还能对备注字段有用。
(3)在对表进行分类汇总前必须要对分类字段做什么操作?
先建立索引或排序。
(4)如果要将数据表文件转换成其它软件系统能够接收的格式,用什么命令实现?
表内容的复制命令:COPY TO <文件名> [<范围>][FOR<条件>][FIELDS <字段表名>] [ [ TYPE ] [ SDF / XLS / DELIMITED [ WITH <分隔字符> / WITH BLANK …] ] ]
(5)能够直接用赋值语句修改字段变量的内容吗?应该用什么命令?
能。
用REPLACE <字段名1> WITH <表达式1> 命令.
2.实验完成情况及存在问题。