VF实习报告(祥细版) - Wizard

更新时间:2024-07-02 15:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中国地质大学(武汉)

Visual FoxPro 及其应用系统开发

实习报告

姓名:Wizard Wong 班级:XXXXX 学号:XXXXX 指导老师:XXXX 学院:XXXXX

Wizard WongVF实习报告

目录

一、 第一题???????????????????? 3

第一小题 第二小题 第三小题 第四小题

二、 第二题???????????????????? 8

第一小题 第二小题 第三小题 第四小题

三、 第三题???????????????????? 13

第一小题 第二小题 第三小题 第四小题

四、 第四题???????????????????? 22

- 2 - / 40

Wizard WongVF实习报告

一、 第一题

1.

第一小题: 建立工资表文件gz20131000495.dbf,备注定义为MEMO字段

使用命令语句:create gz20131000495

然后按要求输入表格的结构,接着输入相关数据以及添加相关备注, 最后按Ctrl+W键存盘即可

↓↓↓↓↓

3 / 40

Wizard WongVF实习报告

↓↓↓↓↓

↓↓↓↓↓

2.

第二小题:添加、插入、删除、修改操作练习

添加命令:append

4 / 40

Wizard WongVF实习报告

插入命令:insert into gz20131000495 () values () 删除命令:go <数值表达式>

delete &&逻辑删除命令 pack &&物理删除命令

修改命令:use gz20131000495 Browse

然后根据需要对数据进行修改

5 / 40

Wizard WongVF实习报告

3.

第三小题:记录指针移动、检索操作练习

记录指针移动命令:go top go bottom go <数值表达式>

6 / 40

Wizard WongVF实习报告

检索命令: index on <索引关键字> tag <索引标识名>

4.

第四小题:排序、索引、统计操作练习

排序操作:sort to <新文件名> on <字段>

索引的建立:index on <索引关键字> tag <索引标识名> ascending|descending 索引的使用命令: set order to <索引标识>

统计命令:sum{<数值表达式>}{<范围>}{for<条件1>}{while <条件2>}{to<内存变量>}

7 / 40

Wizard WongVF实习报告

↓↓↓↓↓

二、第二题:

1. 第一小题:已知半径R=10,计算周长C=2πR

clear

input \请输入圆的半径:\C=2*PI()*bj A=STR ( C,5,2) ?\周长=\Return

8 / 40

Wizard WongVF实习报告

↓↓↓↓↓

2. 第二小题:假设银行一、二、三年定期存款的年利率分别为5.0%、5.5%、6.2%。

若储户存款为X元,期末偿还本息为Y元,编写计算各种不同定期存款期末应付本息的程序

clear

input \请输入存款额:\input \请输入定期年数:\

9 / 40

Wizard WongVF实习报告

do case

case ns=1

bx=ns*(0.05+1)*X case ns=2

bx=(0.055+1)^ns*X case ns=3

bx=(0.062+1)^ns*X endcase

?\存款期末应付本息Y=\

↓↓↓↓↓

10 / 40

Wizard WongVF实习报告

3. 第三小题:求二元一次方程ax^2+bx=c=0的根

CLEAR

?\求解一元二次方程:a*x^2+b*x+c=0\input \请输入参数a=\input \请输入参数b=\input \请输入参数c=\d=b*b-4*a*c DO case CASE a=0 ?\ CASE d<0

?\此方程组无实根\ CASE d=0

?\ CASE d>0

?\ ?\ENDCASE

↓↓↓↓↓

11 / 40

Wizard WongVF实习报告

4. 第四小题:计算自然数前N项和S=1+2+3+??+N,设N=50

clear

?\计算自然数前N项和S\input \请输入项数N=\S=0

FOR i=1 to N S=S+i NEXT ? \

12 / 40

Wizard WongVF实习报告

↓↓↓↓↓

三、第三题

1、 第一小题:计算每个人的应发工资及各项工资合计 (1) 命令方式:

use gz20131000495

replace all 应发工资 with 基本工资+奖金-扣款 list

sum 基本工资,奖金,扣款,应发工资 to a,b,c,d go 6

replace 基本工资 with a replace 奖金 with b replace 扣款 with c

replace 应发工资 with d list

13 / 40

Wizard WongVF实习报告

(2) 程序方式:

clear text

**************************

* 1. 计算个人应发工资 * * 2. 计算各项工资合计 *

* 3. 退出此项运行程序 * ************************** endtext do while .t. @10,0 clear

input \请输入所需操作功能的编号:\ do case case gn=1 do e1 case gn=2 do e2 case gn=3

wait \系统将关闭!\ exit endcase enddo return

procedure e1

use gz20131000495

14 / 40

Wizard WongVF实习报告

replace all 应发工资 with 0 list

input \请按表格输入所需计算应发工资职工的记录号:\go mc

replace 应发工资 with 基本工资+奖金-扣款 display wait

procedure e2

use gz20131000495 go 6

replace 基本工资 with 0 奖金 with 0 扣款 with 0 应发工资 with 0 list

sum 基本工资,奖金,扣款,应发工资 to a,b,c,d go 6

replace 基本工资 with a 奖金 with b 扣款 with c 应发工资 with d list wait

↓↓↓↓↓

15 / 40

Wizard WongVF实习报告

↓↓↓↓↓

2.第二小题:按分厂汇总,生成全厂工资汇总表gzhz??.dbf,其格式如下: 分厂 1 2 99

16 / 40

基本工资 奖金 扣款 应发工资 Wizard WongVF实习报告

(1)、命令方式:

Create gzhz20131000495 use gz20131000495

calculate sum(基本工资) for 分厂=\calculate sum(奖金) for 分厂=\calculate sum(扣款) for 分厂=\calculate sum(应发工资) for 分厂=%use gzhz20131000495 go 1

replace 基本工资 with gch1 奖金 with gch11 扣款 with gch12 应发工资 with gch13 list

use gz20131000495

calculate sum(基本工资) for 分厂=\calcula sum(奖金) for 分厂=\calcula sum(扣款) for 分厂=\calcula sum(应发工资) for 分厂=%use gzhz20131000495 go 2

replace 基本工资 with gch2 奖金 with gch21 扣款 with gch22 应发工资 with gch23 list

use gzhz20131000495 sum (基本工资) to jbgzhz sum (奖金) to jjhz sum (扣款) to kkhz

sum (应发工资) to yfgzhz go 3

replace 基本工资 with jbgzhz 奖金 with jjhz 扣款 with kkhz 应发工资 with yfgzhz list

(2)、程序方式: use gz20131000495 index on 分厂 tag fch total on 分厂 to a use a

? \查看完全厂工资汇总表以后请按Ctrl+W存盘!\

browse field 分厂,基本工资,奖金,扣款,应发工资 title \全厂工资汇总表gzhz20131000495\return

17 / 40

Wizard WongVF实习报告

↓↓↓↓↓

3.第三小题: 根据需要,打印职工工资表或者全厂工资汇总表

clear

input \要打印职工工资表请输入1,全厂工资汇总表请输入2:\if shr=1

18 / 40

Wizard WongVF实习报告

use gz20131000495

list to printer prompt noconsole else use a

copy to ab fields 分厂,基本工资,奖金,扣款,应发工资 use ab

list to printer prompt noconsole endif return

↓↓↓↓↓

19 / 40

Wizard WongVF实习报告

4.第四小题:利用表单,设计gz20131000495.dbf的录入、修改等维护功能

↓↓↓↓↓

↓↓↓↓↓

20 / 40

Wizard WongVF实习报告

↓↓↓↓↓

↓↓↓↓↓

21 / 40

Wizard WongVF实习报告

↓↓↓↓↓

四、第四题

1. 第一小题:编写一个主控程序,将第三题中各子程序组装起来,建成一个工资管理系统

22 / 40

Wizard WongVF实习报告

1. 编写一个主控程序,将第三题中各子程序组装起来,建成一个工资管理系统 clear

use gz20131000495 text

*********************************************************** * 1.应发工资合计 4.打印工资数据 * * 2.各项工资合计 5.录入修改功能 * * 3.按分厂汇总工资 6.退出 * *********************************************************** endtext do while .t. @6,10 clear

@6,10 say \请输入1 --6:\ get hy default space(1) read do case

case hy=\ do yfgz1 case hy=\

do gxgz2 case hy=\ do fchz3 case hy=\ do dygz4 case hy=\ close all do form 维护.scx case hy=\

wait \系统将关闭!\ exit endcase Enddo

2、 利用项目文件重建以上工资管理系统,分别编译成app、exe文件进行运行 3、根据资料,开发“汽车修理管理信息系统”

一、资料背景:

某汽车修理厂准备建立一个“汽车修理管理信息系统”,其目标如下:

a) 能对汽车修理有关数据进行录入、修改和查询 b) 编制月度零件定货计划和修理人员工资月报表 c) 用户提车时,及时打印修理汽车发表

23 / 40

Wizard WongVF实习报告

软件开发人员根据用户要求进行了调查,系统主要数据载体为:

修车登记表

编号:5001 日期:97/01/02 修理项目 汽车牌号 车主姓名

汽车修理单

登记单编号:5005 汽车牌号:A2312318 车主:王平 修理项目 零件号 零件数量 修理费

零件库存表

盘存:方龙 日期:97/04/30 零件号

领料单

编号: 日期: 修理工: 零件号 数量

修理工登记表

工号 姓名 地址 零件定货计划单

日期:97/04/23

零件号

点火线圈 A2020203 李华 型号 地址 S130 前进路110号 生产厂 电话 南方汽车厂 87878766 大修 100001 2 送修日期 100002 5 零件费 97/06/02 100005 5 完工日期 修理小时 总金额 97/03/30 200 零件名 成本 数量 价格 最低库存 定货量 电话 小时工资 零件名 库存量 24 / 40 最低库存 定货量 Wizard WongVF实习报告

修理工工资月报表

日期:97/04/30

工号

修理汽车发表

日期: 车主姓名 送修日期 地址 修理费 总金额 具体功能为:

(1) 数据录入和修改 (2) 数据查询:

(3) 每个月编制一次零件定货计划单和修理工工资表,其中定货条件为:零件库存

量<最低库存

(4) 用户提车时,及时打印发票。其中

修理费=3*修理工时*修理工小时工资 零件费=∑(零件价格*耗用零件数量)

汽车牌号 修理项目 零件费 备注 姓名 修理小时 小时工资 月工资 二、数据库设计

1、逻辑设计

根据季度零件订货计划、汽车修理发票和工资月报表等输出单据的数据需求,从修车登记单、汽车修理单、零件入库单和零件出库单等输入单据中归纳出包含6个表的数据库。这些表的名称和关联如下:

(1)

修理单:XLD(编号,牌号,工号,修理项目,修理

小时,送修日期,完工日期)

25 / 40

Wizard WongVF实习报告

(2) (3) (4)

汽车:QC(牌号,型号,生产厂,车主名) 车主:CZ(车主名,地址,电话)

修理工:XLG(工号,姓名,地址,电话,出生日期,

进厂日期,小时工资)

(5) (6)

零件用量:LJYL(编号,零件号,数量)

零件库存:LJKC(零件号,零件名,成本,价格,库存

量,最低库存,订货量)

“汽车修理管理系统”总体模块图: QCXL.PRG(汽车修理管理系统主文件)

SJHJ.VUE(数据环境视图文件) FM.SCX(封面表单文件)

QCXLCD.MPR(汽车修理管理系统菜单程序) XCDJ.SCX(修车登记表单文件)

SRXLDH.SCX(输入修理单号表单) QCXL.SCX(汽车修理表单文件)

LJDH.SCX(零件订货计划表单文件:输入季度号) DYFP.SCX(打印发票表单文件:输入修理单号) FP.FRX(发票报表文件) 2、物理设计

八个表以及表的部分记录:XLD,QC,CZ,XLG,LJYL,LJKC,LJRK,LJCK

三:应用程序设计

(一)封面设计

1、主文件(QCXL.PRG) *程序文件名:qcxl.prg

*功能:调用QCXLCD(汽车修理菜单)

26 / 40

Wizard WongVF实习报告

set talk off

set defa to c:\\Wizard WongVF实习 close all

set view to sjhj.vue public xldh,ljf xldh=space(4) do form fm keyb '{ctrl+f4}'

modi wind screen titl '汽车修理管理系统' clear

do qcxlcd.mpr read event quit

(二)单程序结构

1、数据库(QCXL.SCX) 按书上步骤做出数据库:

27 / 40

Wizard WongVF实习报告

2、建立SJHJ.VUE(数据环境)文件

3、菜单程序(QCXLCD.MPR)

28 / 40

Wizard WongVF实习报告

生成菜单生成,运行后呈现如下图所示:

过程如下:

5.

往命令窗口键入 MODIFY FORM XCDJ,使出现标题为XCDJ.SCX的表单设计

器窗口;属性设计:FORM1的CAPTION属性设置为“修车登记”,AUTOCENTER属性设置为.T.;用数据环境把xld 表的编号,送修日期,修理项目和牌号,qc表的型号,生产厂和车主名, cz表的地址和电话等字段拖拽到表单中相应位置。

2) 分别设置牌号和车主名两个文本框valid事件代码 sele qc

locate for 牌号=xld.牌号 if not found()

insert into qc(牌号) values (xld.牌号) endif select cz

locate for 车主名=xld.车主名 if not found()

insert into cz(车主名) values (qc.车主名) endif

29 / 40

Wizard WongVF实习报告

设置commandgroup1的click事件 select xld do case

case this.value=1 if recn()

case this.value=2 if recn()>1 skip-1 endif

case this.value=3 go top

case this.value=4 go bottom

case this.value=5 do form srxldh case this.value=6

zy=messagebox('是要增页么?',1+48+256,'确认增加修理单') if zy=1

go bottom

insert into xld(编号) values (str(val(编号)+1,4)) endif

case this.value=7

sy=messagebox('是要删页么?',1+48+256,'确认删除修理单') if sy=1 delete pack endif

case this.value=8 select qc

brow titl'汽车修改'+space(20)+'单击行首可打删除标记,退出就删去' pack

case this.value=9 select cz

brow titl'车主修改'+space(20)+'单击行首可打删除标记,退出就删去' pack

case this.value=10 thisform.release endcase

thisform.refresh

寻页按钮gotfocus事件代码 select xld jlh=recn()

30 / 40

本文来源:https://www.bwwdw.com/article/ruz.html

Top