VF实习报告(祥细版)——Wizard_第1页
VF实习报告(祥细版)——Wizard_第2页
VF实习报告(祥细版)——Wizard_第3页
VF实习报告(祥细版)——Wizard_第4页
VF实习报告(祥细版)——Wizard_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Wizard WongVF实习报告Visual FoxPro 及其应用系统开发实习报告 姓名:Wizard Wong 班级:XXXXX 学号:XXXXX 指导老师:XXXX 学院:XXXXX目录一、 第一题 3第一小题第二小题第三小题第四小题二、 第二题 8第一小题第二小题第三小题第四小题三、 第三题 13第一小题第二小题第三小题第四小题四、 第四题 22 - 3 - / 56Wizard WongVF实习报告一、 第一题1 第一小题: 建立工资表文件gz20131000495.dbf,备注定义为MEMO字段使用命令语句:create gz20131000495然后按要求输入表格的结构,接着输

2、入相关数据以及添加相关备注,最后按Ctrl+W键存盘即可2 第二小题:添加、插入、删除、修改操作练习添加命令:append 插入命令:insert into gz20131000495 () values ()删除命令:go <数值表达式>delete &&逻辑删除命令pack &&物理删除命令修改命令:use gz20131000495 Browse 然后根据需要对数据进行修改3 第三小题:记录指针移动、检索操作练习记录指针移动命令:go top go bottom go <数值表达式>检索命令: index on <索引关键字&

3、gt; tag <索引标识名> 4 第四小题:排序、索引、统计操作练习排序操作:sort to <新文件名> on <字段>索引的建立:index on <索引关键字> tag <索引标识名> ascending|descending索引的使用命令: set order to <索引标识>统计命令:sum<数值表达式><范围>for<条件1>while <条件2>to<内存变量>二、第二题:1. 第一小题:已知半径R=10,计算周长C=2Rclearinput &

4、quot;请输入圆的半径:" to bjC=2*PI()*bjA=STR ( C,5,2)?"周长=",AReturn2. 第二小题:假设银行一、二、三年定期存款的年利率分别为5.0%、5.5%、6.2%。若储户存款为X元,期末偿还本息为Y元,编写计算各种不同定期存款期末应付本息的程序clearinput "请输入存款额:" to Xinput "请输入定期年数:" to nsdo case case ns=1 bx=ns*(0.05+1)*X case ns=2 bx=(0.055+1)ns*X case ns=3 bx=

5、(0.062+1)ns*Xendcase ?"存款期末应付本息Y=",bx3. 第三小题:求二元一次方程ax2+bx=c=0的根CLEAR?"求解一元二次方程:a*x2+b*x+c=0"input "请输入参数a=" to ainput "请输入参数b=" to binput "请输入参数c=" to cd=b*b-4*a*cDO case CASE a=0 ?"x=",-c/b CASE d<0 ?"此方程组无实根" CASE d=0 ?"

6、;x1=x2=",-b/(2*a) CASE d>0 ?"x1=",(-b-SQRT(d)/(2*a) ?"x2=",(-b+SQRT(d)/(2*a)ENDCASE4. 第四小题:计算自然数前N项和S=1+2+3+N,设N=50clear?"计算自然数前N项和S"input "请输入项数N=" to NS=0FOR i=1 to N S=S+iNEXT ? "S=" , S三、第三题1、 第一小题:计算每个人的应发工资及各项工资合计(1) 命令方式:use gz20131000

7、495replace all 应发工资 with 基本工资+奖金-扣款listsum 基本工资,奖金,扣款,应发工资 to a,b,c,dgo 6replace 基本工资 with areplace 奖金 with breplace 扣款 with creplace 应发工资 with dlist(2) 程序方式:cleartext * * 1. 计算个人应发工资 * * 2. 计算各项工资合计 * * 3. 退出此项运行程序 * * endtextdo while .t. 10,0 clear input "请输入所需操作功能的编号:" to gn do case cas

8、e gn=1 do e1 case gn=2 do e2 case gn=3 wait "系统将关闭!" window exit endcaseenddoreturnprocedure e1use gz20131000495replace all 应发工资 with 0listinput "请按表格输入所需计算应发工资职工的记录号:" to mcgo mcreplace 应发工资 with 基本工资+奖金-扣款displaywaitprocedure e2use gz20131000495go 6replace 基本工资 with 0 奖金 with 0

9、 扣款 with 0 应发工资 with 0listsum 基本工资,奖金,扣款,应发工资 to a,b,c,dgo 6replace 基本工资 with a 奖金 with b 扣款 with c 应发工资 with dlistwait2第二小题:按分厂汇总,生成全厂工资汇总表gzhz?.dbf,其格式如下: 分厂基本工资奖金扣款应发工资1299(1)、命令方式:Create gzhz20131000495use gz20131000495calculate sum(基本工资) for 分厂="1" to gch1calculate sum(奖金) for 分厂=&quo

