您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > VisualFoxPro程序设计基础实例
实用标准文案精彩文档VisualFoxPro程序设计基础实例▲表文件CJ.DBF情况:学生成绩数据库的表文件cj.dbf结构为:字段名字段类型宽度小数位学号字符型6姓名字符型10英语数值型62高等数学数值型62计算机应用数值型62总分数值型72平均分数值型62建立表文件cj.dbf结构显示如下:输入一些学生成绩。例2-1计算表CJ.DBF中的平均分和总分的程序settalkoffCLOSEALLUSEc:\000\CJREPLACEALL总分WITH英语+数学+计算机应用REPLACEALL平均分WITH总分/3LIST执行结果为:实用标准文案精彩文档例2-2统计成绩表CJ.DBF中平均分大于90分的所有学生数目。SETTALKOFFCLEARUSEc:\000\CJM=0SCANFOR平均分90DISPLAYM=M+1ENDSCAN?总数为:,MUSERETURN执行结果:例2-3统计成绩表CJ.DBF中所有英语大于等于75分的学生数目。SETTALKOFFUSEC:\000\CJMCOUNT=0FORREC=1TORECCOUNT()&&RECCOUNT()为该库中的记录数GORECIF英语75LOOPENDIFDISPLAYMCOUNT=MCOUNT+1ENDFOR?英语成绩不小于75分的总数为:,MCOUNTUSERETURN执行结果:实用标准文案精彩文档例2-4显示表CJ.DBF中英语成绩小于90分的学生。SETTALKOFFCLEARUSECJDOWHILE.T.(**或DOWHILE.NOT.EOF())IF英语=90SKIP(或**LOOP)ENDIFDISPLAYWAIT按任一键继续显示.…SKIPENDDOUSERETURN执行结果:例2-5对成绩表CJ.DBF查询,若首记录的平均分数大于60分,则显示及格;成绩不及格”否则显示不及格。SETTALKOFFCLEARUSEC:\000\CJIF平均分60?姓名+成绩及格实用标准文案精彩文档ELSE?姓名+成绩不及格ENDIFUSERETURN执行结果如下:例2-6对成绩表CJ.DBF查询,根据该学生的平均分进行分类:优秀90=平均分优良80=平均分90良好70=平均分80及格60=平均分70不及格平均分60程序为:SETTALKOFFCLEARUSEC:\000\CJDOCASECASE平均分=90?姓名+:成绩优秀CASE平均分=80?姓名+:成绩优良CASE平均分=70?姓名+:成绩良好CASE平均分=60?姓名+:成绩及格OTHERWISE?姓名+:成绩不及格ENDCASEUSERETURN执行结果如下:例2-7设计5乘5的乘法表settalkoffclearx=1dowhilex=5y=1实用标准文案精彩文档dowhiley=xs=x*y??str(y,1)+*+str(x,1)+=+str(s,2)+y=y+1enddo?x=x+1enddo执行结果:例2-8DOCASE……ENDCASE命令的嵌套用法.SETTAlKOFFCLEAR?1…………录入?2………查询?3…………修改?4…………打印ACCEPT输入选择(0-4):TOMSELECTDOCASECASEMSELECT=lDOAPP&&录入程序CASEMSELECT=2DOQUER&&查询程序CASEMSElECT=3DOMOD&&修改程序CASEMSELECT=4CLEAR?1--打印A类表?2--打印B类表?3--打印C类表ACCEPT输入选择(1-3):TOMYDOCASECASEMY=1DOPRINTACASEMY=2DOPRINTBCASEMY=3DOPRINTCENDCASE例2-9显示成绩库CJ.DBF中记录号为偶数的前三个学生记录。SETTALKOFF实用标准文案精彩文档CLEARUSEC:\000\CJFORREC=2TO6STEP2GORECDISPLAYSKIP2ENDFORUSERETURN执行结果:例2-10编程计算:S=l!+2!+3!+...+10!的值。要求用过程求阶乘。SETTALKOFFCLEARPUBLICTS=0&&FORN=1TO10forn=1to10DOJCS=S+TENDFOR?S=,SSETTALKONRETURNPROCEDUREJC&&过程放在调用它的上层程序之后PRIVATES&&这里的S是局部变量,与主程序中的S占用不同的存贮单元T=1FORS=1TONT=T*S&&这里T为N!的值ENDFOR?str(N,2)+!=+str(T,8)&&?STR(N,2)RETURN执行结果:实用标准文案精彩文档例2-11主程序MAIN.PRG中调用过程SUBl,SUB2,主程序如下:?#######1DOSUB1?#######2DOSUB2?#######3RETURN&&过程SUB1.PRG如下:PROCEDURESUB1?********1RETURN&&过程SUB2.PRG如下:PROCEDURESUB2?*******2RETURN执行结果:例2-12求职工的平均工资(职工信息档案为:DA.DBF)clearsettalkoffusec:\000\daaverageall基本工资toa?职工平均工资:+str(a,8,2)usesettalkonreturn执行结果:例2-13执行以下程序段:实用标准文案精彩文档PUBLICAPRIVATEB?A=,A?B=,B例2-14显示库文件CJ.DBF的姓名及总分字段,要求用模式符定义显示总分字SETTALKOFFCLEARusec:\000\cjDOWHILE.NOT.EOF()@ROW()+1,4SAY姓名:@ROW(),COL()+1SAY姓名PICTURE@JXXXXXXXX@ROW(),COL()+1SAY总分:@ROW(),COL()+1SAY总分PICTURE999.99SKIPENDDO执行结果:例2-15根据下面程序求出结果。settalkoffclearx1=4?dowhilex1=1x2=1dowhilex2x1??x2*x1x2=x2+1enddo?x1=x1-1enddosettalkon执行结果:例2-16字母大小写变换程序。settalkoffclear实用标准文案精彩文档accept请输入一字符串:toxi=1s=dowhilei=len(X)s=substr(x,i,1)+s&&s=s+substr(x,i,1)i=i+1enddo?X=,upper(x)?s=,lower(s)settalkon执行结果:例2-17求1--10的阶乘settalkoffcleari=1dowhile.t.k=1j=1dowhileji+1k=k*jj=j+1enddo?ki=i+1ifi10exitendifenddoreturn执行结果:实用标准文案精彩文档例2-18字符串颠倒程序settalkoffx=子女y=i=len(x)dowhilei=1y=y+substr(x,i-1,2)i=i-2enddo?yreturn执行结果:例2-19计算100以内自然数的和settalkoffstore0tox,ydowhile.t.x=x+1y=y+xifx=100exitendifenddo?y+str(y,5)return执行结果:例2-20写数学公式程序:Y=3*X(x0),Y=0(x0);settalkoffclearinput请输入X的值toxifx0?Y的值等于,3*xelse?Y的值等于,0endif例2-21求三个数的最大数;clearinput请输入A的值toAinput请输入B的值toBinput请输入C的值toC实用标准文案精彩文档ifA=BandA=C?MAX=,AelseifB=AandB=C?MAX=,Belse?MAX=,Cendifendif例2-22求三个数的最大数;clearinput请输入A的值toAinput请输入B的值toBinput请输入C的值toC?max(A,B,C)例2-23求用年月日表示今天。clearxdate=str(year(date()),4)+年xdate=xdate+str(month(date()),2)+月xdate=xdate+ltrim(str(day(date()),2))+日?xdate例2-24显示课号为C301的记录;settalkoffclearusec:\000\student.dbfm=0scanfor课号=C301displaym=m+1endscan?总数为:,musereturn执行结果:实用标准文案精彩文档例2-25统计分数80的人数;settalkoffclearusec:\000\student.dbfn=0scanfor分数80displayn=n+1endscan?总数为:,nusereturn执行结果:例2-26求100以内奇数的和;settalkoffclears=0fori=1to99step2s=s+iendfor?s=,sreturn执行结果:例2-27求1到11中奇数的和;settalkoffclears=0fori=11to1step-2s=s+iendfor?s=,s实用标准文案精彩文档return执行结果:例2-28求出下列程序执行的结果;settalkoffclears=0n=1K=1dowhilek=10ifint(k/2)#k/2s=s+kelsen=n+kendifk=k+1enddo?s=,s?n=,nsettalkon程序执行的结果为:例2-29求下列程序执行的结果;settalkoffclearstore0tox,ydowhilex101x=x+1ifmod(x,3)=0loopendify=y+1enddo?y=??str(y,2)settalkon程序执行的结果:y=68例2-30求下列程序执行的结果;实用标准文案精彩文档settalkoffcleardimensiona(7)i=1dowhilei=7a(i)=3*i+1i=i+1enddo?a(a(1)+1),a(a(3)-5)-1settalkon程序执行的结果:例2-31求下列程序执行的结果;settalkoffclearfori=4to1step-1j=1s=*dowhilej2*i-1s=s+*j=j+1enddo@ROW()+1,20-i+1saysendfor程序执行的结果:
本文标题:VisualFoxPro程序设计基础实例
链接地址:https://www.777doc.com/doc-6129989 .html