vf程序设计实例

合集下载

VF课程设计_4

VF课程设计_4

LOGO.SCX表单:时钟Timer1的代码:if bel1.left<-220 &&控制label1的左边与界面的边距bel1.left=thisform.widthbel1.left=bel1.left-5elsebel1.left=bel1.left-5endif“确定”按钮的代码:sele passwordinfoif allt(thisform.text1.value)==""thisform.text1.setfocuselseif allt(thisform.text2.value)==""thisform.text2.setfocuselselocate for allt(用户名)=allt(thisform.text1.value);.and.allt(密码)=allt(thisform.text2.value) if eof()messagebox("用户名或密码错误, 请重新输入!",64,"提示")thisform.text1.value=""thisform.text2.value=""thisform.text1.setfocus()elsecyonghu=allt(thisform.text1.value)cmima=allt(thisform.text2.value)do menu.mprthisform.releaseendifendifendif“退出”按钮的代码:thisform.releaseclea eventquitDZLR.SCX表单:“读者编号”文本的代码:thisform.text1.setfocus“性别”文本的代码:this.additem("男")this.additem("女")“确定”按钮的代码:use readerinfoif allt(thisform.text1.value)==""messagebox("请输入完整的必要信息!",64,"提示") thisform.text1.setfocuselseif allt(thisform.text2.value)==""messagebox("请输入完整的必要信息!",64,"提示")thisform.text2.setfocuselseif allt(thisform.text4.value)==""messagebox("请输入完整的必要信息!",64,"提示")thisform.text3.setfocuselseif allt(thisform.text5.value)==""messagebox("请输入完整的必要信息!",64,"提示")thisform.text4.setfocuselseappend blankrepl 读者编号with allt(thisform.text1.value)repl 姓名with allt(thisform.text2.value)repl 年龄with allt(thisform.text3.value)repl 联系电话with allt(thisform.text4.value)repl 详细住址with allt(thisform.text5.value)repl 压金with val(allt(thisform.text6.value))repl 备注with allt(thisform.edit1.value)repl 注册日期with date()if allt(bo1.value)==""repl 性别with allt(bo1.displayvalue)elserepl 性别with allt(bo1.value)endifmand2.clickendifendifendifendifuse“重填”按钮的代码:thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text5.value=""bo1.value=""bo1.displayvalue="男"thisform.edit1.value=""thisform.text1.setfocus“返回”按钮的代码:thisform.releaseDZXG.SCX表单:“性别”文本的代码:this.displayvalue="男"this.additem("男")this.additem("女")“快速定位”按钮的代码:sele readerinfoif allt(thisform.text6.value)==""messagebox("请输入姓名或编号!",64,"提示") thisform.text6.setfocuselselocate for allt(姓名)=allt(thisform.text6.value);.or.allt(读者编号)=allt(thisform.text6.value) if eof()messagebox("没有此记录, 请重新输入!",64,"提示") thisform.text6.setfocusgo nhereelsethisform.initendifnhere=recno()endif“第一条”按钮的代码:go topnhere=recno()mand4.enabled=.t.mand6.enabled=.t.thisform.init“最后一条”按钮的代码:go bottomnhere=recno()mand3.enabled=.t.mand5.enabled=.t.thisform.init“上一条”按钮的代码:skip -1mand4.enabled=.t.mand6.enabled=.t.if bof()go topthis.enabled=.f.mand3.enabled=.f.messagebox("已经到第一条记录了!",64,"提示") nhere=recno()elsenhere=recno()thisform.initendif“下一条”按钮的代码:skip 1mand3.enabled=.t.mand5.enabled=.t.if eof()go bottomthis.enabled=.f.mand4.enabled=.f.messagebox("已经到最后一条记录了!",64,"提示") nhere=recno()elsenhere=recno()thisform.initendif“修改”按钮的代码:thisform.text1.readonly=.f.thisform.text2.readonly=.f.thisform.text3.readonly=.f.thisform.text4.readonly=.f.thisform.text5.readonly=.f.bo1.readonly=.f.thisform.edit1.readonly=.f.“删除”按钮的代码:use readerinfo exclusivego nheremb=messagebox("确定要删除吗?",1+64,"提示")if mb==1deletepackcount all to numif nhere>numgo bottomthisform.initelsego nherethisform.initendifendif“返回”按钮的代码:thisform.releaseJHCX.SCX表单:“查询”按钮的代码:if allt(thisform.text1.value)==""messagebox("请输入读者编号!",64,"提示")thisform.text1.setfocuselsesele readerinfolocate for 读者编号=allt(thisform.text1.value)if eof()messagebox("编号错误, 请重新输入!",64,"提示")thisform.text1.value=""thisform.text1.setfocuselsebel9.caption=allt(thisform.text1.value)bel11.caption=allt(姓名)sele 书号,借阅日期,归还日期from lendinfo into cursor lendls;where allt(读者编号)=allt(thisform.text1.value);.and.(allt(借阅情况)="借阅".or.allt(借阅情况)="已还") thisform.grid1.initendifendif日期标识label12的代码:this.caption="今天是: "+allt(str(year(date())))+"年";+allt(str(month(date())))+"月";+allt(str(day(date())))+"日"表格Grid1按钮的代码:this.columncount=4this.column1.header1.caption="书号"this.column2.header1.caption="借阅日期"this.column3.header1.caption="归还日期"this.column4.header1.caption="是否延期"if !allt(thisform.text1.value)==""this.recordsource="lendls"this.recordsourcetype=1this.column1.controlsource="书号"this.column2.controlsource="借阅日期"this.column3.controlsource="归还日期"endif*thisform.text1.value=day(归还日期)*dd=day(date())-day(借阅日期)*daycount=dd*mm=month(date())-month(借阅日期)*mon=month(借阅日期)*for n=0 to mm* do case* case mon=1,3,5,7,8,10,12* daycount=daycount+31* case mon=4,6,9,11* daycount=daycount+30* case mon=2* daycount=daycount+28* endcase*endfor“归还”按钮的代码:sele lendinfoif allt(thisform.text5.value)==""messagebox("请选择要归还的图书!",64,"提示") elselocate for allt(读者编号)=allt(thisform.text1.value);.and.allt(书号)=allt(thisform.text5.value);.and.allt(借阅情况)="借阅"if !eof()repl 归还日期with date()repl 借阅情况with "已还"sele 书号,借阅日期,归还日期from lendinfo into cursor lendls;where allt(读者编号)=allt(bel9.caption);.and.allt(借阅情况)="借阅".or.allt(借阅情况)="已还"thisform.grid1.initendifendif“返回”按钮的代码:thisform.releaseTSCX.SCX表单:查询选择框Optiongroup1的代码:if this.option1.value==1bel2.caption="请输入要查询的书名: "endifif this.option2.value==1bel2.caption="请输入要查询的作者: "endifif this.option3.value==1bel2.caption="请输入要查询的出版社: "endif借书选择框Optiongroup2的代码:LPARAMETERS cName, cClass表格grid1的代码:LPARAMETERS nColIndexshuhao=allt(thisform.grid1.column1.text1.value)thisform.text2.value=shuhaosele lendinfolocate for allt(书号)=shuhao.and.allt(借阅情况)=="预约"if !eof()thisform.check1.value=1thisform.optiongroup2.option2.value=1thisform.optiongroup2.option1.value=0elsethisform.check1.value=0thisform.optiongroup2.option1.value=1thisform.optiongroup2.option2.value=0endif“查询”按钮的代码:sele booksinfoif allt(thisform.text1.value)==""messagebox("请输入要查询的内容!",64,"提示")thisform.text1.setfocuselseif thisform.optiongroup1.option1.value==1sele 书号,书名,作者,出版社from booksinfo into cursor booksls;where allt(书名)=allt(thisform.text1.value)endifif thisform.optiongroup1.option2.value==1sele 书号,书名,作者,出版社from booksinfo into cursor booksls;where allt(作者)=allt(thisform.text1.value)endifif thisform.optiongroup1.option3.value==1sele 书号,书名,作者,出版社from booksinfo into cursor booksls;where allt(出版社)=allt(thisform.text1.value)endifthisform.initendif“第一条”按钮的代码:if allt(thisform.text1.value)==""sele booksinfoelsesele bookslsendifgo topthisform.initmand4.enabled=.t.mand6.enabled=.t.“最后一条”按钮的代码:if allt(thisform.text1.value)==""sele booksinfoelsesele bookslsendifgo bottomthisform.initmand3.enabled=.t.mand5.enabled=.t.“上一条”按钮的代码:if allt(thisform.text1.value)==""sele booksinfoelsesele bookslsendifskip -1if bof()this.enabled=.f.mand3.enabled=.f.messagebox("已经到第一条记录了!",64,"提示")go topendifthisform.initmand4.enabled=.t.mand6.enabled=.t.“下一条”按钮的代码:if allt(thisform.text1.value)==""sele booksinfoelsesele bookslsendifskip 1if eof()this.enabled=.f.mand4.enabled=.f.messagebox("已经到最后一条记录了!",64,"提示") go bottomendifthisform.initmand3.enabled=.t.mand5.enabled=.t.“确定”按钮的代码:sele readerinfoif allt(thisform.text3.value)==""messagebox("请输入你的编号!",64,"提示") thisform.text3.setfocuselselocate for allt(读者编号)=allt(thisform.text3.value)if eof()messagebox("您还没有注册, 请先注册...",48,"警告")thisform.text3.value=""elsesele lendinfoif thisform.optiongroup2.option2.value==1count for allt(读者编号)=allt(thisform.text3.value);.and.allt(借阅情况)="预约" to cngo topif cn<3locate for allt(读者编号)=allt(thisform.text3.value);.and.allt(书号)=allt(thisform.text2.value);.and.allt(借阅情况)="预约"if eof()append blankrepl 书号with allt(thisform.text2.value)repl 读者编号with allt(thisform.text3.value)repl 预约日期with date()repl 借阅情况with "预约"elsemessagebox("您已经预约此本书!",64,"提示")thisform.text2.value=""endifelsemessagebox("最多只能预约3本图书, 您已经预约3本了!",64,"提示") endifendifif thisform.optiongroup2.option1.value==1count for allt(读者编号)=allt(thisform.text3.value);.and.allt(借阅情况)="借阅" to cngo topif cn<3if thisform.check1.value==0append blankrepl 书号with allt(thisform.text2.value)repl 读者编号with allt(thisform.text3.value)repl 借阅日期with date()repl 借阅情况with "借阅"elselocate for allt(读者编号)=allt(thisform.text3.value);.and.allt(书号)=allt(thisform.text2.value);.and.allt(借阅情况)="预约"if eof()messagebox("您没有预约此本图书!",48,"警告")elserepl 借阅日期with date()repl 借阅情况with "借阅"endifendifelsemessagebox("最多只能借3本图书, 您已经借了3本图书!",64,"提示") endifendifendifendif“取消”按钮的代码:if allt(thisform.text3.value)==""messagebox("请输入您的编号!",64,"提示")thisform.text3.setfocuselsesele readerinfolocate for allt(读者编号)=allt(thisform.text3.value)if eof()messagebox("您还没有注册, 请先注册...",48,"警告")thisform.text3.value=""elsesele lendinfolocate for allt(读者编号)=allt(thisform.text3.value);.and.allt(书号)=allt(thisform.text2.value);.and.allt(借阅情况)="预约"if eof()messagebox("您没有预约此本书!",64,"提示")thisform.text2.value=""elsedeletepackthisform.check1.value=0thisform.optiongroup2.option1.value=1thisform.optiongroup2.option1.value=0endifendifendif“返回”按钮的代码:thisform.releaseyhxg.scx:“修改”按钮的代码:sele passwordinfoif allt(thisform.text1.value)==""thisform.text1.setfocuselselocate for allt(用户名)=allt(thisform.text1.value)if eof()messagebox("此用户不存在, 请重新输入!",64,"提示")thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text1.setfocus()elseif !allt(密码)==allt(thisform.text2.value)messagebox("密码错误, 请重新输入!",64,"提示")thisform.text2.value=""thisform.text3.value=""thisform.text4.value=""thisform.text2.setfocus()elseif allt(thisform.text3.value)==""messagebox("请输入新密码!",64,"提示")thisform.text3.setfocuselseif !allt(thisform.text3.value)==allt(thisform.text4.value)messagebox("确认密码错误, 请重新输入!",64,"提示")thisform.text4.value=""thisform.text4.setfocuselserepl 密码with allt(thisform.text4.value)thisform.releaseendifendifendifendifendif“取消”按钮的代码:thisform.releaseyhzc.scx“注册”按钮的代码:sele passwordinfoif allt(thisform.text1.value)==""messagebox("请输入用户名!",64,"提示")thisform.text1.setfocuselselocate for allt(用户名)=allt(thisform.text1.value)if !eof()messagebox("用户名已存在, 请重新输入!",64,"信息提示")thisform.text1.value=""thisform.text2.value=""thisform.text1.setfocus()elseif allt(thisform.text2.value)==""messagebox("请输入密码!",64,"提示")thisform.text2.setfocuselseif !allt(thisform.text2.value)==allt(thisform.text3.value)messagebox("确认密码错误, 请重新输入!",64,"信息提示")thisform.text3.value=""thisform.text3.setfocuselseappend blankrepl 用户名with allt(thisform.text1.value)repl 密码with allt(thisform.text2.value)thisform.text1.value=""thisform.text2.value=""thisform.text3.value=""endifendifendifendif“取消”按钮的代码:thisform.release主程序Main的代码:set talk off &&关闭对话模式set safe offset stat offset dele on &&不处理已删除的记录set cent onset date to ansiclose allrelease window 常用modify window screen title "图书信息管理系统" zoom window screen max_screen.controlbox=.t.deactivate window "项目管理器"mypath=left(sys(16),rat("\",sys(16)))set defa to (mypath)set path to data;formopen database librarydo form logoread eventsquit。

VF程序实例1

VF程序实例1

VF程序实例一、多工作区、Replace、copy to .例题1: 涉及 set relation [ri'leiʃən] to&&& n. 关系;亲属关系;叙述;故事 &&&有如下表: (1) XS.DBF(学号 C(8),姓名 C(8),性别 C(2),班级 C(9),出生日期D,走读 L)(2) CJ.DBF(学号 C(8),课程名 C(20),成绩N(5,1))说明:一个学生可以选择多门课程。

请编写一个完整的程序,该程序能完成以下功能:1、将表XS.DBF和表CJ.DBF建立关联,并显示出所有男同学的姓名以及他们所选课程的课程名2、将XS.DBF表中所有班级为“2002级2班”的同学信息拷贝到新表STUDENT.DBF中,STUDENT .DBF只含有学号、姓名、性别、走读四个字段3、将姓名为“王小平”的同学的所有成绩提高10%CLEARCLOSE ALLSELECT 2USE CJINDEX ON 学号 TO XH &&& index onSELECT 1USE XSSET RELATION TO 学号 INTO B && relationSET SKIP TO BLIST FOR 性别='男' FIELDS 姓名,B.课程名COPY TO STUDENT FOR 班级='2002级2班' FIELDS 学号,姓名,性别,走读replace b.成绩 with b.成绩*1.1 for a.姓名="王小平"例题2: 涉及update下面有两张表:总分表:ZF.DBF学号姓名语文数学总分110 张三114 李四119王二成绩表: CJ.DBF学号语文数学110 67 65114 89 67119 78 95按照成绩表的成绩修改总分表的成绩,并计算出总分表的总分字段参考答案:CLOSE ALLSELE 2USE CJINDEX ON 学号 TAG XHCJSELE 1USE ZFINDEX ON 学号 TAG XHZFUPDA ON 学号 FROM B REPL 语文 WITH B.语文,数学 WITH B.数学REPL ALL 总分 WITH 语文+数学LIST例题3: 涉及 join with:将 STUDENT.DBF 和学生成绩.DBF 连接成新文件 NEW.DBF表1: student(学号 c(4),姓名 c(8),性别 L,出生日期 D,高考成绩 N(5,2))表2: 学生成绩(学号 c(4),课程号 C(3),分数 N(2))SELECT 1USE STUDENTSELECT 2USE 学生成绩JOIN WITH A TO NEW FOR 学号=A.学号 ;FIEL 学号,A.姓名,A.性别,A.出生日期,课程号,分数USE NEW LIST如果再增加一张表,三表相连:表3: 课程(课程号 C(3),课程名称 C(10))SELECT 1USE STUDENTSELECT 2USE 学生成绩JOIN WITH A TO NEW FOR 学号=A.学号SELE 1USE NEWSELE 2USE 课程JOIN WITH A TO STU FOR 课程号=A.课程号USE STULIST二、累加、累乘例1:累加:求1~100的和SUM=0FOR I=1 TO 100SUM=SUM+IENDFOR’1~100的总和为:’,SUM使用DO WHILE 实现:SUM=0I=1DO WHILE I<101SUM=SUM+II=I+1ENDDO’1~100的总和为:’,SUM例2:累乘:求n!clearINPUT "求n!,请输入n的值:" TO NMUL=1FOR I=1 TO nMUL=MUL*IENDFORn,’的值为:’,MUL例3:输入n的值,求1+1/2!+1/3!+1/4!+….+1/n! (阶乘 n!=1*2*3*4....*(n-1)*n )CLEARSUM=_①_MUL=_②_INPUT "请输入n的值: " TO NFOR i=1 TO NFOR j=1 TO iMUL=MUL*__③__ENDFORSUM= SUM+____④_____ENDFOR'求得的总和为: ',SUM答案:1: 0 2: 1 3: j 4: 1/mul注意:外循环是累加,内循环是累乘三、双重循环:金字塔问题等看书阅读:1、P159页:例4.392、P160页:例4.403、求1-100间所有的质数CLEAR’2、3是质数’FOR I=4 TO 100FOR J=2 TO INT(SQRT(I))IF MOD(I,J)=0EXITENDIFENDFORIF J> INT(SQRT(I))I,’是质数’ENDIFENDFOR4、运行XY.PRG程序后,将在屏幕上显示如下乘法表:1) 12) 2 43) 3 6 94) 4 8 12 165) 5 10 15 20 256) 6 12 18 24 30 367) 7 14 21 28 35 42 498) 8 16 24 32 40 48 56 649) 9 18 27 36 45 54 63 72 81请对下面的程序填空:* * * 计算乘法XY.PRG * * *CLEARFOR J=1 TO 9STR(J,2)+') 'FOR ____________________________ENDFORENDFORRETURN第一空 K=1 TO J 第二空 STR(J*k,6)5、排序问题四、排序输入10个数,将它们从小到大排列分析: 用i代表趟数,j代表次数(1)10个数要比较9趟(2)每趟要比较的次数为 : 10-趟数(3)每次比较:如果当前数 a(j)大于本次比较的最后一个数 a(10+1-i)那么就交换,否则不交换cleardime a(10)'输入10个数: 'for i=1 to 10input "请输入: " to a(i)endforfor i=1 to 9for j=1 to 10-iif a(j)>a(10-i+1)t=a(10-i+1)a(10-i+1)=a(j)a(j)=tendifendforendforlist memo like a另外可以参看书:P162-163页例 4.45五、查询:locate\seek有下列表:book(书名 C(20),作者 C(8),出版日期 D,内容简介 M)编写程序:查询关于 foxpro 的图书.USE BOOKLOCATE FOR ‘foxpro’ $ 书名IF ! FOUND()’没有关于foxpro的图书’ELSEDO WHILE ! EOF()CLEAR书名,作者,出版日期内容介绍WAIT “是否继续查找?(Y/N)” TO MIF M$’nN’EXITENDIFCONTINUEENDDO”全部显示完成”ENDIF注意:关键地方在于1、什么地方用locate,什么地方用continue2、if .. exit .. endif3、do while not 的条件使用Locate查找出所有入校总分在580及以上的所有同学信息clearuse 学生locate for 入校总分>=580do while .not. eof()dispcontinuenddo'结束'cancel六、循环插入新记录编写程序,对于学生.dbf能够在程序末尾循环插入新记录CLEARCLOSE ALLUSE 学生DO WHILE .T.APPE BLANK@5,20 SAY '学号' GET 学号@5,40 SAY '姓名' GET 姓名@7,20 SAY '性别' GET 性别@7,30 SAY '出生年月' GET 出生年月@9,20 SAY '入校总分' GET 入校总分READWAIT '你想继续插入新记录吗?(Y/N) : ' TO XIF X='N' OR X='n'EXITENDIFCLEARENDDOCLEARLISTCLOSE ALL类似:编写程序,该程序能够顺序修改表学生.DBF中的所有数据。