10、t;1" to gch11calculate sum(扣款) for 分厂="1" to gch12calculate sum(应发工资) for 分厂="1" to gch13use gzhz20131000495go 1replace 基本工资 with gch1 奖金 with gch11 扣款 with gch12 应发工资 with gch13listuse gz20131000495calculate sum(基本工资) for 分厂="2" to gch2calcula sum(奖金) for 分厂="

11、;2" to gch21calcula sum(扣款) for 分厂="2" to gch22calcula sum(应发工资) for 分厂="2" to gch23use gzhz20131000495go 2replace 基本工资 with gch2 奖金 with gch21 扣款 with gch22 应发工资 with gch23listuse gzhz20131000495sum (基本工资) to jbgzhzsum (奖金) to jjhzsum (扣款) to kkhzsum (应发工资) to yfgzhzgo 3rep

12、lace 基本工资 with jbgzhz 奖金 with jjhz 扣款 with kkhz 应发工资 with yfgzhzlist(2)、程序方式:use gz20131000495index on 分厂 tag fchtotal on 分厂 to ause a? "查看完全厂工资汇总表以后请按Ctrl+W存盘!"browse field 分厂,基本工资,奖金,扣款,应发工资 title "全厂工资汇总表gzhz20131000495"return3.第三小题: 根据需要,打印职工工资表或者全厂工资汇总表clearinput "要打印职工

13、工资表请输入1,全厂工资汇总表请输入2:" to shrif shr=1 use gz20131000495 list to printer prompt noconsoleelse use a copy to ab fields 分厂,基本工资,奖金,扣款,应发工资 use ab list to printer prompt noconsoleendifreturn 4.第四小题:利用表单,设计gz20131000495.dbf的录入、修改等维护功能 四、第四题1 第一小题:编写一个主控程序,将第三题中各子程序组装起来,建成一个工资管理系统1编写一个主控程序,将第三题中各子程序组装

14、起来,建成一个工资管理系统clearuse gz20131000495text * * 1.应发工资合计 4.打印工资数据 * * 2.各项工资合计 5.录入修改功能 * * 3.按分厂汇总工资 6.退出 * *endtextdo while .t. 6,10 clear 6,10 say "请输入1 -6:" get hy default space(1) read do case case hy="1" do yfgz1 case hy="2" do gxgz2 case hy="3" do fchz3 cas

15、e hy="4" do dygz4 case hy="5" close all do form 维护.scx case hy="6" wait "系统将关闭!" window timeout 3 exit endcaseEnddo 2、 利用项目文件重建以上工资管理系统,分别编译成app、exe文件进行运行3、根据资料,开发“汽车修理管理信息系统” 一、资料背景:某汽车修理厂准备建立一个“汽车修理管理信息系统”,其目标如下:a) 能对汽车修理有关数据进行录入、修改和查询b) 编制月度零件定货计划和修理人员工资月报表

16、c) 用户提车时,及时打印修理汽车发表软件开发人员根据用户要求进行了调查,系统主要数据载体为:修车登记表编号:5001 日期:97/01/02修理项目点火线圈汽车牌号A2020203型号S130生产厂南方汽车厂车主姓名李华地址前进路110号电话87878766汽车修理单登记单编号:5005 汽车牌号:A2312318 车主:王平修理项目大修送修日期97/06/02完工日期97/03/30零件号100001100002100005修理小时200零件数量255修理费零件费总金额零件库存表盘存:方龙 日期:97/04/30零件号零件名成本数量价格最低库存定货量领料单编号: 日期: 修理工:零件号数量

17、修理工登记表工号姓名地址电话小时工资零件定货计划单日期:97/04/23零件号零件名库存量最低库存定货量修理工工资月报表日期:97/04/30工号姓名修理小时小时工资月工资修理汽车发表日期:车主姓名汽车牌号备注送修日期修理项目地址修理费零件费总金额具体功能为:(1) 数据录入和修改(2) 数据查询:(3) 每个月编制一次零件定货计划单和修理工工资表,其中定货条件为:零件库存量<最低库存(4) 用户提车时,及时打印发票。其中修理费=3*修理工时*修理工小时工资零件费=(零件价格*耗用零件数量)二、数据库设计1、逻辑设计根据季度零件订货计划、汽车修理发票和工资月报表等输出单据的数据需求,从修

