注册 登录
编程论坛 VFP论坛

创建函数

sarge_xp 发布于 2022-05-06 07:03, 2440 次点击
根据学生的成绩评出“优、良、中、及格、差”五个等级,90分以上,优;80-89 良;70-79 中;60-69 及格,小于60 差。创建一个函数,输入是学生的成绩,输出是“优、良、中、及格、差”中的一个

这个函数能否创建在对象的command1.click 中 ?怎么使用 ?
17 回复
#2
a575985872022-05-06 07:30
用分支判断不行吗?
#3
a575985872022-05-06 07:33
给出一个分数 然后进行判断
DO CASE
   CASE lExpression1
   [Commands]
   [CASE lExpression2
   [Commands]]
   ...
   [CASE lExpressionN
   [Commands]]
   [OTHERWISE
   [Commands]]
ENDCASE
#4
laowan0012022-05-06 08:38
调试的时候可以放在command.click(参数)里,调试完成了,还是做成函数供各处调用
function 函数名(参数...)
...
endfunction
#5
厨师王德榜2022-05-06 09:19
如果是gui界面的话,做成表单的自定义方法最佳,可反复调用.
#6
hu9jj2022-05-06 09:24
楼主需要的是鱼,楼上各位给的却是渔,从渔到鱼还有不少的距离。
#7
xuminxz2022-05-06 15:47
PARAMETERS cj
PRIVATE cjstr
cjstr="差差差差差差及中良优优"
cj=cj+0.000001
RETURN SUBSTRc(cjstr,CEILING(cj/10),1)
以上方法成绩用的字数必须一样,否则按字数最多的用空格补齐。调用VFP自带的foxtools.fll中的wordnum()函数更灵活。
PARAMETERS cj
SET LIBRARY TO foxtools.fll
PRIVATE cjstr
cjstr="差 差 差 差 差 差 及格 中 良好 优 优"
cj=cj+0.000000001
RETURN wordnum(cjstr, CEILING(cj/10))


[此贴子已经被作者于2022-5-6 15:58编辑过]

#8
my23182022-05-06 16:10
以下是引用xuminxz在2022-5-6 15:47:46的发言:

PARAMETERS cj
PRIVATE cjstr
cjstr="差差差差差差及中良优优"
cj=cj+0.000001
RETURN SUBSTRc(cjstr,CEILING(cj/10),1)
以上方法成绩用的字数必须一样,否则按字数最多的用空格补齐。调用VFP自带的foxtools.fll中的wordnum()函数更灵活。
PARAMETERS cj
SET LIBRARY TO foxtools.fll
PRIVATE cjstr
cjstr="差 差 差 差 差 差 及格 中 良好 优 优"
cj=cj+0.000000001
RETURN wordnum(cjstr, CEILING(cj/10))

#9
zxplhzlt2022-05-07 07:51
ICASE(成绩>=90,"优",成绩>=80,"良",成绩>=70,"中",成绩>=60,"及格","差")
#10
a575985872022-05-07 12:55
使用9楼的函数最精简

成绩 = VAL(INPUTBOX("请输入学生成绩","成绩分类 "))
?ICASE(成绩>=90,"优",成绩>=80,"良",成绩>=70,"中",成绩>=60,"及格","差")
#11
sarge_xp2022-05-08 18:47
回复 7楼 xuminxz
CEILING() 是什么函数,怎么用 ?
#12
sarge_xp2022-05-08 19:53
回复 4楼 laowan001
只有本站会员才能查看附件,请 登录


调试出错了
#13
csyx2022-05-08 20:56
给条鱼都不会吃,你们还渔毛线
#14
sdta2022-05-08 21:01
以下是引用sarge_xp在2022-5-8 18:47:31的发言:

CEILING() 是什么函数,怎么用 ?

查阅VFP帮助文档,楼主太懒了
#15
mywisdom882022-05-09 08:35
以下是引用sarge_xp在2022-5-8 18:47:31的发言:

CEILING() 是什么函数,怎么用 ?

x1=1.0
x2=1.5
x3=1.9
?ceiling(x1) && 1
?ceiling(x2) && 2
?ceiling(x3) && 2

#16
mywisdom882022-05-09 08:47
以下是引用sarge_xp在2022-5-8 19:53:24的发言:



调试出错了

函数格式
1.
function 函数名[参数1,参数2,参数n]
*!* 函数主内容
endfunc

2.
function 函数名(参数1,参数2,参数n)
*!* 函数主内容
endfunc

3.
function 函数名
Parameters 参数1,参数2,参数n
*!* 函数主内容
endfunc

上面都是没返回值的,默认返回 .t.
4.
function 函数名
Parameters 参数1,参数2,参数n
Local c返回值
*!* 函数主内容
c返回值 = "xxxxx" && 根据需要,指定返回值
return c返回值
endfunc



#17
wengjl2022-05-09 08:55
以下是引用sarge_xp在2022-5-8 18:47:31的发言:

CEILING() 是什么函数,怎么用 ?


【名称】
CEILING()函数
【类别】
函数
【描述】
返回大于或等于指定数值表达式的下一个最高整数。
【原形】
CEILING(nExpression)
【参数】
nExpression
指定一个数值,CEILING( ) 返回其后续的整数。
【返回值】
数值型
【示例】
? CEILING(10.3) &&显示11
? CEILING(-10.3) &&显示-10


[此贴子已经被作者于2022-5-9 08:57编辑过]

#18
laowan0012022-05-09 09:00
以下是引用sarge_xp在2022-5-8 19:53:24的发言:



调试出错了

谢16楼更正
希望楼主多看帮助文件,我用了三十多年了,现在还经常会用到帮助文件
1