foxpro程序设计示例与练习三(因子)
Visual FoxPro程序设计实习教程与习题集

count for性别='男' to cn
sum基本工资for性别='男' to sn
?sn/cn
3.计算所有职务为科长的平均年龄。
average year(date())-year(出生日期) for职务='科长'
list
2)按“职务”索引,索引标记为ZW,并显示结果。
index on职务tag zw
list
3)按“出生日期”的降序索引,索引标记为CSRQ,并显示结果。
index on出生日期tag csrq
list
4)按“性别”和“职务”索引,索引标记为XBZW,并显示结果。
index on性别+职务tag xbzw
1)筛选出65年以前出生的所有职务为“科员”的职工记录,并显示当前记录。
执行GO TOP命令后,再显示当前记录,查看两者的区别。
set filter to year(出生日期)<1965 and职务='科员'
display
go top
display
2)筛选出工资在400~500元之间的职工记录,并显示筛选结果。
set filter to基本工资>=400 and基本工资<=500
list
《实习教程》第10单元数据表的统计(参考答案)
准备:打开数据表ZGGZ.DBF,以下操作为对该数据表进行。
use zggz
1.分别统计数据表中已婚的男职工和未婚的女职工人数。
count for婚否and性别='男'
VFP常见编程实例及模拟试卷4套

VFP常见编程实例及模拟试卷4套1、1-100的累加** 求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDOsRETURN2、阶乘** 求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDOjRETURN3、求阶乘和** 求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1ENDDOsRETURN4、条件定位** 查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位** 用scan语句查询定位记录在赵伟上SCAN 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="女"skipelsedisplayendifendscanclose 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+1ELSEf=1EXITENDIFENDDOIF f=0?str(s,3)+"是素数"ELSE f=1 &&这个表达式可有可无,为了省事完全省略也可以。
Visual_Foxpro数据库与程序设计及练习册答案 中国石油大学 第三版 张新 韩作生