VF程序设计经典例题

VF程序设计经典例题

1. 求园的面积〔要求判断半径是否合理〕CleaInpu ‘r=’ to rIf r>0S=3.14*r*r"sElse"’半径错误!’Endif2. 求分段函数Y 的值CleaInpu ‘If *>0Y=2**+5ElseIf *=0Y=*ElseY=abs(*)EndifEndif"y3. 输入一个百分制成绩判断其等级〔优/良/中/及格/不及格〕CleaInpu ‘cj=’ to cjDo caseCase cj>=90"’优’Case cj>=80"’良’Case cj>=70"’中’Case cj>=60"’及格’Orth"’不及格’Endcase4. 输入假设干个〔个数不定〕百分制成绩判断其等级〔优/良/中/及格/不及格〕CleaInpu ‘请输入处理几个人的成绩:’ to nFor i=1 to nInpu ‘cj=’ to cjDo caseCase cj>=90"’优’ 2*+5 *>0 * *=0 | * | *<0Case cj>=80"’良’Case cj>=70"’中’Case cj>=60"’及格’Orth"’不及格’Endcaseendfor5.求S=1+2+3. . . . . .+100CleaS=0For i=1 to 100S=s+iEndfor"s6.求S=1×2×3. . . . . .×100Cleap=1For i=1 to 100p=p*iEndfor"p7.求S=1+3+5.. . . . .+99CleaS=0For i=1 to 99 step 2S=s+iEndfor"s8.求S=1-2+3-4. . . . . .-100CleaS=0For i=1 to 100S=s+(-1)^(i+1)*iEndfor"s9.求S=1+1/2+2/3+3/5. . . . . .前10项之和CleaS=0A=1B=1For i=1 to 10S=s+a/bT=aA=bB=t+bEndfor"s10. 求S =1!+2!+3!. . . . . .+10!CleaS=0P=1For i=1 to 10P=p*iS=s+pEndfor"s11. 对学生表中所有入学成绩≥650分的学生免去贷款CleaUse 学生Scan for 入学成绩>=650 .and. 贷款否=.t.Repl 贷款否 with .f.EndscanUse12. 输出图形Clea For i=1 to 4 For j=1 to i""’*’ Endfor " EndforCleaFor i=1 to 4For j=1 to 4-i""’’ &&有一个空格EndforFor j=1 to 2*i-1""’*’Endfor"EndforCleaFor i=1 to 4For j=1 to 4-i""’’ &&有一个空格Endfor * **** * ******** **** ** *** *** ******* *** *** ** ***** ****** ** **** * ******* ***** *For j=1 to i""’*’Endfor"Endfor13.判断一个整数是否素数CleaInpu ‘*=’ to *For i=2 to *-1If mod(*,i)<>0LoopElseE*itEndifEndforIf i>*-1"*,’是素数’Else"*,’不是素数’Endif14.判断十个整数是否素数CleaFor j=1 to 10Inpu ‘*=’ to *For i=2 to *-1If mod(*,i)<>0LoopElseE*itEndifEndforIf i>*-1"*,’是素数’Else"*,’不是素数’EndifEndfor15.找出两个数的大数和小数CleaInpu ‘*=’ to *Inpu ‘y’ to yIf *>y"*,’大’,y,’小’Else"y,’大’,*,’小’Endif16.找出三个数的最大数和最小数CleaInpu ‘*=’ to *Inpu ‘y’ to yInpu ‘z’ to zIf *<yt=**=yy=tElseIf *<zt=**=zz=tendifendifif y<zt=yy=zz=tendif"*,’是最大数’,z,’是最小数’17.找出十个数的最大数和最小数CleaDime a(10)For i=1 to 10Inpu to a(i)EndforMa*=a(1)Min=a(1)For i=2 to 10If ma*<a(i)Ma*=a(i)ElseIf min>a(i)Min=a(i)EndifEndifEndfor"ma*,min18.找出2×3矩阵中的最大数和最小数cleadime a(2,3)for i=1 to 2for j=1 to 3input ‘a(‘+str(I,2)+’,’+str(j,2)+’)=’ to a(I,j) endforendforma*=a(1,1)min=a(1,1)for i=1 to 2for j=1 to 3if ma*<a(I,j)ma*= a(I,j)elseif min> a(I,j)min= a(I,j)endifendifendforendfor"’ma*=’,ma*,’min=’,min19.对三个整数从大到小排序ClearInput ‘a=’ to aInput ‘b=’ to bInput ‘c=’ to cIf a<bT=aA=bB=tElseIf a<ct=aA=cc=tendifendifIf b<cT=bA=cc=tendif"a,b,c20.对十个整数从大到小排序〔用选择法和起泡法两种方法〕选择法:ClearDime a(10)For i=1 to 10Input to a(i)EndforFor i=1 to 9Ma*=a(i)Num=iFor j=i+1 to 10If ma*<a(j)ma*=a(j)Num=jEndifEndforIf i<>numt=A(i)a(i)=a(num)a(num)=tEndifEndforFor i=1 to 10""a(i),' 'Endfor起泡法:ClearDime a(10)For i=1 to 10Input to a(i)EndforFor i=1 to 9For j=1 to 10-iIf a(j)<a(j+1)t=A(j)a(j)=a(j+1)a(j+1)=tEndifendforEndforFor i=1 to 10""a(i),' 'Endfor21.输出Fibonacci〔斐波那契〕数列的前十项ClearDime a(10)a(1)=1a(2)=1For i=3 to 10a(i)=a(i-1)+a(i-2)EndforFor i=1 to 10""A(i)Endfor22.输出辉三角的前十行ClearDime a(10,10)For i=1 to 10A(I,1)=1A(I,i)=1EndforFor i=3 to 10For j=2 to i-1A(I,j)=a(i-1,j)+a(i-1,j-1)EndforEndforFor i=1 to 10For j=1 to i""A(I,j)Endfor"Endfor23.对2×3矩阵转置CleaDime a(2,3),b(3,2)for i=1 to 2for j=1 to 3input to a(I,j)endforendforfor i=1 to 3for j=1 to 2b(I,j)=a(j,i)endforendforfor i=1 to 3for j=1 to 2""b(I,j)Endfor"endfor24.求三位数中的所有水仙花数〔即指一个三位数,其各位数字立方和等于该数本身〕Cleafor *=100 to 999a=int(*/100)b=mod(int(*/10),10)c=mod(*,10)if *==a*a*a+b*b*b+c*c*c"*Endifendfor25.求100以的所有完数〔即一个数恰好等于除它本身外的所有因子之和〕Cleafor i=3 to 100s=0for j=1 to i-1if mod(i,j)==0s=s+jendifendforif i==s"iendifendfor26.三角形的三边〔从键盘输入〕,求其面积(S^2=p(p-a)(p-b)(p-c), p=(a+b+c)/2)Clearinput 'a=' to ainput 'b=' to binput 'c=' to cif a+b>c and a+c>b and b+c>ap=(a+b+c)/2s=sqrt(p*(p-a)*(p-b)*(p-c))"selse"'三边不能组成三角形'Endif27.求二元方程的根〔分三种情况:两个不等实根,两个相等实根,无实根〕cleainpu 'a=' to a &&a<>0inpu 'b=' to b &&b<>0inpu 'c=' to ci=b*b-4*a*cif i<0""方程无实根!"elseif i==0r=(-b)/(2*a)""方程有两个相等实数根:",relse*1=(-b+sqrt(i))/(2*a)*2=(-b-sqrt(i))/(2*a)""方程有两个不相等实数根:",*1,*2endifendif28.输入任意一个五位整数,前后对应位置上的数据进展交换重新排列〔即逆序排列〕〔例:25984→48952〕cleadime a(5)inpu to ba(1)=int(b/10000)a(2)=mod(int(b/1000),10)a(3)=mod(int(b/100),10)a(4)=mod(int(b/10),10)a(5)=mod(b,10)for i=1 to int(5/2)t=a(i)a(i)=a(6-i)a(6-i)=tendforc=a(1)*10000+a(2)*1000+a(3)*100+a(4)*10+a(5)"b,c29.找出一个3*3矩阵的“鞍点〞,即该位置上的元素在该行上最大,在该列上最小〔也有可能没有鞍点〕cleadime a(3,3)flag=.t.for i=1 to 3for j=1 to 3input 'a('+str(I,2)+','+str(j,2)+')=' to a(i,j)endforendforfor i=1 to 3ma*=a(i,1)col=1for j=2 to 3if ma*<a(i,j)ma*=a(i,j)col=jendifendformin=a(1,col)row=1for k=2 to 3if min>a(k,col)min=a(k,col)row=kendifendforif ma*==min"a(row,col),'是鞍点,在',row,'行',col,'列'flag=.f.endifendforif flag==.t."'无鞍点'endif30.求S(n)=a+aa+aaa+...+aaa....aaa(其中有n个a)之值,a是一个数字,n和a由键盘键入(例如:2+22+222+22222+22222,此时n=5)cleainpu 'a=' to ainpu 'n=' to ns=0t=afor i=1 to ns=s+tt=a+t*10endfor"s31.把一一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方案"13cleas=0for a=11 to 100for b=11 to 50for c=11 to 20if a+2*b+5*c=100s=s+1endifendforendforne*t"s32.一只猴子一天从山上摘来一袋桃子,从这天开场,它每天都要把袋中的桃子平分为二堆,吃掉其中的一堆,然后再从剩下的桃中拿出一个解谗,等到第10天,它发现袋中只有一只桃可吃啦,问猴子总共摘了多少桃。