18、车登记单、汽车修理单、零件入库单和零件出库单等输入单据中归纳出包含6个表的数据库。这些表的名称和关联如下:() 修理单:XLD(编号,牌号,工号,修理项目,修理小时,送修日期,完工日期)() 汽车:QC(牌号,型号,生产厂,车主名)() 车主:CZ(车主名,地址,电话)() 修理工:XLG(工号,姓名,地址,电话,出生日期,进厂日期,小时工资)() 零件用量:LJYL(编号,零件号,数量)() 零件库存:LJKC(零件号,零件名,成本,价格,库存量,最低库存,订货量)“汽车修理管理系统”总体模块图:QCXLPRG(汽车修理管理系统主文件) SJHJVUE(数据环境视图文件) FMSCX(封面表

19、单文件) QCXLCDMPR(汽车修理管理系统菜单程序) XCDJSCX(修车登记表单文件) SRXLDHSCX(输入修理单号表单) QCXLSCX(汽车修理表单文件) LJDHSCX(零件订货计划表单文件:输入季度号) DYFPSCX(打印发票表单文件:输入修理单号) FPFRX(发票报表文件)2、物理设计八个表以及表的部分记录:XLD,QC,CZ,XLG,LJYL,LJKC,LJRK,LJCK三:应用程序设计(一)封面设计1、主文件(QCXLPRG)*程序文件名:qcxl.prg*功能:调用QCXLCD(汽车修理菜单)set talk offset defa to c:Wizard Won

20、gVF实习close allset view to sjhj.vuepublic xldh,ljfxldh=space(4)do form fmkeyb 'ctrl+f4'modi wind screen titl '汽车修理管理系统'cleardo qcxlcd.mprread eventquit(二)单程序结构1、数据库(QCXLSCX)按书上步骤做出数据库:2、建立SJHJ.VUE(数据环境)文件3、菜单程序(QCXLCDMPR)生成菜单生成,运行后呈现如下图所示:过程如下:5 往命令窗口键入 MODIFY FORM XCDJ,使出现标题为XCDJ.SCX

21、的表单设计器窗口;属性设计:FORM1的CAPTION属性设置为“修车登记”,AUTOCENTER属性设置为.T.;用数据环境把xld 表的编号,送修日期,修理项目和牌号,qc表的型号,生产厂和车主名, cz表的地址和电话等字段拖拽到表单中相应位置。2) 分别设置牌号和车主名两个文本框valid事件代码sele qclocate for 牌号=xld.牌号if not found()insert into qc(牌号) values (xld.牌号)endif select czlocate for 车主名=xld.车主名if not found()insert into cz(车主名) va

22、lues (qc.车主名)endif设置commandgroup1的click事件select xlddo casecase this.value=1 if recn()<recc() skip endifcase this.value=2 if recn()>1skip-1 endifcase this.value=3 go top case this.value=4 go bottomcase this.value=5 do form srxldhcase this.value=6 zy=messagebox('是要增页么?',1+48+256,'确认增

23、加修理单') if zy=1 go bottom insert into xld(编号) values (str(val(编号)+1,4) endifcase this.value=7 sy=messagebox('是要删页么?',1+48+256,'确认删除修理单') if sy=1 delete pack endifcase this.value=8select qcbrow titl'汽车修改'+space(20)+'单击行首可打删除标记,退出就删去'packcase this.value=9select czbro

24、w titl'车主修改'+space(20)+'单击行首可打删除标记,退出就删去'pack case this.value=10thisform.releaseendcasethisform.refresh 寻页按钮gotfocus事件代码select xldjlh=recn()loca for 编号=trim(xldh)if not found()wait window "无此编号"go jlhendifthisform.refresh汽车修理表单qcxl.scx按照简历表的结构用往命令窗口键入 MODIFY FORM QCXL,使出现标题

25、为QCXL.SCX的表单设计器窗口;数据环境把xld表的编号,送修日期,修理项目,牌号,修理小时和完工日期字段拖拽到表单窗口,产生各相应的标签和文本框,创建text1text8等8个文本框;属性设置;为XLD表编号、送修日期、修理项目和牌号字段的文本框,text1text8等文本框的READONLY属性都设置为.T.;在表单上创建COMBOL1组合框,并设置属性,创建COMMANDGROUP1命令按钮组,并编写CLICK代码。1.创建组合框combol,按照课本P330页设置属性 2.Form1的Refresh 事件代码编写如下: thisform.text1.value="&quo

26、t;thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text5.value=0thisform.text6.value=0thisform.text7.value=0thisform.text8.value=0select ljyllocate for 编号=xld.编号if found() thisform.text1.value=零件号 thisform.text5.value=数量endifcontif not eof()

27、 thisform.text2.value=零件号 thisform.text6.value=数量endifcontif not eof() thisform.text3.value=零件号 thisform.text7.value=数量endifcontif not eof() thisform.text4.value=零件号 thisform.text8.value=数量endif 1.创建命令按钮组并编写如下click代码。 select xlddo case case this.value=1 if recn()<recc() skip endif case this.value

28、=2 if recn()>1 skip -1 endif case this.value=3 go top case this.value=4 go bott case this.value=5 do form srxldh thisform.release endc thisform.refresh “零件订货计划”表单(LJDH.SCX)往命令窗口键入 MODIFY FORM LJDH,使出现标题为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事件代码编写如下:select ljkccount for 库存量<最低库存 to jlsif jls

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论