Visual Foxpro 实用教程课本(第三版)及实验教材部分课后题答案说明:1 。
本材料仅供学习参考,不代表任何考试题目意向;2 。
所给定的题目答案只是常规解法,不一定是最佳答案。
刘乃文第一章:课本习题一P10一.单选题1. B 2. A 3. C 4. D 5. C 6. B 7. A 实验教程补充习题P11. 选择题(1)A (2)B (3)B (4)D(5)C (6)D (7)D (8)C(9)B (10)B (11)D (12)B 2. 填空题(1)数据内容数据形式(2)人工管理阶段文件系统管理阶段数据库系统管理阶段(3)计算机系统数据库数据库管理系统有关人员(4)实体型(5)事物之间的联系(6)关系模型(7)属性记录(8)关系(9)选择投影连接(10)多对多第二章:课本习题二P42一.单选题1. B 2. D 3. B 4.D 5. B 6. D 7. D 8. C 9. B 10.B 11. A 12.C 13.B 14. A二.计算题1.(1) .T. (2) .F. (3) .T.2.(1) age<15 .and. height>=1.8(2) zhch=”教授” .and. age<40 .or. age<35 .and. zhch=”副教授”3. (1) .T. (2) .F. (3 )353.00 (4 ).F.(5) .F. (6) 223.22324. (1)2000.01.18 (2) D (3) 3 (4) C (5) 8 (6) 71 (7) 525. (1) .F. (2) .T. (3) .F. (4) 7 (5) _管理_87计算中心管理实验教程补充习题P31. 选择题(1)B (2)C (3)D (4)A(5)A (6)C (7)A (8)D(9)B (10)D (11)C (12)A (13)C (14)A (15)D2. 填空题(1)32 (2)Enter(3)选项(4)菜单命令程序(5);(6).pjx(7)代码(8)从项目管理器中移去从磁盘上删除(9)函数>算术运算>关系运算>逻辑运算(10)N (11).T.(12)337.201(13)15 (14)字符型(15)-1第三章:课本习题三P88:二.单选题1. B 2. 无答案3. C 4. B 5. D 6. C7. C 8. D 9. C 10. C 11. B实验教程补充习题P211. 选择题(1)C (2)A (3)A (4)B(5)C (6)B (7)B (8)B(9)A (10)D (11)D (12)C (13)B (14)B (15)A (16)D (17)C (18)C (19)C (20)D (21)D (22)B (23)B (24)D (25)B (26)C (27)A (28)C (29)C (30)D2. 填空题(1)LIST连续不分屏显示信息DISPLAY采用分屏显示信息(2)各字段宽度存放逻辑删除标记(3)已经打开并且正在使用的数据表(4)第5条记录最后一条记录后面(此时EOF()函数的值为.T.)(5)DELETE PACK(6)单入口索引文件结构化复合索引文件非结构化(独立)复合索引文件(7)自由表数据库表(8)新数据表(9)Memo (10)6位(11)按索引顺序排列(12)DELETE FOR SUBSTR(分类号,1,1)="I"(13)GO 8DELETE NEXT 8PACK(14)数据表名(15)主索引(16)LIST FOR 婚否=.T.(17)数据库(18)CONTINUE (19)默认值(20).dbf第四章:课本习题四P129二.选择题1. D 2. A 3. C 4. A三.填空题1 union 2 .NULL. 3 逻辑A VG、SUM 5 INTO CURSOR实验教程补充习题P361. 选择题(1)B (2)B (3)B (4)C(5)B (6)D(7)D (8)A (9)C (10)B (11)D (12)B (13)C (14)B (15)C (16)C (17)B (18)B (19)D (20)B (21)A (22)B (23)D (24)A (25)C (26)A (27)C (28)B (29)D (30)C (31)B (32)B (33)C (34)B (35)B (36)A (37)C (38)D (39)C (40)D (41)A (42)B (43)B (44)C (45)A (46)D (47)C (48)D (49)A (50)B (51)D (52)D (53)B2. 填空题(1)条件(2)视图(3)符合条件(4)INSERT SELECT UPDATE ALTER TABLE(5)降序升序(6)UPDATE GZB SET补贴=补贴+800 WHERE 职称="副教授"(7)SELECT * FROM RSGL INNER JOIN RSGZ ON RSGL.编号=RSGZ.编号(8)A VG(工资) GROUP BY职称(9)UNION (10)NULL (11)逻辑(12)A VG SUM(13)INTO ARRAY 14. ORDER BY15. 更新(16)本地视图远程视图17. 字段筛选(18)①SELECT *FROM STUD1 WHERE获奖次数>5 AND性别="男"②SET 获奖次数>=5③INTO STUD2 V ALUES("991201","VFP程序设计")④SELECT 学号,姓名,总成绩FROM stud1 WHERE 总成绩=(SELECT MAX(总成绩)FROM stud1)⑤SELECT 学号,姓名,总成绩FROM stud1 WHERE 学号IN(SELECT 学号FROM stud2 WHERE 选课="操作系统")⑥SELECT * TOP 3 FROM STUD1 ORDER BY 总成绩DESC(19)Order By(20)职称IS NULL(21)WHERE 实发工资BETWEEN 800 AND 1000 或者WHERE 实发工资>=800 AND实发工资<=1000 (22)%(23)GROUP BY(24)DISTINCT(25)数据查询第五章课本习题五P171注意:171页最后一行中,DO a.prg 改为DO main.prg二.单选题 1. A 2. A 3. A 4. D 5.A三.填空1. 1101 C 或字符型2. 上海市南京市济南市青岛市四.填空“0”,ssubstr(s,1,n-1)+substr(s,n+1)五.根据要求设计程序1.用两种语句格式实现用IF 实现:SET TALK OFFCLEA ALLCLEAINPUT “INPUT A NUMBER TO X :”TO XINPUT “INPUT A NUMBER TO Y :”TO YINPUT “INPUT A NUMBER TO Z :”TO ZIF X>YIF Y>Z?X,Y,ZELSEIF X>Z?X,Z,YELSE?Z,X,YENDIFENDIFELSE && X<YIF Y<Z?Z,Y,XELSEIF X>Z?Y,X,ZELSE?Y,Z,XENDIFENDIFENDIFSET TALK ONRETU用CASE 实现(此种要求有若干种实现方式,只给出一种):SET TALK OFFCLEA ALL &&清自定义变量,关闭和本程序不相关的其他文件CLEA &&清屏INPUT “INPUT A NUMBER TO X :”TO XINPUT “INPUT A NUMBER TO Y :”TO YINPUT “INPUT A NUMBER TO Z :”TO ZDO CASECASE X>YDO CASECASE Y>Z?X,Y,ZCASE X>Z?X,Z,YOTHER?Z,X,YENDCASEOTHER &&X<YDO CASECASE X>Z?Y,X,ZCASE Y>Z?Y,Z,XOTHER?Z,Y,XENDCASEENDCASESET TALK ONRETU2.求0-999的水仙花数SET TALK OFFCLEACLEA ALLFOR I=0 TO 999A=VAL(LEFT(STR(I,3),1))B= V AL(SUBSTR(STR(I,3),2,1))C=V AL(RIGHT(STR(I,3),1))IF A^3+B^3+C^3=I?IENDIFENDFORSET TALK ONRETU3.利用循环和CASE语句实现SET TALK OFFCLEACLEA ALLDO WHILE .T.INPUT " INPUT A NUMBER TO X:" TO XIF X=0EXITENDIFDO CASECASE X=1?'壹'CASE X=2?'贰'CASE X=3?'叁'CASE X=4?'肆'CASE X=5?'五'CASE X=6?'陆'CASE X=7?'柒'CASE X=8?'捌'CASE X=9?'玖'ENDCASEENDDOSET TALK ONRETU4.注意ASC码的判别SET TALK OFFCLEACLEA ALLACCE 'INPUT A SERIAL OF CHARACTERS TO S:' TO S NZM=0 &&字母个数NSZ=0 &&数字个数NKG=0 &&空格个数FOR I=1 TO LEN(S)C=UPPER(SUBSTR(S,I,1))IF ASC(C)<91 AND ASC(C)>64NZM=NZM+1ENDIFIF ASC(C)<58 AND ASC(C)>47NSZ=NSZ+1ENDIFIF ASC(C)=32NKG=NKG+1ENDIFENDFOR?'字母个数为:',NZM?'数字个数为:',NSZ?'空格个数为:',NKG?'其他字符个数为:',LEN(S)-NZM-NSZ-NKGSET TALK ONRETU5.本题使用依附自定义函数实现依附自定义函数方式SET TALK OFFCLEACLEA ALLINPUT ' INPUT A NUMBER TO TO R:' TO XINPUT ' INPUT A NUMBER TO TO r:' TO y?AREA(X)-AREA(Y)SET TALK ONRETUFUNCTION AREAPARA RRETU PI()*R*RENDFUNC子程序方式*主程序MAIN.PRGSET TALK OFFCLEACLEA ALLINPUT ' INPUT A NUMBER TO TO R:' TO XINPUT ' INPUT A NUMBER TO TO r:' TO y?AREA(X)-AREA(Y)SET TALK ONRETU*子程序AREA.PRGPARA RRETU PI()*R*RRETU6 平行四边形打印(本程序有若干种不同的实现方式,行列数可以自己改动)SET TALK OFFCLEACLEA ALL?SPACE(7)FOR I=1 TO 12??"*"ENDFORFOR I=1 TO 6?SPACE(7-I)+"*"+SPACE(10)+"*"ENDFOR?FOR I=1 TO 11??"*"ENDFORSET TALK ONRETU7. 假设表已经存在。
vfp编程练习题