vfp程序设计

vfp程序设计

1、求素数1~100之间的素数clears=0for i=2 to 100for j=2 to sqrt(i)if i%j=0exitendifendforif j>sqrt(i)?iendifendfor2、求1~100的素数之和clears=0for i=2 to 100for j=2 to sqrt(i)if i%j=0exitendifendforif j>sqrt(i)s=s+iendifendfors3、输出100到999之间水仙花数clearset talk offfor i=100 to 999s=str(i,3)s1=substr(s,1,1)s2=substr(s,2,1)s3=substr(s,3,1)a=val(s1)b=val(s2)c=val(s3)if i=a^3+b^3+c^3??iendifendfor4、输出100到999之间水仙花数的个数set talk offCLEARn=0for i=100 to 999a=int(i/100) &&取百位数字b=int(i%100/10) &&取十位数字c=mod(i,10) &&取个位数字if a^3+b^3+c^3=in=n+1endifENDFORnset talk on5、排序cleardimension s(10)for i=1 to 10s(i)=int(rand()*100) &&产生两位数的随机整数?s(i)endforfor i=1 to 9k=ifor j=i+1 to 10if s(j)<s(k)k=jendifendfort=s(k)s(k)=s(i)s(i)=tendforfor i=1 to 10?s(i)Endfor6、在VFP中,用循环语句求a+aa+aaa+......+aaaaaa..(n个a)的和clearinput "a=" to ainput "n=" to nb=as=0for i=1 to ns=s+bb=10*b+aendfor"a+aa+aaa+…+aaaa…(n个a)=",s7、求下述数列的前n 项之和813,58,35,23,12 input "请输入n 的值:" to ns1=2.0s2=1.0sum=0.0for i=1 to nsum=sum+(s1/s2)temp=s1s1=s1+s2s2=tempnext"该数列的前"+str(n,3)+"的和是:",sum8、计算数列:1,3,5,7,9,……的前7项之积,将结果存放在变量cj 中。

