FOXPRO的作业问题~

XS表中登记着某年级学生某次考试的成绩,试编程显示出每班成绩最高者的姓名、性别和成绩。(在244服务器中已有XS表)。
缴交作业时,请把程序文件(\.prg文件)或表单文件(.scx文件和.sct文件)以及数据表文件(xs.dbf)文件压缩成一文件(文件名字为你的学号+姓名)
记录号 学号 班别 姓名 性别 考试成绩
1 L20061001 1 李大豪 男 612
2 L20061002 1 陈小鲁 男 598
3 L20061003 1 琐萍 女 600
4 L20061004 1 邬彬辉 男 624
5 L20061005 1 胡小芳 女 576
6 L20062001 2 林好勇 男 480
7 L20062002 2 孔祥娜 女 634
8 L20062003 2 李胜利 男 643
9 L20063001 3 冯晓强 男 612
10 L20063002 3 黄小国 男 589
11 L20063003 3 林丽婷 女 602
12 L20063004 3 张思军 男 641
13 L20063005 3 韩良珍 女 580
14 L20064001 4 毛思彬 男 592
15 L20064002 4 方小卿 女 600
16 L20064003 4 洪成功 男 613
问题补充:要生成程序文件(.prg文件)或表单文件(.scx文件和.sct文件)
试过了貌似都不行耶……
答对追加悬赏~~

第1个回答  2007-12-28
在VFP命令状态下输入:
modi comm cjcl
在当前目录下生成cjcl.prg程序文件,然后向程序中输入如下代码:

close data
set safe off
use xs &&打开给定的数据表
total on 班别 to bj &&形成一个班级库
sort on 班别,考试成绩/d to xs1 &&先按班级,再按成绩从高到低排序
use xs1 &&从第1个工作区(即A区)打开按分班级成绩由高到低的库
sele 2 &&从第2个工作区(即B区)打开班级库
use bj

do while !eof() &&一个班一个班地处理
sele 1
loca for 班别=b.班别 &&找到本班的最高分考生
? 班别,姓名,性别,考试成绩 &&显示出每班成绩最高者的姓名、性别和成绩
sele 2
skip &&继续处理下一个班
enddo

close data
set safe on

输入完毕,按<Ctrl>+w 保存。程序已经在vfp6下测试运行通过。把当前文件夹下面的cjcl.prg压缩成文件(文件名字为你的学号+姓名)即可
第2个回答  2007-12-30
去最大值.prg

clear
USE xs
n=0
GO top
DO while !EOF()
n=n+1
SKIP
ENDDO
以上代码算出一共有n条记录
DIMENSION a(n) 建立个数组,进行成绩比大小
GO top
FOR i=1 to n
a(i)=cj 成绩字段cj写进数组
skip
ENDFOR

FOR j=1 to n-1
IF a(j)>a(j+1) 数组比大小,取出最大
nmax=a(j)
a(j)=a(j+1)
a(j+1)=nmax
ENDIF
ENDFOR
LOCATE for a(j)=cj 定位记录指针
?xh,cj 打印记录

测试通过了才贴出来得
xh为表xs成绩字段
cj为成绩字段
把以上代码写进prg
运行即可得出最大成绩记录
最后一行?你要显示得字段即可

如果不会,先回去补基础
把中文注释全部删除

去最大值.prg

clear
USE xs
n=0
GO top
DO while !EOF()
n=n+1
SKIP
ENDDO

DIMENSION a(n)
GO top
FOR i=1 to n
a(i)=成绩
skip
ENDFOR

FOR j=1 to n-1
IF a(j)>a(j+1)
nmax=a(j)
a(j)=a(j+1)
a(j+1)=nmax
ENDIF
ENDFOR
LOCATE for a(j)=成绩
?学号,成绩

不知所谓,不懂装懂,毫无发言权叫得比那个还大声。大家都过来帮忙就算是不错了,楼主也够厉害的,不太明白么自己好好学习去,有什么问题就想办法去解决,找个莫明其妙的人出来破坏学习的气氛。不管你针对谁了,大家过来留下答案了就要心存感激。有什么问题你完全可以发百度消息寻求解决方法。而不是捧着80分当宝。