vfp编程练习题VFP(Visual FoxPro)是一种基于对象的数据库管理系统和编程语言,广泛用于数据处理和应用开发。
本文将为你介绍一些VFP编程练习题,帮助你提高VFP编程技能。
练习一:计算器应用程序编写一个简单的VFP应用程序,实现基本的计算器功能。
程序应该有一个用户界面,包括数字按钮和操作符按钮。
用户可以选择数字按钮输入数字,并使用操作符按钮进行加、减、乘、除等运算。
程序应能正确处理用户输入并返回正确的计算结果。
练习二:学生成绩管理系统设计一个学生成绩管理系统,包括学生信息的录入和查询功能。
使用VFP编写程序,能够实现学生信息的添加、修改和删除,以及查询学生的成绩和排名等功能。
你可以使用数据库来存储学生信息,并使用VFP提供的数据库操作函数进行数据的读写。
练习三:图书馆管理系统开发一个简单的图书馆管理系统,能够实现图书的借阅和归还功能。
使用VFP编写程序,设计用户界面,包括图书的添加、删除和查询功能,以及借阅和归还图书的操作。
你可以使用数据库来存储图书和读者的信息,并使用VFP提供的数据库操作函数来管理数据。
练习四:商品销售分析编写一个VFP应用程序,用于对商品销售数据进行分析。
程序应能读取销售数据并对商品的销售情况进行统计和分析,包括销售额、销售量、销售排行等。
通过图形化界面展示分析结果,帮助用户更好地了解商品的销售情况,并提供数据导出等功能。
练习五:音乐播放器使用VFP编写一个简单的音乐播放器程序。
程序应具备基本的音乐播放功能,包括选择音乐文件、播放、暂停、停止等。
你可以使用VFP提供的多媒体函数来实现音乐播放功能,并设计用户界面,提供友好的操作界面和交互体验。
总结:通过完成以上VFP编程练习题,你可以提高自己的VFP编程技能,并熟悉VFP的应用开发过程。
这些练习涵盖了常见的应用场景,可以帮助你更好地理解和掌握VFP编程。
希望你能够充分利用这些练习题,不断学习和提升自己的编程技能。
Visualfoxpro程序设计练习题及答案