VisualFoxPro程序设计基础实例

VisualFoxPro程序设计基础实例

V i s u a l F o x P r o程序设计基础实例(共14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--Visual FoxPro程序设计基础实例▲表文件情况:学生成绩数据库的表文件结构为:字段名字段类型宽度小数位学号字符型 6姓名字符型 10英语数值型 6 2高等数学数值型 6 2计算机应用数值型 6 2总分数值型 7 2平均分数值型 6 2建立表文件结构显示如下:输入一些学生成绩。

例2-1计算表中的平均分和总分的程序set talk offCLOSE ALLUSE c:\000\CJREPLACE ALL 总分 WITH 英语+数学+计算机应用REPLACE ALL 平均分 WITH 总分/3LIST执行结果为:例2-2 统计成绩表中平均分大于90分的所有学生数目。

SET TALK OFFCLEARUSE c:\000\CJM=0SCAN FOR 平均分>90DISPLAYM=M+1ENDSCAN"总数为:",MUSERETURN执行结果:例2-3 统计成绩表中所有英语大于等于75分的学生数目。

SET TALK OFFUSE C:\000\CJMCOUNT=0FOR REC=1 TO RECCOUNT() && RECCOUNT() 为该库中的记录数 GO RECIF 英语<75LOOPENDIFDISPLAYMCOUNT=MCOUNT+1ENDFOR"英语成绩不小于75分的总数为:", MCOUNTUSERETURN执行结果:例2-4 显示表中英语成绩小于90分的学生。

SET TALK OFFCLEARUSE CJDO . ( ** 或DO ) )IF 英语>=90SKIP (或** LOOP )ENDIFDISPLAYWAIT"按任一键继续显示.…"SKIPENDDOUSERETURN执行结果:例2-5 对成绩表查询,若首记录的平均分数大于60分,则显示及格;成绩不及格”否则显示不及格。