最后还是要严重鄙视一下这个匿名垃圾!本回答被提问者采纳
第3个回答  2007-12-29
你如果把所有的回答都复制是100%的不行,你把解释去掉,只留中间的程序,肯定行。要是你连如何向vFP中输入程序都不会,干脆回家抱孩子去吧。
第4个回答  2007-12-28
倒。。。VFP 还有人完呀?

FOXPRO的作业问题~
在VFP命令状态下输入:modi comm cjcl 在当前目录下生成cjcl.prg程序文件,然后向程序中输入如下代码:close data set safe off use xs &&打开给定的数据表 total on 班别 to bj &&形成一个班级库 sort on 班别,考试成绩\/d to xs1 &&先按班级,再按成绩从高到低排序 use xs1 &&从第...

请问一个foxpro的问题,谢谢!
1. 打开数据工作期窗口,关闭所有表,再做。或者执行 close all.重新打开再做。2. update xxtable set xxx=01 where xxx like "%济南%"

3道关于Visual FoxPro的简单问题求详解
1.设X=10,语句? VARTYPE("X")的输出结果是( B )因为此函数是测试()里面表达式的类型。"10"当然是 C 型。注意与?type("x")这个函数的区别,它是测试x的类型,当然是 N 型。2.在Visual FoxPro中说明数组后,数组的每个元素在未赋值之前的默认值是__.F.___3.{^2002.02.01}+{20...

FOXPRO问题
101 如果记录够的话,应该指针指向76+30=106条记录上,但没有这么多记录,所以指针指向文件结束标志,此时,记录号为101,eof()的值为真。

问几个关于foxpro的问题。。。高手帮下忙
再比如,若需要将字符串中的特殊字符用空格替换,同样可以用字符替换函数实现。了解了字符替换函数的原理和用法,对于处理字符串中的字符替换问题将更加得心应手。在实际编程中,合理使用字符串操作函数,可以大大提高代码的效率和可读性。希望上述内容能帮助到你解决关于foxpro的字符替换问题。

FoxPro的问题
1:你可以将所有记录打包在一个 宏 纪录里面,通过调用可实现多纪录。2:肯定不对!上述的可任意修改、保存后即可!3:修改时读取原始保存记录即可!4:你必须使用“另存为”5:这个好像是 重新检索 吧!

FOXPRO的问题
20”):replace all 学籍号 with "20"+学籍号 for 条件 (这个条件是逻辑表达式,如 班级='0708'等)以上我 假设 学籍号 为字符型字段,如果您的学籍号 为数值字段,用str(学籍号,2) 代替 "20",即:(如果所有的学号前都加“20”):replace all 学籍号 with +str(学籍号,2)+学籍号。

foxpro 的问题
select * from table1 where bj=50 or bj=51 or bj=52 或者 use table1 set filt to bj=50 or bj=51 or bj=52 list 或者直接 list all for bj=50 or bj=51 or bj=52

请问一道foxpro的问题
bof() 测试记录指针是否在文件头,就是第1条记录的前面。比如刚刚打开的一个表,use 职工表,此时记录指针指向第1条记录,bof()=.F.,再执行skip -1,则bof()=.T.(记录指针从第1条向前面再移动了一条)eof() 测试记录指针是否在文件尾,就是最后一条记录的后面。比如一个表共有10条记录,...

求教VFP的小问题!!!
如果数组存在,但其大小不足以包含所有信息,则 Visual FoxPro 自动增加数组大小,使得数组能容纳所有信息。如果数组超过了所需大小,Visual FoxPro 将截掉多余部分。如果数组存在,并且 ADIR( ) 函数由于没找到匹配文件而返回 0,则数组保持不变。如果数组不存在,并且 ADIR( ) 函数返回零,则不创建数组...

相似回答
大家正在搜