visual foxpro课程设计作业.docx
- 文档编号:8225587
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:22
- 大小:976.07KB
visual foxpro课程设计作业.docx
《visual foxpro课程设计作业.docx》由会员分享,可在线阅读,更多相关《visual foxpro课程设计作业.docx(22页珍藏版)》请在冰豆网上搜索。
visualfoxpro课程设计作业
VFP课程设计作业
一、表gz20101001621
1、建立表结构:
createtablegz20101001621(姓名c(4),分厂c
(2),基本工资n(6,2),奖金n(6,2),扣款n(6,2),应发工资n(6,2),备注m)
liststruc
编辑输入各字段值
2、添加:
go5
insert&出现记录编辑窗口,输入记录(记录详见表中)
list
插入:
altertablegz20101001621.dbfadd工号n(8)
list
删除:
altertablegz20101001621.dbfdrop工号
List
修改:
altertablegz20101001621.dbfalter应发工资n(8,2)
List
3、记录指针移动、检索操作练习:
go2
locateforrest分厂="2"
locatefor分厂="2"rest
disp
contin
disp
4、排序:
sorttoabon分厂/d,基本工资/dfields姓名,分厂,基本工资,奖金,扣款
useab
list
索引:
indexon分厂+str(基本工资,6,2)tagcd
List
统计:
usegz20101001621
replaceall应发工资with基本工资+奖金-扣款
list
go7
calculsum(基本工资),sum(奖金),sum(扣款),sum(应发工资)tojb,jj,kk,yf
go7
scatttoamemo
a(3)=jb
gatherfroma
list
go7
a(4)=jj
gatherfroma
list
go7
a(5)=kk
gatherfroma
list
go7
a(6)=yf
gatherfroma
list
二、编程练习
1、modicommande2-1.prg
主程序:
*e2-1.prg
ymj=0
input"请输入半径:
"tobj
dojswithbj,ymj
?
"圆面积=",ymj
Return
modicommandjs.prg
子程序:
*js.prg
parametersr,s
s=pi()*r*r
return
doe2-1.prg&输入R=10,回车“圆面积=314.16”
2、modicommande2-2.prg
程序:
*e2-2.prg
input"请输入存款数额:
"tox
input"请输入存款年限:
"ton
docase
casen=1
y=x*1.05
casen=2
y=x*1.055*1.055
casen=3
y=x*1.062*1.062*1.062
endcase
?
"本息和=",y
3、modicommande2-3.prg
程序:
*e2-3.prg
input"二次项系数:
"toa
input"一次项系数:
"tob
input"常数项:
"toc
docase
caseb^2-4*a*c<0
?
"x=","无解"
caseb^2-4*a*c>=0
?
"x=",(-b+sqrt(b^2-4*a*c))/(2*a)
?
?
(-b-sqrt(b^2-4*a*c))/(2*a)
endcase
4、modicommande2-4.prg
程序:
*e2-4.prg
s=0
fori=1to50
s=s+i
next
?
"s=",s
doe2-4.prg&计算得“s=1275”
三、根据表1,用命令方式和程序方式完成以下任务
1、usegz20101001621
replaceall应发工资with基本工资+奖金-扣款
list
go7
calculsum(基本工资),sum(奖金),sum(扣款),sum(应发工资)tojb,jj,kk,yf
?
jb,jj,kk,yf&详见一、4、统计
2、indexon分厂tagfc
totalon分厂togzhz20101001621field基本工资,奖金,扣款,应发工资
usegzhz20101001621
list
browsfield分厂,基本工资,奖金,扣款,应发工资title"全厂工资汇总表"
3、modicommande3-3.prg
程序:
*e3-3.prg
clear
input'打印职工工资表请输入1,打印全厂工资汇总表请输入2:
'ton
docase
casen=1
usegz20101001621
listtoprinter
otherwise
usegzhz20101001621
listtoprinter
endcase
use
4、modifyformgzwh&建立表单,并在数据环境中打开表gz20101001621
commandgroup1的click事件代码输入如下:
selegz20101001621
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 zy=messagebox('是要增页吗? ',1+48+256,'确认增加工资单') ifzy=1 gobott insertblank endif casethis.value=6 sy=messagebox('是要删页吗? ',1+4+256,'确认增加工资单') ifsy=1 delete pack endif casethis.value=7 thisform.release endcase thisform.refre 验证: doformgzwh&详见gzwh.scx 四、小型系统设计 修车登记表 编号: 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.编写主控程序 clear usegz20101001621 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" dogzhz2 casehy="3" dofchz3 casehy="4" dozggz4 casehy="5" dolrxg5 casehy="6" wait"系统将关闭! "windowtimeout3 exit endcase enddo use 2.利用项目管理器编译app.exe文件 3.根据题目数据设计了如下图表: (1).创建系统主文件(qcxl.prg) 功能: 调用菜单(qcxlcd.mnx) settalkoff setdefatoh: \qcxl closeall setviewtosjhj.vue publicxldh,zljf xldh=space(4) doformfm keyb'{ctrl+f4}' modiwindscreentitle'汽车修理管理系统' clea doqcxlcd.mpr readevent quit (2)建立sjhj.vue数据工作期如图所示(299) (3)创建菜单程序(qcxlcd.mpr) (4)修车登记表单(xcdj.scx) 其中, (1)txt牌号的valid事件代码如下: *若在该文本框中输入新牌号,qc表中就会自动增加该牌号 seleqc locatefor牌号=xld.牌号 ifnotfound() insertintoqc(牌号)values(xld.牌号) endif (2)txt牌号的valid事件代码如下: *若在该文本框中输入新车主名,CZ表中就会自动增加该车主名 selecz locatefor车主名=xld.车主名 ifnotfound() insertintocz(车主名)values(qc.车主名) endif (3)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 gobott casethis.value=5 doformsrxldh casethis.value=6 zy=messagebox('是要增页吗? ',1+48+256,'确认增加修理单') ifzy=1 gobott insertintoxld(编号)values(str(val(编号)+1,4)) endif casethis.value=7 sy=messagebox('是要删页吗? ',1+48+256,'确认删除修理单') ifsy=1 delete pack endif casethis.value=8 selectqc browsetitle'汽车修改'+space(20)+'单击行首可打删除标记,退出就删去' pack casethis.value=9 selectcz browsetitle'车主修改'+space(20)+'单击行首可打删除标记,退出就删去' pack casethis.value=10 thisform.release endcase thisform.refresh (4)寻页按钮的gotfocus事件代码如下: selexld jlh=recn() locafor编号=trim(xldh) ifnotfound() waitwindow"无此编号! " gojlh endif thisform.refresh 将该表单运行后显示如下: (4)输入修理单号表单(srxldh.scx) 其中, (1)text1的lostfocus事件代码编写如下: xldh=thisform.text1.value (2)command1命令按钮的click的事件代码编写如下: thisform.release (5)汽车修理表单(qcxl.scx) 其中, (一)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 *以上8个命令将文本框初始化,以免翻页后各文本框保持显示旧值 seleljyl locafor编号=xld.编号 iffoun() 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 (二)commandgroup1命令按钮的click的事件代码编写如下: selexld docase casethis.value=1 ifrecn() skip endi casethis.value=2 ifrecn()>1 skip-1 endif casethis.value=3 gotop casethis.value=4 gobott casethis.value=5 doformsrxldh casethis.value=6 zy=messagebox('是要增页吗? ',1+48+256,'确认增加修理单') ifzy=1 gobott insertintoxld(编号)values(str(val(编号)+1.4)) endif thisform.release endcase thisform.refresh (6)零件订货计划表单(ljdh.scx) 在表单中,list1的init事件代码如下: *在列表框中增入季度号选项 this.additem("1") this.additem("2") this.additem("3") this.additem("4") (2)list1的dblclick事件代码如下: selectljkc countfor库存量<最低库存tojls ifjls=0 messagebox('库存量均不小于最低库存,第'+jd+'季度不需订货') else setfiltto库存量<最低库存 browsefiel零件号: R,零件名: R,库存量: R,最低库存: R,订货量; title'第'+jd+'季度零件订货计划' setfiltto endif (7)打印发票表单(dyfp.scx) 在表单中, (1)text1的lostfocus事件代码如下: xldh=thisform.text1.value (2)command1的click事件代码如下: selexld locafor编号=trim(xldh) ifnotfound() waitwindow"无此编号! " else seleljyl sum数量*ljkc.价格for编号=trim(xldh)and零件号=ljkc.零件号tozljf repoformfpprev thisform.release endif (8)发票报表(fp.frx)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- visual foxpro课程设计作业 foxpro 课程设计 作业