编程练习06
以下是小弟的码,请各位前辈多多的指教哦{:face (396):};~ 编写一个程序,要求用户输入小时数和分钟数。
;~ 在MAIN()函数中,传递给一个void函数,后者以下面这样的格式显示这两个值:
;~ Enter the Number of hours : 9
;~ Enter the Number of minutes : 28
;~ Time : 9:28
$Form1 = GUICreate("练习",200,150,-1,-1)
GUICtrlCreateLabel("小时数:",5,2)
GUICtrlCreateLabel("分钟数:",5,22)
$input = GUICtrlCreateInput("",65,2,80,15)
$input1 = GUICtrlCreateInput("",65,22,80,15)
$button = GUICtrlCreateButton("确定",60,40,30,20)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $button
main()
EndSwitch
wend
Func main()
$Rinput = GUICtrlRead($input)
$Rinput1 = GUICtrlRead($input1)
shizhong($Rinput,$Rinput1)
EndFunc
Func shizhong($Rinput,$Rinput1)
If $Rinput > 23 Or $Rinput < 0 Or $Rinput1 > 59 Or $Rinput1 < 0 Then
MsgBox(0,'提示','请输入正确的小值和分钟值')
ElseIf 1 = StringIsInt($Rinput) And 1 = StringIsInt($Rinput1)Then
MsgBox(0,'你输入的时间','Enter the Number of hours : '&$Rinput _
&@CRLF&'Enter the Number of minutes : '&$Rinput1 _
&@CRLF&'Time : '&$Rinput&':'&$Rinput1)
Else
MsgBox(0,'提示','请输入整数')
EndIf
EndFunc 先判断整数,再看是否小时或分钟数 回复 1# 魔导
你这么喜欢用func ???很好玩啊???有事没事别弄得很复杂似的,到时候把自己都搞蒙了。
#include <EditConstants.au3>
$Form1 = GUICreate("练习",200,150)
GUICtrlCreateLabel("小时数:",5,2)
GUICtrlCreateLabel("分钟数:",5,22)
$input = GUICtrlCreateInput("",65,2,80,15,$ES_NUMBER)
$input1 = GUICtrlCreateInput("",65,22,80,15,$ES_NUMBER)
$button = GUICtrlCreateButton("确定",60,40,30,20)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $button
$Rinput = GUICtrlRead($input)
$Rinput1 = GUICtrlRead($input1)
If $Rinput<24 And $Rinput> 0 And $Rinput1<60 And $Rinput1> 0 And StringLen($Rinput)<3 And StringLen($Rinput1)<3 then
MsgBox(0,'你输入的时间','Enter the Number of hours : '&$Rinput _
&@CRLF&'Enter the Number of minutes : '&$Rinput1 _
&@CRLF&'Time : '&$Rinput&':'&$Rinput1)
Else
MsgBox(0,'提示','请输入正确的小时数和分钟数')
EndIf
EndSwitch
wend 你看一下你原来的代码:输入以下图片中……
回复魔导
你这么喜欢用func ???很好玩啊???有事没事别弄得很复杂似的,到时候把自己都搞蒙了 ...
半芯竹 发表于 2012-5-8 03:25 http://www.autoitx.com/images/common/back.gif
没没没,前辈。真是道出了小弟的心声啊,小弟自己把自己都弄得晕乎乎的。
是.....题目要求: 用一个函数 传递参数 给另一个函数
小弟才这么写的,真抱歉 给您添麻烦了{:face (460):} 本帖最后由 魔导 于 2012-5-8 08:41 编辑
回复 4# 半芯竹
前辈的意思是把值限制为两位数吗?
请前辈在帮看看 是不是这样的:
$Form1 = GUICreate("练习",200,150,-1,-1)
GUICtrlCreateLabel("小时数:",5,2)
GUICtrlCreateLabel("分钟数:",5,22)
$input = GUICtrlCreateInput("",65,2,80,15)
$input1 = GUICtrlCreateInput("",65,22,80,15)
$button = GUICtrlCreateButton("确定",60,40,30,20)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $button
$Rinput = GUICtrlRead($input)
$Rinput1 = GUICtrlRead($input1)
If 0 = StringIsInt($Rinput) Or 0 = StringIsInt($Rinput1) Or $Rinput > 23 Or $Rinput < 0 Or $Rinput1 > 59 Or $Rinput1 < 0 Or StringLen($Rinput) > 2 Or StringLen($Rinput1) > 2 Then
MsgBox(0,'提示','请输入正确的小时值和分钟值'&@crlf&'《小时值:0 至 23整数,分钟值:0 至 59整数》')
Else
MsgBox(0,'你输入的时间','Enter the Number of hours : '&$Rinput _
&@CRLF&'Enter the Number of minutes : '&$Rinput1 _
&@CRLF&'Time : '&$Rinput&':'&$Rinput1)
Endif
EndSwitch
wend 先判断整数,再看是否小时或分钟数
whitehead 发表于 2012-5-7 22:10 http://www.autoitx.com/images/common/back.gif
小弟改为 ( 先是否整形再 是否小时再是否分钟 再是否两位数以内)
请问先判断是否整形是不是为了方便以后判断 位数?
修改后的码发在 6楼请前辈再帮看看。。 本帖最后由 半芯竹 于 2012-5-8 10:05 编辑
回复 6# 魔导
难道我的代码还不够清晰吗?为什么你喜欢这样表达?在INPUT里加个扩展不就可以只限输入数字了吗?
If 0 = StringIsInt($Rinput) Or 0 = StringIsInt($Rinput1) Or $Rinput > 23 Or $Rinput < 0 Or $Rinput1 > 59 Or $Rinput1 < 0 Or StringLen($Rinput) > 2 Or StringLen($Rinput1) > 2 Then
对比以下我的:
If $Rinput<24 And $Rinput> 0 And $Rinput1<60 And $Rinput1> 0 And StringLen($Rinput)<3 And StringLen($Rinput1)<3 then 我等只是新手学者,若有不对的地方,见谅。
高手未曾出现,我等半桶水者乱响了…… 回复 8# 半芯竹
回前辈的话代码已经够清晰了 喜欢这样的表达是因为小弟经验不足(想不出其它办法所至)
替换这个码后小弟又出现了这类的问题: 回复 10# 魔导
如8楼建议,改成
$input = GUICtrlCreateInput("",65,2,80,15, $ES_NUMBER)
就只能输入数字,也就不用判断是否整数了 回复 11# whitehead
改这个码是在3楼 的,8楼 的And小弟觉得有问题
页:
[1]