vf命令函数程序设计

vf命令函数程序设计
母转换为小写。 3) UPPER(<字符串表达式>) – 将字符串中小写字母转
换为大写。 4) SPACE(<数值表达式>) – 生成包含指定个数空格 符的字符串。 5) TRIM(<字符串表达式>) – 去掉字符串尾部连续空格。 6) LTRIM(<字符串表达式>) – 去掉字符串首部连续空
格。 7) ALLTRIM(<字符串表达式>) – 去掉字符串首尾连续
11. 浏览数据、修改数据
BROWSE [FIELDS <字段名列表>] [NOEDIT] [TITLE <标题>]
LIST STRUCTURE LIST [OFF] [记录范围] [FIELDS <字段名列表>] [FOR <逻辑表达式>]
DISPLAY STRUCTURE DISPLAY [OFF] [记录范围] [FIELDS <字段名列 表>] [FOR <逻辑表达式>]
10. 记录检测函数
函数格式
返回值说明
RECCOUNT([<工作区号> | <"表别名">])
RECNO([<工作区号> | <"表 别名">])
BOF([<工作区号> | <"表别 名">]) EOF([<工作区号> | <"表别 名">]) DELETED([<工作区号> | <" 表别名">]) FOUND([<工作区号> | <"表 别名">])

