芜湖京师实验学校高二(6)班VFP上机总练习
(2016-05-21 10:24:29)
标签:
vfp芜湖京师vfp上机练习表单报表 |
分类: 教育教学 |
芜湖京师实验学校高二(6)班VFP上机总练习
2016.5.18.
各位同学:
我们已经学习了VFP的所有内容,下面进行上机总练习,希望各位认真对待,学习是一个痛苦的过程,遇到困难一定要战胜它,不可逃避,我相信大家的努力精神和专业水平,一定能够顺利地完成这个总练习。
一、准备工作
1、在D盘上新建一个名为ZG的文件夹,用于存放以后创建的所有文件。
2、创建项目文件zhigong.pjx。
3、利用项目管理器“其它”选项卡,新建文本文件lianxi1.txt,内容任意写几句自我鼓励的话。
4、给lianxi1.txt文件添加说明:演示文件,观察一下项目管理器中显示的说明信息。
5、把lianxi1.txt重命名为lx.txt。
6、从项目中移去lx.txt文件(不是删除)。
7、将lx.txt文件重新添加到项目中。
二、表与数据库
2.1 建立表
1、红光科技公司工资管理系统的表结构如下表(表2-1~表2-4),设计一组数据(每个表有10条记录),为以后操作进行准备。
表2-1 职工档案表zgda.dbf的结构
字段名称 |
字段类型 |
字段宽度 |
小数位数 |
编号 |
字符型 |
6 |
|
姓名 |
字符型 |
8 |
|
性别 |
字符型 |
2 |
|
部门 |
字符型 |
6 |
|
职务 |
字符型 |
6 |
|
职称 |
字符型 |
6 |
|
出生年月 |
日期型 |
8 |
|
工作年月 |
日期型 |
8 |
|
基本工资 |
数值型 |
7 |
2 |
合同工 |
逻辑型 |
1 |
|
照片 |
通用型 |
4 |
|
工作成绩 |
备注型 |
4 |
|
表2-2 工资表gz0501.dbf的结构
编号C6;
所得税N6,2;
实发工资N7,2。
表2-3 奖金表jj0501.dbf的结构
编号C6;
出勤奖金N6,2;
表2-4 社会关系表shgx.dbf的结构
编号C6;
出生日期D8;
2、在zhigong项目管理器中创建工资管理系统数据库D:\zg\zggl.dbc
3、在zggl.dbc中创建表zgda.dbf,输入你自己设定的数据(记录),保存在D:\zg中。
4、创建表gz0501.dbf,不输入记录。
5、创建表jj0501.dbf,输入记录。
6、创建表shgx.dbf,不输入记录。
2.2 维护数据库和表结构
1、用菜单打开zgda.dbf,再执行display all看一看。
2、在数据库工作期窗口打开工资管理器系统所有的表,浏览表结构。
3、使用use d:\zg\zgda打开表zgda.dbf,再用display all浏览所有记录,再用use关闭。
4、使用命令复制zgda.dbf的数据,创建新表zgda1.dbf。
5、使用命令复制zgda.dbf的结构,创建新表zgda2.dbf。
6、把所有表文件添加到zggl.dbc数据库中。
2.3 维护数据
1、浏览zgda.dbf表的数据。
2、使用browse命令,浏览/编辑zgda.dbf的数据。
3、任意方法向gz0501.dbf追加10条记录。
4、使用append命令向jj0501.dbf追加10条记录。
5、用SQL命令向shgx.dbf表追加10条记录。
6、把gz0501.dbf表的所有记录追加到jj0501.dbf表。
7、使用成批替换数据命令,将zgda.dbf所有职工的基本工资增加10%。
8、使用更新数据的SQL命令,计算jj0501.dbf所有职工的应发奖金。
9、在浏览窗口删除追加到jj0501.dbf表的部分记录。
10、使用命令删除追加到jj0501.dbf表的所有记录,只保留该表原有的数据。
2.4 检索和排序
1、在zgda.dbf中,以基本工资为关键字为zgda.dbf创建降序的普通索引。
2、按“基本工资”降序浏览zgda.dbf的所有记录。
3、在zgda.dbf中:
以编号为关键字创建主索引;
以性别为关键字创建唯一索引;
以部门和基本工资为关键字创建普通索引“部门工资”,分别指定以上索引为当前索引,浏览zgda.dbf所有记录。
4、使用命令以工作年月为关键字,为zgda.dbf表创建降序的普通索引,索引保存在结构索引文件中。
5、使用命令指定第一步建立的索引为当前索引。
6、使用locate命令检索zgda.dbf表中第一个男职工的记录,再显示当前记录。
7、使用continu命令检索zgda.dbf表中的第二个男职工的记录,再显示当前记录,依次类推。
8、使用命令计算jj0501.dbf中出勤奖金、质量奖金的和。
9、使用命令计算jj0501.dbf中应发奖金的平均值。
2.5 多表操作
1、浏览zgda.dbf和gz0501.dbf的数据。
2、以编号为关键字为gz0501.dbf建立索引。
3、为zgda.dbf和gz0501.dbf建立一对一的关系。
4、使用命令浏览zgda.dbf中编号、姓名、基本工资和gz0501.dbf中的职务津贴、生活补贴的数据。
5、使用命令计算职工的实发工资。
6、以编号字段为关键字为shgx.dbf表建立普通索引。
7、使用命令按编号字段为zgda.dbf和shgx.dbf建立一对多的关系。
8、使用命令浏览zgda.dbf的编号、姓名和shgx.dbf中的与本人关系、姓名、性别数据。
各人总结反思:
三、查询和视图
3.1 查询数据
1、在zhigong项目管理器中创建查询文件d:\zg\zgda_q.qpr,查询zgda.dbf表中所有数据。
2、修改zgda_q.qpr查询,只查询某个职称的所有记录,并且查询结果按基本工资降序排序。
3、在项目管理器中创建查询文件d:\zg\zggx_q.qpr,查询zgda.dbf的编号、姓名、性别、基本工资和shgx.dbf的与本人关系、姓名、性别、工作单位字段。
4、修改zggx_q.qpr,只查询某个职称职工的社会关系,且查询结果按基本工资降序排列。
3.2 使用视图更新数据
1、在项目管理器中创建一个名为zgda_v的本地查询,更新zgda.dbf表的基本工资数据。
2、修改zgda_v视图,使视图显示的记录按工作年月降序排列。
3、修改zgda_v视图,使视图只更新某个职称的基本工资数据。
4、新建一个更新职工的工资数据的视图gz0501_v,视图包含zgda.dbf的编号、姓名、性别、基本工资字段和gz0501.dbf的职务津贴、生活补贴、请假扣字段。
5、新建一个查询,将视图gz0501_v添加到查询设计器,运行,观察查询结果。
四、报表
4.1 新建报表
1、以zgda.dbf为数据源,使用快速报表方法新建报表,并以zgda_f.frx为文件名保存。
2、以gz0501_v视图为数据源新建报表,使用数据环境,在页标头带区的适当位置,添加对应的标签控件,以gz0501_f.frx为文件名保存。
3、以zgda.dbf和jj0501.dbf为数据源,建立多表报表,两表须建立联系,用数据环境设计器,在报表设计器页标头带区适当位置,添加对应的标签控件,以jj0501_f.frx为文件名保存。
4、任意方法创建一个输出zgda.dbf所有数据的报表,报表样式为“账务型”,输出记录按“基本工资”排序,以zgda2_f.frx为文件名保存。(可用报表向导)
5、使用一对多报表向导为两个表创建报表,输出zgda.dbf的编号、姓名、部门和jj0501.dbf的日期、出勤奖金、质量奖金等数据,报表样式为“带区式”,输出记录按“部门”排序,保存为jj0502_f.frx文件。
6、用命令创建空白报表da_f.frx,并自选一种方法,把zgda.dbf的字段添加到报表设计器,并自选一种方法,预览和保存。
4.2 编辑报表布局
1、把gz0501_f.frx报表适当编辑。
2、适当编辑da_f.frx。
4.3 美化报表
1、zgda_f.frx报表,自行设计报表的格式,要求报表中有图片、线条、标题、统计数据,并美化字符。
2、以视图为数据源,新建一个有序报表zggzjj_f.frx,按部门排序输出职工的工资和奖金数据。
3、新建一个分组报表zgda3_f.frx,按性别分组输出职工基本工资的平均值。
4、新建一个分组报表zggzjj2_f.frx,按部门分组输出职工的工资和奖金数据,同时输出各部门工资的总和与奖金的平均值。
五、程序设计
5.1 顺序结构和选择结构的程序设计
1、编写显示zgda.dbf所有记录的程序dispda1_p.prg,先分析问题再填写表5-1,最后写出详细的程序,并运行检查程序是否正确。
表5-1 解题分析并填写程序语句
程序需要的操作 |
程序语句 |
在当前工作区打开zgda.dbf |
|
显示当前表所有记录 |
|
关闭表 |
|
结束程序运行 |
|
2、编写选择结构的程序,显示zgda.dbf中男职工,保存为dispda2_p.prg。分析并填写表5-2,再写详细程序,最后运行检查是否正确。
表5-2 解题分析并填写程序语句
程序需要的操作 |
程序语句 |
用户输入记录的编号 |
|
在当前工作区打开zgda.dbf |
|
查找指定的编号 |
|
根据查找的结果选择执行显示当前记录或显示说明信息的操作 |
|
关闭zgda.dbf |
|
结束程序运行 |
|
3、编写选择结构的程序,以职务津贴与生活补贴的和为准计算gz0501.dbf中指定职工的互助金,计算公式如下:若和≤1000,扣款率为0%;若1000<和≤2000,扣款率为5%;若和>2000,扣款率为10%。分析问题并填写表5-3,书写全部程序,并运行检查,保存为sds_p.prg文件。
表5-3
程序需要的操作 |
程序语句 |
用户输入记录的编号 |
|
在当前工作区打开gz0501.dbf |
|
查找指定的编号 |
|
根据查找结果选择计算当前记录的互助金或显示说明信息的操作,由于互助金分为3个档次,可采用多分支选择结构处理互助金问题 |
|
关闭表 |
|
结束程序运行 |
|
5.2 循环结构程序设计
1、编写程序,显示zgda.dbf中所有男职工的数据,分析并填表5-4,保存为dispda3_p.prg。
表5-4 解题分析和程序语句
程序需要的操作 |
程序语句 |
在当前工作区打开zgda.dbf |
|
先判断当前记录是不是男职工,如果是则显示当前记录;再将记录指针下移一条记录,以上操作重复进行,直到指针指向文件尾为止 |
|
关闭zgda.dbf |
|
结束程序运行 |
|
2、使用指定次数的循环结构编写程序,计算前100个正偶数的和。分析填表,书写程序,运行检查。
表5-5 解题分析和程序语句
程序需要的操作 |
程序语句 |
给存放求和结果的变量赋初值 |
|
在循环结构正使用累加器计算和 |
|
显示计算结果 |
|
结束程序运行 |
|
3、使用调试器单步跟踪dispda2_p.prg程序运行,观察程序语句的执行顺序。
5.3 编写工资管理系统的程序
说明:这是一个大题,认真分析每小题的问题,文件保存自行确定。
1、编写工资管理系统查询数据的程序。
(1)编写查询档案数据的所有记录、指定记录、某一类记录的程序。
(2)编写查询工资数据和奖金数据的所有记录、指定记录、某一类记录的程序。
(3)编写查询社会关系数据的所有记录、指定记录、某一类记录的程序。
提示:显示用@...say;查询多表可用set relation建立关联。
2、编写工资管理系统编辑数据的程序。
(1)依次编辑档案数据的所有记录和编辑档案数据的指定记录的程序。
(2)依次编辑工资数据和奖金数据的所有记录与编辑工资数据和奖金数据指定记录的程序。
(3)依次编辑社会关系数据的所有记录和编辑社会关系数据指定记录的程序。
提示:可用@...get和@...Say。
3、编写工资管理系统追加记录的程序
(1)编写为档案数据追加记录的程序。
(2)编写为工资数据和奖金数据追加记录的程序。
(3)编写为社会关系数据追加记录的程序。
提示:可重复追加一条空记录;可用@...get和@...Say。
反思与总结:
六、表单
6.1 为工资管理系统创建表单
1、以zgda.dbf为数据源,使用表单设计器创建表单zgda_s.scx,使结果显示zgda.dbf的所有字段。
说明:
(1)先打开zgda.dbf所在数据库zggl.dbc;
(2)以zgda_s.scx为文件名保存。
2、以“基本工资”降序排序,显示zgda.dbf所有字段,保存为zgda2_s.scx文件。
3、使用2方法,运行zgda2_s.scx,
用按钮组等查询指定记录的数据;
用按钮添加一条记录;
用按钮删除添加的记录。
4、以shgx.dbf为数据源,创建shgx_s.scx表单,显示所有数据。
5、使用命令创建表单jj0501_s.scx,显示jj0501.dbf所有字段,并将jj0501_s.scx添加到项目管理器。
6.2 编辑工资管理系统的表单
1、打开zgda_s.scx,把表单设计器的窗口工作区设置为显示器的屏幕尺寸。
把所有文本框的Fontsize属性值改为“12”;height属性值改为“25”;width属性值改为“80”。
所有标签控件的fontname属性值为“楷体_GB2312”,fontsize属性值为“16”。
标题为“出生年月”的标签,使用“格式” →“大小” →“调整到最高”和“格式” →“大小” →“调整到最宽”,设置所有标签控件与“出生年月”标签控件大小相同。
2、打开jj0501_s.scx,适当修改height属性、widtht属性、top属性、left属性、fontname属性、fontsize属性,改变表单布局更美观。
3、适当修改zgda2_s.scx表单,使其美观。
6.3 美化工资管理系统的表单
1、新建一个空白表单,打开“表单控件”工具栏向表单设计器添加控件。
(1)添加一个标签控件,分别设置下列属性: caption、autosize、fontbold、fontname、fontsize、forecolor、name,观察改变属性值之后的效果。
(2)添加一个文本框控件,分别设置下列控件:value、fontbold、fontname、fontsize、backcolor、forecolor、passwordchar、visible、readonly、name,观察改变属性值之后的效果。
(3)添加一个命令按钮控件,分别设置下列控件:caption、fontbold、fontname、fontsize、forecolor、visible、cancal、enabled、name,观察改变属性值之后的效果。
(4)添加一个选项按钮组控件,右键控件,选“生成器”命令,打开选项组生成器,设置按钮数目为4,并设置各个按钮的标题,观察效果。
(5)添加一个复选框按钮,设置下列属性:caption、value、visible、readonly,观察效果。
(6)添加一个组合框控件,打开组合框生成器,设置组合框的选项为zgda.dbf的编号字段的数据,观察style属性值,观察效果。
(7)添加一个列表框控件,打开列表框生成器,设置列表框的选项为zgda.dbf的编号字段的数据,观察效果。
(8)添加一个表格控件,打开表格生成器,设置控件选项为zgda.dbf的所有数据,并设置表格样式,观察效果。
2、打开zgda_s.scx表单,添加标签控件,设置其属性,制作用户界面的标题,设置控件的前景色和背景色,制作彩色字符,添加图像控件或设置表单的picture属性,向表单添加图片,添加线条控件或形状控件,并设置其属性。添加5个命令按钮:“前一个”、“后一个”、“追加记录”、“删除记录”、“退出”,并编写click事件的过程,实现相应的功能。
3、美化jj0501_s.scx表单,自行设计其格式达到美化目标。
4、创建工资管理系统的用户界面:
(1)创建一个显示欢迎信息的表单作为初始界面。
(2)修改现有表单,创建一个编辑职工档案数据的表单。
(3)修改现有表单,创建一个显示职工档案数据(但不能修改数据)的表单。
6.4 制作多表表单
1、以gz0501_v视图为数据源,创建多表表单,把 gz0501_v视图的所有字段添加到表单中,保存为 gz0501_s.scx。
2、创建一个表单,显示zgda.dbf中的姓名、性别、部门字段和jj0501.dbf的编号字段,编辑jj0501.dbf的其他字段,保存为jj0501_s.scx。
3、以zgda.dbf和jj0501.dbf表为数据源,使用表单设计器创建多表表单,使表单显示zgda.dbf的姓名、性别、部门字段和jj0501.dbf的所有字段。(使用数据环境)
4、以zgda.dbf和shgx.dbf为数据源,创建多表表单,使表单显示zgda.dbf的姓名、性别、部门字段和shgx.dbf的所有字段。
5、以zgda.dbf和gz0501.dbf为数据源,创建多表表单,显示zgda.dbf的姓名、性别、部门字段和gz0501.dbf中的所有字段,保存为gz0501_2s.scx。
6.5 制作工资管理系统的菜单
1、新建一个演示菜单,用“快速菜单”任意修改几个菜单名(“文件”菜单名不修改),保存为zg_menu.mpr。
2、运行它,观看结果。
3、修改zg_menu.mpr菜单的定义(“文件”菜单的”退出”命令的定义不修改)
4、修改zg_menu.mpr,实现工资管理系统菜单的功能。
5、设计一个顶层表单zg_s.scx,并设置该表单调用菜单 zg_menu.mpr。
6.6 编辑工资管理系统应用程序
1、创建工资管理系统的主文件。
2、将需要编译的文件添加到zhigong项目管理器,将不需要编译的文件移出项目管理器。
3、新建一个文件夹d:\zgbak,将d:\zg中的文件复制到前文件夹备份。
4、在zhigong项目管理器中编译应用程序。
5、为工资管理系统创建安装程序和发布磁盘。
反思与总结: