VF实习报告祥细版Wizard.docx
- 文档编号:2343795
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:46
- 大小:8.36MB
VF实习报告祥细版Wizard.docx
《VF实习报告祥细版Wizard.docx》由会员分享,可在线阅读,更多相关《VF实习报告祥细版Wizard.docx(46页珍藏版)》请在冰点文库上搜索。
VF实习报告祥细版Wizard
VisualFoxPro及其应用系统开发
实习报告
姓名:
WizardWong
班级:
XXXXX
学号:
XXXXX
指导老师:
XXXX
学院:
XXXXX
一、第一题……………………………………………………3
第一小题
第二小题
第三小题
第四小题
二、第二题……………………………………………………8
第一小题
第二小题
第三小题
第四小题
三、第三题……………………………………………………13
第一小题
第二小题
第三小题
第四小题
四、第四题……………………………………………………22
一、第一题
1.第一小题:
建立工资表文件gz20131000495.dbf,备注定义为MEMO字段
使用命令语句:
creategz20131000495
然后按要求输入表格的结构,接着输入相关数据以及添加相关备注,
最后按Ctrl+W键存盘即可
↓↓↓↓↓
↓↓↓↓↓
↓↓↓↓↓
2.第二小题:
添加、插入、删除、修改操作练习
添加命令:
append
插入命令:
insertintogz20131000495()values()
删除命令:
go<数值表达式>
delete&&逻辑删除命令
pack&&物理删除命令
修改命令:
usegz20131000495
Browse
然后根据需要对数据进行修改
3.第三小题:
记录指针移动、检索操作练习
记录指针移动命令:
gotop
gobottom
go<数值表达式>
检索命令:
indexon<索引关键字>tag<索引标识名>
4.第四小题:
排序、索引、统计操作练习
排序操作:
sortto<新文件名>on<字段>
索引的建立:
indexon<索引关键字>tag<索引标识名>ascending|descending
索引的使用命令:
setorderto<索引标识>
统计命令:
sum{<数值表达式>}{<范围>}{for<条件1>}{while<条件2>}{to<内存变量>}
↓↓↓↓↓
二、第二题:
1.第一小题:
已知半径R=10,计算周长C=2πR
clear
input"请输入圆的半径:
"tobj
C=2*PI()*bj
A=STR(C,5,2)
?
"周长=",A
Return
↓↓↓↓↓
2.第二小题:
假设银行一、二、三年定期存款的年利率分别为5.0%、5.5%、6.2%。
若储户存款为X元,期末偿还本息为Y元,编写计算各种不同定期存款期末应付本息的程序
clear
input"请输入存款额:
"toX
input"请输入定期年数:
"tons
docase
casens=1
bx=ns*(0.05+1)*X
casens=2
bx=(0.055+1)^ns*X
casens=3
bx=(0.062+1)^ns*X
endcase
?
"存款期末应付本息Y=",bx
↓↓↓↓↓
3.第三小题:
求二元一次方程ax^2+bx=c=0的根
CLEAR
?
"求解一元二次方程:
a*x^2+b*x+c=0"
input"请输入参数a="toa
input"请输入参数b="tob
input"请输入参数c="toc
d=b*b-4*a*c
DOcase
CASEa=0
?
"x=",-c/b
CASEd<0
?
"此方程组无实根"
CASEd=0
?
"x1=x2=",-b/(2*a)
CASEd>0
?
"x1=",(-b-SQRT(d))/(2*a)
?
"x2=",(-b+SQRT(d))/(2*a)
ENDCASE
↓↓↓↓↓
4.第四小题:
计算自然数前N项和S=1+2+3+……+N,设N=50
clear
?
"计算自然数前N项和S"
input"请输入项数N="toN
S=0
FORi=1toN
S=S+i
NEXT
?
"S=",S
↓↓↓↓↓
三、第三题
1、第一小题:
计算每个人的应发工资及各项工资合计
(1)命令方式:
usegz20131000495
replaceall应发工资with基本工资+奖金-扣款
list
sum基本工资,奖金,扣款,应发工资toa,b,c,d
go6
replace基本工资witha
replace奖金withb
replace扣款withc
replace应发工资withd
list
(2)程序方式:
clear
text
**************************
*1.计算个人应发工资*
*2.计算各项工资合计*
*3.退出此项运行程序*
**************************
endtext
dowhile.t.
@10,0clear
input"请输入所需操作功能的编号:
"togn
docase
casegn=1
doe1
casegn=2
doe2
casegn=3
wait"系统将关闭!
"window
exit
endcase
enddo
return
proceduree1
usegz20131000495
replaceall应发工资with0
list
input"请按表格输入所需计算应发工资职工的记录号:
"tomc
gomc
replace应发工资with基本工资+奖金-扣款
display
wait
proceduree2
usegz20131000495
go6
replace基本工资with0奖金with0扣款with0应发工资with0
list
sum基本工资,奖金,扣款,应发工资toa,b,c,d
go6
replace基本工资witha奖金withb扣款withc应发工资withd
list
wait
↓↓↓↓↓
↓↓↓↓↓
2.第二小题:
按分厂汇总,生成全厂工资汇总表gzhz?
?
.dbf,其格式如下:
分厂
基本工资
奖金
扣款
应发工资
1
2
99
(1)、命令方式:
Creategzhz20131000495
usegz20131000495
calculatesum(基本工资)for分厂="1"togch1
calculatesum(奖金)for分厂="1"togch11
calculatesum(扣款)for分厂="1"togch12
calculatesum(应发工资)for分厂="1"togch13
usegzhz20131000495
go1
replace基本工资withgch1奖金withgch11扣款withgch12应发工资withgch13
list
usegz20131000495
calculatesum(基本工资)for分厂="2"togch2
calculasum(奖金)for分厂="2"togch21
calculasum(扣款)for分厂="2"togch22
calculasum(应发工资)for分厂="2"togch23
usegzhz20131000495
go2
replace基本工资withgch2奖金withgch21扣款withgch22应发工资withgch23
list
usegzhz20131000495
sum(基本工资)tojbgzhz
sum(奖金)tojjhz
sum(扣款)tokkhz
sum(应发工资)toyfgzhz
go3
replace基本工资withjbgzhz奖金withjjhz扣款withkkhz应发工资withyfgzhz
list
(2)、程序方式:
usegz20131000495
indexon分厂tagfch
totalon分厂toa
usea
?
"查看完全厂工资汇总表以后请按Ctrl+W存盘!
"
browsefield分厂,基本工资,奖金,扣款,应发工资title"全厂工资汇总表gzhz20131000495"
return
↓↓↓↓↓
3.第三小题:
根据需要,打印职工工资表或者全厂工资汇总表
clear
input"要打印职工工资表请输入1,全厂工资汇总表请输入2:
"toshr
ifshr=1
usegz20131000495
listtoprinterpromptnoconsole
else
usea
copytoabfields分厂,基本工资,奖金,扣款,应发工资
useab
listtoprinterpromptnoconsole
endif
return
↓↓↓↓↓
4.第四小题:
利用表单,设计gz20131000495.dbf的录入、修改等维护功能
↓↓↓↓↓
↓↓↓↓↓
↓↓↓↓↓
↓↓↓↓↓
↓↓↓↓↓
四、第四题
1.第一小题:
编写一个主控程序,将第三题中各子程序组装起来,建成一个工资管理系统
1.编写一个主控程序,将第三题中各子程序组装起来,建成一个工资管理系统
clear
usegz20131000495
text
***********************************************************
*1.应发工资合计4.打印工资数据*
*2.各项工资合计5.录入修改功能*
*3.按分厂汇总工资6.退出*
***********************************************************
endtext
dowhile.t.
@6,10clear
@6,10say"请输入1--6:
"gethydefaultspace
(1)
read
docase
casehy="1"
doyfgz1
casehy="2"
dogxgz2
casehy="3"
dofchz3
casehy="4"
dodygz4
casehy="5"
closeall
doform维护.scx
casehy="6"
wait"系统将关闭!
"windowtimeout3
exit
endcase
Enddo
2、利用项目文件重建以上工资管理系统,分别编译成app、exe文件进行运行
3、根据资料,开发“汽车修理管理信息系统”
一、资料背景:
某汽车修理厂准备建立一个“汽车修理管理信息系统”,其目标如下:
a)能对汽车修理有关数据进行录入、修改和查询
b)编制月度零件定货计划和修理人员工资月报表
c)用户提车时,及时打印修理汽车发表
软件开发人员根据用户要求进行了调查,系统主要数据载体为:
修车登记表
编号:
5001日期:
97/01/02
修理项目
点火线圈
汽车牌号
A2020203
型号
S130
生产厂
南方汽车厂
车主姓名
李华
地址
前进路110号
电话
87878766
汽车修理单
登记单编号:
5005汽车牌号:
A2312318车主:
王平
修理项目
大修
送修日期
97/06/02
完工日期
97/03/30
零件号
100001
100002
100005
修理小时
200
零件数量
2
5
5
修理费
零件费
总金额
零件库存表
盘存:
方龙日期:
97/04/30
零件号
零件名
成本
数量
价格
最低库存
定货量
领料单
编号:
日期:
修理工:
零件号
数量
修理工登记表
工号
姓名
地址
电话
小时工资
零件定货计划单
日期:
97/04/23
零件号
零件名
库存量
最低库存
定货量
修理工工资月报表
日期:
97/04/30
工号
姓名
修理小时
小时工资
月工资
修理汽车发表
日期:
车主姓名
汽车牌号
备注
送修日期
修理项目
地址
修理费
零件费
总金额
具体功能为:
(1)数据录入和修改
(2)数据查询:
(3)每个月编制一次零件定货计划单和修理工工资表,其中定货条件为:
零件库存量<最低库存
(4)用户提车时,及时打印发票。
其中
修理费=3*修理工时*修理工小时工资
零件费=∑(零件价格*耗用零件数量)
二、数据库设计
1、逻辑设计
根据季度零件订货计划、汽车修理发票和工资月报表等输出单据的数据需求,从修车登记单、汽车修理单、零件入库单和零件出库单等输入单据中归纳出包含6个表的数据库。
这些表的名称和关联如下:
(1)修理单:
XLD(编号,牌号,工号,修理项目,修理小时,送修日期,完工日期)
(2)汽车:
QC(牌号,型号,生产厂,车主名)
(3)车主:
CZ(车主名,地址,电话)
(4)修理工:
XLG(工号,姓名,地址,电话,出生日期,进厂日期,小时工资)
(5)零件用量:
LJYL(编号,零件号,数量)
(6)零件库存:
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(汽车修理菜单)
settalkoff
setdefatoc:
\WizardWongVF实习
closeall
setviewtosjhj.vue
publicxldh,ljf
xldh=space(4)
doformfm
keyb'{ctrl+f4}'
modiwindscreentitl'汽车修理管理系统'
clear
doqcxlcd.mpr
readevent
quit
(二)单程序结构
1、数据库(QCXL.SCX)
按书上步骤做出数据库:
2、建立SJHJ.VUE(数据环境)文件
3、菜单程序(QCXLCD.MPR)
生成菜单生成,运行后呈现如下图所示:
过程如下:
5.往命令窗口键入MODIFYFORMXCDJ,使出现标题为XCDJ.SCX的表单设计器窗口;属性设计:
FORM1的CAPTION属性设置为“修车登记”,AUTOCENTER属性设置为.T.;用数据环境把xld表的编号,送修日期,修理项目和牌号,qc表的型号,生产厂和车主名,cz表的地址和电话等字段拖拽到表单中相应位置。
2)分别设置牌号和车主名两个文本框valid事件代码
seleqc
locatefor牌号=xld.牌号
ifnotfound()
insertintoqc(牌号)values(xld.牌号)
endif
selectcz
locatefor车主名=xld.车主名
ifnotfound()
insertintocz(车主名)values(qc.车主名)
endif
设置commandgroup1的click事件
selectxld
docase
casethis.value=1
ifrecn() skip endif casethis.value=2 ifrecn()>1 skip-1 endif casethis.value=3 gotop casethis.value=4 gobottom casethis.value=5 doformsrxldh casethis.value=6 zy=messagebox('是要增页么? ',1+48+256,'确认增加修理单') ifzy=1 gobottom insertintoxld(编号)values(str(val(编号)+1,4)) endif casethis.value=7 sy=messagebox('是要删页么? ',1+48+256,'确认删除修理单') ifsy=1 delete pack endif casethis.value=8 selectqc browtitl'汽车修改'+space(20)+'单击行首可打删除标记,退出就删去' pack casethis.value=9 selectcz browtitl'车主修改'+space(20)+'单击行首可打删除标记,退出就删去' pack casethis.value=10 thisform.release endcase thisform.refresh 寻页按钮gotfocus事件代码 selectxld jlh=recn() locafor编号=trim(xldh) ifnotfound() waitwindow"无此编号" gojlh endif thisform.refresh 汽车修理表单qcxl.scx 按照简历表的结构 用往命令窗口键入MODIFYFORMQCXL,使出现标题为QCXL.SCX的表单设计器窗口;数据环境把xld表的编号,送修日期,修理项目,牌号,修理小时和完工日期字段拖拽到表单窗口,产生各相应的标签和文本框,创建text1~text8等8个文本框;属性设置;为XLD表编号、送修日期、修理项目和牌号字段的文本框,text1~text8等文本框的READONLY属性都设置为.T.;在表单上创建COMBOL1组合框,并设置属性,创建COMMANDGROUP1命令按钮组,并编写CLICK代码。 1.创建组合框combol,按照课本P330页设置属性 2.Form1的Refresh事件代码编写如下: thisform.text1.value="" thisform.text2.value="" thisform.text3.value="" thisform.text4.value="" thisform.text5.value=0 thisform.text6.value=0 thisform.text7.value=0 thisform.text8.value=0 selectljyl locatefor编号=xld.编号 iffound() thisform.text1.value=零件号 thisform.text5.value=数量 endif cont ifnoteof() thisform.text2.value=零件号 thisform.text6.value=数量 endif cont ifnoteof() thisform.text3.value=零件号 thisform.text7.value=数量 endif cont ifnoteof() thisform.text4.value=零件号 thisform.text8.value=数量 endif 1.创建命令按钮组并编写如下click代码。 selectxld docase casethis.value=1 ifrecn() skip endif casethis.value=2 ifrecn()>1 skip-1 endif casethis.value=3 gotop casethis.value=4 gobott casethis.value=5 doformsrxldh thisform.release endc thisform.refresh “零件订货计划”表单(LJDH.SCX) ↓↓↓↓↓ 往命令窗口键入MODIFYFORMLJDH,使出现标题为LJDH.SCX的表单设计器窗口;创建LABEL1标签和LIST1列表框,并设置属性;创建变量属性JD(表示“季度”);为LIST1的INIT事件和DBLCLICK事件编写代码。 如下: 1.LIST1的LNIT事件代码编写如下: this.additem("1") this.additem("2") this.additem("3") this.additem("4") (2)LIST1的DBLCLICK事件代码编写如下: selectljkc countfor库存量<最低库存tojls ifjls=0 messagebox('库存量均不小于最低库存,第'+jd+'季度不需订货') else setfiltto库存量<最低库存 browsefields零件号: R,零件名: R,库存量: R,最低库存: R,订货量; title'第'+jd+'季度零件订货计划' setfiltto endif “打印发票”表单(DYFP.SCX) ↓↓↓↓↓ 往命令窗口键入MODIF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VF 实习 报告 祥细版 Wizard