vf典型程序例题

vf典型程序例题
clear
use 学生
locate for 入校总分>=580
do while .not. eof()
disp
continu
enddo
?'结束'
cancel
*******************************************************************************
USE BOOK
LOCATE FOR ‘foxpro’ $ 书名
IF ! FOUND()
?’没有关于foxpro的图书’
ELSE
DO WHILE ! EOF()
CLEAR
?书名,作者,出版日期
?内容介绍
WAIT “是否继续查找?(Y/N)” TO M
*******************************************************************************
五、查询:locate\seek
有下列表:
book(书名 C(20),作者 C(8),出版日期 D,内容简介 M)
编写程序:查询关于 foxpro 的图书.
for j=1 to 10-i
if a(j)>a(10-i+1)
t=a(10-i+1)
a(10-i+1)=a(j)
a(j)=tndfor
list memo like a
另外可以参看书:P162-163页例 4.45
?’1~100的总和为:’,SUM
使用DO WHILE 实现:
SUM=0
I=1

VF程序示例

VF程序示例

VF程序加密示例以下为五型读写、限时加密示例加密对象VF环境下编写的程序(VFSample),在VFSample例中只有一个简单的界面form1程序;加密目的对VFSample程序进行内嵌加密后,只有通过对应的加密锁才能打开VFSample程序(显示界面),否则不能打开。

通过限时控制(设定一至三个期限及解开期限的相应密码),控制用户的使用期限;达到加密强度高、程序运行稳定、使用便捷的目的;加密工具五型加密锁(序列号617622)、随锁KEY值(key1=51004,key2=11410,key3=46486,key4=12938)、动态库CDLL5.lib、接口程序、读写函数、密码修改工具、限时限次工具等;加密准备先开发一个程序write来向加密锁中相应的地址写入数据。

现在向加密锁中的1号地址(该锁有32个地址,可任选)写入数据”12345”。

步骤如下:1、将CDLL5.dll复制到操作系统目录:Windows \ system32下。

2、写入数据程序代码,并运行:local LockAddr, password, Lockdatapassword="abcdefgh"LockAddr=1Lockdata=12345WriteLock ( LockAddr,password)3、成功写入数据后关闭该程序。

加密过程步骤一:首先在VF环境下打开VFSample程序,运行几次,确保程序正常运行。

确定加密位置,现在根据需要确定在界面载入前进行加密。

步骤二:将光盘中的所有文件拷贝到计算机硬盘上,打开tools,使用工具ModPassw修改密码。

新密码值根据个人需要设置,这里我把它设置为“009lirog”。

步骤三:通过路径:\内嵌加密\实例\VF代码找到CDLL5.dll并将CDLL5.dll复制到操作系统目录:Windows \ system32下。

步骤四:打开KEY文本文件,该文件中记录的是本加密锁的KEY值。

vfp编程实例

vfp编程实例

