VFP课程设计作业一、表gz201010016211、建立表结构:createtablegz20101001621(姓名c(4),分厂c(2),基本工资n(6,2),奖金n(6,2),扣款n(6,2),应发工资n(6,2),备注m)liststruc编辑输入各字段值2、添加:go5insert&出现记录编辑窗口,输入记录(记录详见表中)list插入:altertablegz20101001621.dbfadd工号n(8)list删除:altertablegz20101001621.dbfdrop工号List修改:altertablegz20101001621.dbfalter应发工资n(8,2)List3、记录指针移动、检索操作练习:go2locateforrest分厂=2locatefor分厂=2restdispcontindisp4、排序:sorttoabon分厂/d,基本工资/dfields姓名,分厂,基本工资,奖金,扣款useablist索引:indexon分厂+str(基本工资,6,2)tagcdList统计:usegz20101001621replaceall应发工资with基本工资+奖金-扣款listgo7calculsum(基本工资),sum(奖金),sum(扣款),sum(应发工资)tojb,jj,kk,yfgo7scatttoamemoa(3)=jbgatherfromalistgo7a(4)=jjgatherfromalistgo7a(5)=kkgatherfromalistgo7a(6)=yfgatherfromalist二、编程练习1、modicommande2-1.prg主程序:*e2-1.prgymj=0input请输入半径:tobjdojswithbj,ymj?圆面积=,ymjReturnmodicommandjs.prg子程序:*js.prgparametersr,ss=pi()*r*rreturndoe2-1.prg&输入R=10,回车“圆面积=314.16”2、modicommande2-2.prg程序:*e2-2.prginput请输入存款数额:toxinput请输入存款年限:tondocasecasen=1y=x*1.05casen=2y=x*1.055*1.055casen=3y=x*1.062*1.062*1.062endcase?本息和=,y3、modicommande2-3.prg程序:*e2-3.prginput二次项系数:toainput一次项系数:tobinput常数项:tocdocasecaseb^2-4*a*c0?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)endcase4、modicommande2-4.prg程序:*e2-4.prgs=0fori=1to50s=s+inext?s=,sdoe2-4.prg&计算得“s=1275”三、根据表1,用命令方式和程序方式完成以下任务1、usegz20101001621replaceall应发工资with基本工资+奖金-扣款listgo7calculsum(基本工资),sum(奖金),sum(扣款),sum(应发工资)tojb,jj,kk,yf?jb,jj,kk,yf&详见一、4、统计2、indexon分厂tagfctotalon分厂togzhz20101001621field基本工资,奖金,扣款,应发工资usegzhz20101001621listbrowsfield分厂,基本工资,奖金,扣款,应发工资title全厂工资汇总表3、modicommande3-3.prg程序:*e3-3.prgclearinput'打印职工工资表请输入1,打印全厂工资汇总表请输入2:'tondocasecasen=1usegz20101001621listtoprinterotherwiseusegzhz20101001621listtoprinterendcaseuse4、modifyformgzwh&建立表单,并在数据环境中打开表gz20101001621commandgroup1的click事件代码输入如下:selegz20101001621docasecasethis.value=1ifrecn()recc()skipendifcasethis.value=2ifrecn()1skip-1endifcasethis.value=3gotopcasethis.value=4gobottomcasethis.value=5zy=messagebox('是要增页吗?',1+48+256,'确认增加工资单')ifzy=1gobottinsertblankendifcasethis.value=6sy=messagebox('是要删页吗?',1+4+256,'确认增加工资单')ifsy=1deletepackendifcasethis.value=7thisform.releaseendcasethisform.refre验证:doformgzwh&详见gzwh.scx四、小型系统设计修车登记表编号:5001日期:97/01/02修理项目点火线圈汽车牌号A2020203型号S130生产厂南方汽车厂车主姓名李华地址前进路110号电话87878766汽车修理单登记单编号:5005汽车牌号:A2312318车主:王平修理项目大修送修日期97/06/02完工日期97/03/30零件号100001100002100005修理小时200零件数量255修理费零件费总金额零件库存表盘存:方龙日期:97/04/30零件号零件名成本数量价格最低库存定货量领料单编号:日期:修理工:零件号数量修理工登记表工号姓名地址电话小时工资零件定货计划单日期:97/04/23零件号零件名库存量最低库存定货量修理工工资月报表日期:97/04/30工号姓名修理小时小时工资月工资修理汽车发表日期:车主姓名汽车牌号备注送修日期修理项目地址修理费零件费总金额1.编写主控程序clearusegz20101001621text************************************************************1.应发工资合计4.打印工资数据**2.各项工资合计5.录入修改功能**3.按分厂汇总工资6.退出************************************************************endtextdowhile.t.@6,10clear@6,10say请输入1--6:gethydefaultspace(1)readdocasecasehy=1doyfgz1casehy=2dogzhz2casehy=3dofchz3casehy=4dozggz4casehy=5dolrxg5casehy=6wait系统将关闭!windowtimeout3exitendcaseenddouse2.利用项目管理器编译app.exe文件3.根据题目数据设计了如下图表:(1).创建系统主文件(qcxl.prg)功能:调用菜单(qcxlcd.mnx)settalkoffsetdefatoh:\qcxlcloseallsetviewtosjhj.vuepublicxldh,zljfxldh=space(4)doformfmkeyb'{ctrl+f4}'modiwindscreentitle'汽车修理管理系统'cleadoqcxlcd.mprreadeventquit(2)建立sjhj.vue数据工作期如图所示(299)(3)创建菜单程序(qcxlcd.mpr)(4)修车登记表单(xcdj.scx)其中,(1)txt牌号的valid事件代码如下:*若在该文本框中输入新牌号,qc表中就会自动增加该牌号seleqclocatefor牌号=xld.牌号ifnotfound()insertintoqc(牌号)values(xld.牌号)endif(2)txt牌号的valid事件代码如下:*若在该文本框中输入新车主名,CZ表中就会自动增加该车主名seleczlocatefor车主名=xld.车主名ifnotfound()insertintocz(车主名)values(qc.车主名)endif(3)commandgroup1的click事件代码如下:selectxlddocasecasethis.value=1ifrecn()recc()skipendifcasethis.value=2ifrecn()1skip-1endifcasethis.value=3gotopcasethis.value=4gobottcasethis.value=5doformsrxldhcasethis.value=6zy=messagebox('是要增页吗?',1+48+256,'确认增加修理单')ifzy=1gobottinsertintoxld(编号)values(str(val(编号)+1,4))endifcasethis.value=7sy=messagebox('是要删页吗?',1+48+256,'确认删除修理单')ifsy=1deletepackendifcasethis.value=8selectqcbrowsetitle'汽车修改'+space(20)+'单击行首可打删除标记,退出就删去'packcasethis.value=9selectczbrowsetitle'车主修改'+space(20)+'单击行首可打删除标记,退出就删去'packcasethis.value=10thisform.releaseendcasethisform.refresh(4)寻页按钮的gotfocus事件代码如下:selexldjlh=recn()locafor编号=trim(xldh)ifnotfound()waitwindow无此编号!gojlhendifthisform.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=0thisform.text6.value=0thisform.text7.value=0thisform.text8.value=0*以上8个命令将文本框初始化,以免翻页后各文本框保持显示旧值seleljyllocafor编号=xld.编号iffoun()thisform.text1.value=零件号thisform.text5.value=数量endifcontifnoteof()thisform.text2.value=零件号thisform.text6.value=数量endifcontifnoteof()thisform.text3.value=零件号thisform.text7.value=数量endifcontifnoteof()thisform.text4.value=零件号thisform.text8.value=数量endif(二)commandgroup1命令按钮的click的事件代码编写如下:selexlddocasecasethis.value=1ifrecn()recc()skipendicasethis.value=2ifrecn()1skip-1endi