Visual foxpro程序设计练习题求[10,1000]内所有能被被7和9中至少一个数整除的整数之个数。
答案:236n=0for i=10 to 1000if mod(i,7)=0 or mod(i,9)=0n=n+1endiendf?n求[101,299]内所有能被2整除但不能同时被3和5整除的整数之和。
答案:18630s=0for i=101 to 299if mod(i,2)=0 and mod(i,3)<>0 or mod(i,5)<>0s=s+iendiendf?s3、求100以内最大的自然数n,使得从1开始的连续n个自然数的倒数之和小于3.5。
答案:18s=0for i=1 to 100s=s+1/iif s>=3.5exitendiendf?i-14、求100以内最小的自然数n,使得从1开始的连续n个自然数的立方之和大于30000。
答案:25s=0for i=1 to 100s=s+i^3if s>30000exitendiendf?i5、求出100以内使得算式1*2+2*3+…+n*(n+1)的值小于5000的最大的自然数n。
答案:23s=0for i=1 to 100s=s+i*(i+1)if s>=5000exitendiendf?i-16、求出100以内使得算式1/(1*1)+1/(2*2)+…+1/(n*n)的值小于1.6的最大的自然数n。
答案:21s=0for i=1 to 100s=s+1/i^2if s>=1.6exitendiendf?i-17、某国今年的人口总数为1亿,若以每年4%的速度递增,试求出至少要再过几年该国人口总数才会翻一翻。
答案:18n=0x=1do while x<2x=x*(1+0.04)n=n+1enddo?n8、设等比数列:1,3,9,27,…。
求使得此数列的前n项之和大于2345678的最小的自然数n。
vfp 练习题

vfp 练习题VFP 练习题Visual FoxPro (VFP) 是一种被广泛使用的数据库管理系统和编程语言,它具有强大的数据处理和界面设计功能。
对于想要提升自己在 VFP 方面技能的开发者来说,练习题是一种非常有效的学习方法。
通过解决一系列的练习题,开发者们可以加深对 VFP 的理解并提高自己的编程能力。
练习题一:数据查询与筛选在 VFP 中,数据查询是一个常见且重要的操作。
通过练习题,我们可以学习如何使用 VFP 查询语言来获取所需的数据。
例如,可以设计一个练习题,要求开发者查询一个学生信息表,找出所有年龄在 18 到 25 岁之间的学生,并按照成绩从高到低排序。
这个练习题可以帮助开发者熟悉 VFP 的查询语法,并了解如何使用排序功能。
练习题二:表格操作与关联在实际的应用中,经常需要对表格进行增删改查的操作。
通过设计一个练习题,要求开发者实现对一个员工信息表的增删改查功能,可以让开发者熟悉 VFP 中的表格操作命令,如 APPEND、DELETE、EDIT 等,并了解如何通过关联两个表格来实现更复杂的查询。
练习题三:报表设计与打印在许多应用中,生成漂亮且格式良好的报表是非常重要的。
通过设计一个练习题,要求开发者设计一个销售报表,包括销售额、销售数量等信息,并能够将报表打印出来。
这个练习题可以帮助开发者熟悉 VFP 中的报表设计工具,如报表设计器,以及打印命令,如 REPORT FORM 和 SET PRINTER TO。
练习题四:界面设计与用户交互良好的界面设计和用户交互是一个应用的重要组成部分。
通过设计一个练习题,要求开发者设计一个简单的学生信息管理系统,包括添加学生、修改学生信息、删除学生等功能,并能够通过界面与用户进行交互。
这个练习题可以帮助开发者熟悉 VFP 中的界面设计工具,如表单设计器,以及如何与用户进行交互,如MESSAGEBOX 和 INPUTBOX。
练习题五:错误处理与调试在开发过程中,错误处理和调试是非常重要的技能。
VF程序设计经典例题