1、1-100的累加2、阶乘3、求阶乘和4、条件定位5、用scan语句查询定位6、用scan语句扫描符合条件的记录,并显示出来7、查找男性职工** 查找男性职工**查找男性职工8、新值换旧值9、多位整数各个位数相加10、找100-999之间的“水仙花数”11、判断一个大于3的数是否为素数12、求一个班级每个学生的平均成绩13、计算圆的面积14、将小写字母转换为大写字母15、找出最大数和最小数16、绝对值函数的实现17、绝对值函数实现的另一种方法18、输出成绩等级19、求一名学生的平均成绩20、用数组的方法,计算一个学生的平均成绩21、用do case语句实现符号函数的功能22、用一般选择语句实现符号函数的功能23、用简单选择语句实现符号函数功能24、打开数据库和数据表25、显示表中指定信息26、询问后再由用户按(Y/N)键执行的程序实现27、根据exact的设置进行字符串匹配比较28、使一个多位正整数逆序排列29、按编号查找并列出一条记录30、验证密码程序:31、编程求税金32、用三角形列出乘法口诀表:33、将变量A、B值互换:34、找出已知三个数的中间数:35、调用子程序:36、用参数传递计算圆的面积:37、我国古代数学家张丘建VFP常见编程实例1、1-100的累加** 求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDO?sRETURN2、阶乘** 求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDO?jRETURN3、求阶乘和** 求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5 j=j*is=s+ji=i+1ENDDO?sRETURN4、条件定位** 查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位** 用scan语句查询定位记录在赵伟上CLEARSCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来SCAN FOR 年龄<30 DISPLAYENDSCANRETURN7、查找男性职工** 查找男性职工CLEARLOCATE FOR 性别="男" DO WHILE FOUND() DISPLAY CONTINUEENDDORETURN** 查找男性职工CLEARLOCATE FOR 性别="男" DO WHILE NOT EOF() DISPLAYCONTINUERETURN** 查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE&&记住最后一个ELSE语句后面不需要条件表达式CANCELENDIFCONTINUEENDDO** 查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayskipendifendscanclose databaseuseset talk onreturn8、新值换旧值** 有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo?"一年共出生兔子:",creturn9、多位整数各个位数相加** 求多位整数各个位数之和CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO?"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3?iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to sf=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0?str(s,3)+"是素数"ELSE f=1&&这个表达式可有可无,为了省事完全省略也可以。

visual foxpro程序设计案例教程(蔡莉)vf按章(4)

visual foxpro程序设计案例教程(蔡莉)vf按章(4)

例如:打开A盘GZ1数据表。
USE A:\GZ1
3、数据表的关闭
命令格式1:USE
命令功能:关闭当前数据表。
命令格式2:CLOSE TABLE
命令功能:关闭所有打开的数据表。
2021/7/13
2
3.3.3 数据的输入
1、使用浏览器输入数据
(1) 打开要输入数据的表。
(2) 选择“显示”菜单中“浏览”或“编辑“项;
的记录,实现方法为在命令窗口输入LIST FOR 性别="男"。 (4)追加记录:在表文件的尾部追加一条空白记录。 在命令窗口输入APPE BLAN
2021/7/13
23
插入记录:指针指向第2条记录,在第2第记录 后插入一条空白记录。
在命令窗口输入:GO 2
INSE BLAN
LIST (4)和(5)两步执行完成后,在屏幕的工作区出 现如下结果。
物理删除是将带有删除标记的记录从表中真正删除掉,物 理删除的记录则不能用恢复命令恢复。 (1)使用菜单
打开表,并进入“浏览”窗口。选择“表”菜单中的“彻底 删除”项,弹出“物理删除”提示对话框,在对话框中单击 “是”则将所有带有删除标记的记录从表中删除。 (2)使用命令
命令格式1:PACK 命令功能:删除带有删除标记的记录。 命令格式2:ZAP 命令功能:删除所有记录,无论其是否有删除标记。 使用ZAP命令删除表中全部记录后,表结构依然存在。
命令功能:将当前表中范围内满足条件的记录加上删除标 记。 说明:如不指定范围和条件则只逻辑删除当前记录。
例如:逻辑删除“职工编号”空白的记录。 DELETE ALL FOR 职工编号=""
2021/7/13
20

visual foxpro程序设计案例教程vf按章 7

visual foxpro程序设计案例教程vf按章 7
。 • 说明:别名最多可以包括254个字母、数字或下划线,
但首字符必须是汉字、字母或下划线。如果用户所提供 的别名包含不支持的字符,则VFP会自动创建一个别名 。 (3)使用VFP指定的别名
2020/10/11
3、引用其他工作区中打开的表
(1)使用IN命令
• 命令格式:IN <工作区号>|<表别名>
(1)打开“数据库设计器”,选择“数据库 ”菜单中的“清理数据库”,即物理删除 数据库各个表中所有带有删除标记的记录 。 2020/10/11
参照完整性规则包括更新、删除和插入规 则。
(3)更新规则规定了当更新父表中的连接字 段(主关键字)时,如何处理相关的从表 中的记录。
• 级联:用新的连接字段值自动修改子表中 的相关所有记录;
• 20如20/10/果11 没有指定工作区,系统默认总是在第1
• 命令格式:SELECT<工作区号>|<表别名>
• 命令功能:该命令可以将指定的工作区设 为当前工作区。
• 说 明:
(1)<工作区号>的取值范围为0-32767。如 果取值为0,则激活尚未使用的工作区中编 号最小的一个。
(2)<表别名>是打开表的别名,用来指定包 含打开的工作区。也可以用从A到J中的一 个字母作为<表别名>,来激活前10个工作 区中的一个,工作区11到32767中指定的别
3.6.3 表的关联
• 如果在一个数据库中有两个以上的表,它们之间通常存在某 些相互关系。数据库表之间存在着“永久关系”和“临时关 系”。
• 在创建表间关系之前,所有建立关系的表需要有一些公共字 段和索引,这样的字段称为主关键字段和外部关键字段。

vf重点复习的程序

vf重点复习的程序

一.面向过程的程序设计举例理解掌握类似下列程序的算法,代码仅供参考,按其他算法编写的,只要运行正确,都是正确的程序。

1. 输入三个数,按从大到小的顺序排列输出。

clearinput "请输入第一个数:" to xinput "请输入第二个数:" to yinput "请输入第三个数:" to za=max(x,y,z)c=min(x,y,z)b=x+y+z-a-c?'由大到小的顺序为:',a,b,c2. 输入一个字符串,分别统计其中字母字符、数字字符和其他字符的个数。

ClearACCEPT "请输入字符串:" to crk=len(cr) &&求出字符串cr的长度(即字符个数)赋给变量kSTORE 0 to a,b,c &&a,b,c分别放三种字符的个数,赋初值0FOR i=1 to kz=substr(cr,i,1) &&取出第i个字符DO caseCASE upper(z)>="A" and upper(z)<="Z"a=a+1CASE z>='0'and z<='9'b=b+1OTHERWISEc=c+1ENDCASEENDFOR?'字母字符的个数是:',a?'数字字符的个数是:',b?'其他字符的个数是:',c3. 输入一个百分制成绩,将其转换成“优秀”、“良好”、“中等”、“及格”和“不及格”五级计分制评定,如果输入的百分制成绩不在0-100之间,则提示输入错误并结束程序。

clearinput "输入百分制成绩:" to cjif cj<0 or cj>100messagebox("输入错误!只能输入0-100之间的数。

VF表单与控件设计举例

VF表单与控件设计举例

VF表单与控件设计例子1:用表单向导创建一个学生表单(表单中数据来自一个表)这个表单的功能是对学生信息浏览,添加,删除,查找,打印,编辑,退出。

一、创建(1)(2)(3)(4)①②(5)(6)(7)二、运行(1)①①②①②④③(2)①效果:例子2:用一对多表单向导创建一个学生-成绩表单,(表单中数据来自多个表)这个表单的功能是浏览,添加,删除,查找,打印,编辑,退出,浏览一个学生信息和他对应的选课信息。

一、创建(1)(2)(3)(4)①②(5)(6)①②(7)(8)(9)二、运行(1)①①②①②④③(2)①效果:例子3:用表设计器创建一个学生表单(表单中数据来自一个表)这个表单的功能是浏览和修改学生表中的记录。

一、创建(1)(2)说明:(3)单击右键,在弹出菜单中点击数据环境标签 编辑框 命令按钮组复选框 列表框 表格 计时器 ActiveX 控件线条容器 超级链接 生成器锁定选定对象 文本框 命令按钮 命令按钮组 选项按钮组 微调控件 图像页框ActiveX 绑定控件 形状 分隔符 按钮锁定查看类 表单上所有对象名称列表属性名属性值属性值编辑框(4)添加表进入数据环境②③①(5)将表或其中字段直接拖到表单上,字段生成(标签+文本框),表生成(表格)表格拖动字段拖动(5-1)全部拖动之后,选中表格,单击右键,在弹出菜单中点击编辑,表格对象处于被绿框选定的编辑状态,调整表格列宽。

(6)添加命令按钮控件和命令按钮组添加命令按钮控件分3步:①②1、在表单上画出命令按钮①在表单控件工具栏上选择命令按钮控件②在表单合适的位置拖动鼠标画出一个命令按钮2、在属性窗口中对命令按钮的属性进行设置。

选中某个属性项,在上面的编辑框内输入属性值3、Command1的Click事件代码编写如下(双击命令按钮对象,弹出代码框,注意左边的对象列表框要选Command1;右边的事件过程列表框要选Click,下面是代码编辑)添加命令按钮组1、在表单上画出命令按钮组①在表单控件工具栏上选择命令按钮组控件②在表单合适的位置拖动鼠标画出一个命令按钮组③选中命令按钮组对象,单击右键,在弹出菜单中选生成器④在生成器中设置按钮组中按钮的个数(微调按钮)和⑤排列和⑥名称①②③④⑤⑥2、在属性窗口中对命令按钮的属性进行设置。

VFP常见编程实例

VFP常见编程实例

VFP常见编程实例1、1-100的累加** 求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDO?sRETURN2、阶乘** 求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDO?jRETURN3、求阶乘和** 求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1 ENDDO?sRETURN4、条件定位** 查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位** 用scan语句查询定位记录在赵伟上CLEARSCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来CLEARSCAN FOR 年龄<30DISPLAYENDSCANRETURN7、查找男性职工** 查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE FOUND()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE NOT EOF()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE&&记住最后一个ELSE语句后面不需要条件表达式CANCELENDIFCONTINUEENDDO** 查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayskipendifendscanclose databaseuseset talk onreturn8、新值换旧值** 有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo?"一年共出生兔子:",creturn9、多位整数各个位数相加** 求多位整数各个位数之和CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO ?"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3?iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to sf=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0?str(s,3)+"是素数"ELSE f=1&&这个表达式可有可无,为了省事完全省略也可以。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(一)输入n的值,求1+1/2!+1/3!+1/4!+….+1/n! (阶乘n!=1*2*3*4....*(n-1)*n )
CLEAR
SUM=0
MUL=1
INPUT "请输入n的值: " TO N
FOR i=1 TO N
FOR j=1 TO i
MUL=MUL*J
ENDFOR
SUM= SUM+1/MUL
ENDFOR
?'求得的总和为: ',SUM
(二)输入10 个数,将它们按照从大到小的顺序排列。

clear
dime a(10)
?'输入10个数: '
for i=1 to 10
input "请输入: " to a(i)
endfor
for i=1 to 9
for j=1 to i
if a(j)>a(i+1)
t=a(i+1)
a(i+1)=a(j)
a(j)=t
endif
endfor
endfor
list memo like a
(三)随机出10道100以内的整数加减法算数题
clear
ts=1
do whie ts&lt;=10
czf=iif(rand()&gt;0.5,&quot;+&quot;,&quot;-&quot;)
num1=rand()*100
num2=rand()*100
&nbsp; if =czf=&quot;+&quot;
&nbsp; if num1+num2&gt;100
&nbsp; &nbsp; loop
&nbsp; else
&nbsp; &nbsp; if num1&lt;num2
&nbsp; &nbsp; &nbsp; loop
&nbsp; &nbsp; endif
&nbsp; endif
?&quot;(&quot;+str (ts,2)+&quot;)&quot;+”“+str (num1,2)+czf+str(nu m2,2)+&quot;=”
ts=ts+1
enddo
(四)计算1,1/2,1/3...1/n之和,当&lt;0.001时停止
set decimal +0 2
n=1
nsum=0
do while .t.
if 1/n &lt;0.001
&nbsp; exit
endif
nsum=nsum+2
n=n+1
enddo
wait windows &quot;该系统之和为&quot;+
[NextPage]
(五)计算生肖自定义函数sx()
function sx
arameters nyear
local n,csx
csx=&quot;羊猴鸡狗猪鼠牛虎兔龙蛇马&quot;
if parameters()=0
nyear =year(date())
endif
n=mod(nyear,12) &nbsp; &nbsp; &nbsp; &nbsp; return substr (ncsx,2+&qu ot;N&quot;+1,2)
endfunc
(六)计算 S=1!+2!+3!+4!+5!+6!+7!+8!+9!
s=0
for i=1 to 9
&nbsp; s=s+fjc(i)
endfor
?s
function fjc
parameters x
p=1
for n=1 to x
&nbsp; p=p*x
endfor
return p
endfunc。

相关文档
最新文档