1. 求园的面积(要求判断半径是否合理)CleaInpu ‘r=’ to rIf r>0S=3.14*r*r?sElse?’半径错误!’Endif2. 求分段函数Y 的值Clea Inpu ‘x=’If x>0Y=2*x+5ElseIf x=0Y=xElseY=abs(x)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 case2x +5 x>0 x x=0 | x | x<0Case cj>=90?’优’Case 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 4For j=1 to i??’*’Endfor?EndforCleaFor i=1 to 4For j=1 to 4-i??’ ’ &&有一个空格EndforFor j=1 to 2*i-1??’*’* **** * ******** **** ** *** *** ******* *** *** ** ***** ****** ** **** * ******* ***** *?EndforCleaFor i=1 to 4For j=1 to 4-i??’’&&有一个空格EndforFor j=1 to i??’*’Endfor?Endfor13.判断一个整数是否素数CleaInpu ‘x=’ to xFor i=2 to x-1If mod(x,i)<>0LoopElseExitEndifEndforIf i>x-1?x,’是素数’Else?x,’不是素数’Endif14.判断十个整数是否素数CleaFor j=1 to 10Inpu ‘x=’ to xFor i=2 to x-1If mod(x,i)<>0LoopElseExitEndifEndforIf i>x-1?x,’是素数’Else?x,’不是素数’Endif15.找出两个数的大数和小数CleaInpu ‘x=’ to xInpu ‘y’to yIf x>y?x,’大’,y,’小’Else?y,’大’,x,’小’Endif16.找出三个数的最大数和最小数CleaInpu ‘x=’ to xInpu ‘y’to yInpu ‘z’to zIf x<yt=xx=yy=tElseIf x<zt=xx=zz=tendifendifif y<zt=yy=zz=tendif?x,’是最大数’,z,’是最小数’17.找出十个数的最大数和最小数CleaDime a(10)For i=1 to 10Inpu to a(i)EndforMax=a(1)Min=a(1)For i=2 to 10If max<a(i)Max=a(i)ElseIf min>a(i).Min=a(i)EndifEndifEndfor?max,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) endforendformax=a(1,1)min=a(1,1)for i=1 to 2for j=1 to 3if max<a(I,j)max= a(I,j)elseif min> a(I,j)min= a(I,j)endifendifendforendfor?’max=’,max,’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 9Max=a(i)Num=iFor j=i+1 to 10If max<a(j)max=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)=tEndifendforEndforEndfor21.输出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)endforendfor??b(I,j)Endfor?endfor24.求三位数中的所有水仙花数(即指一个三位数,其各位数字立方和等于该数本身)Cleafor x=100 to 999a=int(x/100)b=mod(int(x/10),10)c=mod(x,10)if x==a*a*a+b*b*b+c*c*c?xEndifendfor25.求100以内的所有完数(即一个数恰好等于除它本身外的所有因子之和)Cleafor i=3 to 100s=0for j=1 to i-1if mod(i,j)==0s=s+jendifendforif i==s?iendif26.已知三角形的三边(从键盘输入),求其面积(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)?"方程有两个相等实数根:",relsex1=(-b+sqrt(i))/(2*a)x2=(-b-sqrt(i))/(2*a)?"方程有两个不相等实数根:",x1,x2endifendif28.输入任意一个五位整数,前后对应位置上的数据进行交换重新排列(即逆序排列)(例: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.找出一个3x3矩阵的“鞍点”,即该位置上的元素在该行上最大,在该列上最小(也有可能没有鞍点)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 3max=a(i,1)col=1for j=2 to 3if max<a(i,j)max=a(i,j)col=jendifendformin=a(1,col)row=1for k=2 to 3if min>a(k,col)min=a(k,col)row=kendifendforif max==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+1endifendforendfornext?s32.一只猴子一天从山上摘来一袋桃子,从这天开始,它每天都要把袋中的桃子平分为二堆,吃掉其中的一堆,然后再从剩下的桃中拿出一个解谗,等到第10天,它发现袋中只有一只桃可吃啦,问猴子总共摘了多少桃。
vfp数据库程序设计程序示例

vfp数据库程序设计程序示例如何进行VFP数据库程序设计的示例。
请注意,vfp数据库是Visual FoxPro数据库的缩写。
第一步:理解VFP数据库编程的基础知识在进行VFP数据库程序设计之前,我们需要先理解VFP数据库编程的基础知识。
VFP数据库是一种关系型数据库,它使用表格来组织和管理数据。
每个表格包含一系列的字段,并且可以在表格之间建立关系。
VFP数据库还支持SQL查询语言,可以方便地查询和操作数据。
第二步:创建数据库在VFP中创建数据库非常简单。
首先,打开VFP软件,在菜单栏中选择"数据库",然后选择"新建"。
接下来,为数据库指定一个名称,选择保存位置,并点击"确定"。
数据库创建成功后,我们可以在VFP软件中看到它的图标。
第三步:创建表格在VFP数据库中,表格用于存储和管理数据。
要创建一个表格,首先确保数据库窗口处于活动状态。
然后,在数据库窗口中右键单击,选择"新建",然后选择"表格"。
接下来,为表格指定一个名称,并定义字段。
在每个字段中,我们可以定义字段名称、字段类型、字段长度以及其他属性。
创建完所有字段后,点击"确定" 完成表格创建。
第四步:插入数据在VFP数据库中插入数据十分简单。
首先,双击要插入数据的表格,打开表格编辑窗口。
然后,在表格编辑窗口中,点击"插入"按钮。
接下来,输入要插入的数据,每个字段占一列,然后点击"确定" 完成数据插入。
可以重复这个过程,插入更多的数据。
第五步:查询数据VFP数据库支持使用SQL查询语言来查询和操作数据。
在VFP软件中的菜单栏中选择"工具",然后选择"查询",打开查询编辑器。
在查询编辑器中,我们可以输入SQL查询语句。
例如,要查询某个表格中所有记录的所有字段,可以使用以下SQL查询语句:"SELECT * FROM table_name"。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
适用班级:1004501/1004502 VFP程序设计示例与练习(三)^Q^ VFP程序设计示例与练习三(因子)
1.从键盘输入一个正整数m,求m的不同因子有多少个
clear
set talk off
input ‘请输入一个正整数:’ to m
t=0 &&计数器,统计m所含因子的个数
for i=1 to m
if mod(m,i)=0 &&若为真,则找到一个因子
t=t+1
endif
endfor
? t
set talk on
return
2.从键盘输入一个正整数m,求m的真因子共有多少个(真因子是指除m以外的所有因子)clear
set talk off
input ‘请输入一个正整数:’ to m
t=0 &&计数器,统计m所含因子的个数
for i=1 to int(m/2) &&也可以写成i=1 to m-1 if mod(m,i)=0
t=t+1
endif
endfor
? t
set talk on
return
3.某整数N的所有真因子之和为S,若S<N,则称N为盈数。
从键盘输入一个正整数N,判断N 是否盈数。
clear
set talk off
input ‘请输入一个正整数:’ to n
s=0 &&存放因子之和
for i=1 to int(n/2) &&同例2
if mod(n,i)=0
s=s+i
endif
endfor
if s<n
?‘n是盈数’
else
? ‘n不是盈数’
endif
set talk on
return
4.某整数N的所有真因子之和为S,若S=N,则称N为完数,求[1,1000]中有多少个完数。
clea
set talk off
t=0
for n=1 to 1000
s=0 &&注意,对每个数求因子之前,因子的和为0
for i=1 to int(n/2) &&求每个数的真因子及其和if mod(n,i)=0
s=s+i
endif
endfor
if s=n &&是完数的条件
t=t+1
endif
endfor
?t
set talk on
return
5.求出18000中含有质因数的个数(相同的重复计数,例如,180中含有5个质因数:2、2、3、3、5)。
(质因数,质因子,即素数因子)clear
x=18000
n=0 &&计数器,记录质因子个数
k=2
do while x>1 &&求解过程中x的值会越来越小if mod(x,k)=0
n=n+1 &&每次求得的第一个因子肯定为质因子
x=int(x/k) &&求得第一个因子后即改变x的值
loop
*求得第一个因子后即离开循环求新x的第一个因子endif
k=k+1 &&若k不是约数,则继续判断k+1 enddo
? n
【练习】
1.写程序,求[1,1000]中有多少个盈数?
(答案:751)2.某整数N的所有真因子之和为S,若S>N,则称N为亏数。
求[100,1000]中最小的亏数是几。
(答案:100)3.若某整数N的所有因子之和是N的倍数,则称N为多因子完备数,如28,其所有因子之和为56。
求[1,500]之间有多少个因子完备数。
(答案:5)4.求[100,500]中含有偶数个真因子的整数共有多少个。
(答案:13)5.有些整数刚好是其因子个数的整数倍,如24有8个因子。
[1,300]中有多少个能被其因子数目整除的数?(答案:35)6.求[100,999]中含有偶数个质因子的整数的个数(相同的质因子重复计数)(答案:444)(提示:内外层循环变量不能相同!)。