批处理写的一个小程序

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:14:10
@echo off
:start
set /p n=多少以内的运算
set /a f=%random%%%4
:main1
set /a a=%random%%%%n%
set /a b=%random%%%%n%
if %f%==1 goto test1
if %f%==3 goto test2
:main2
if %f%==0 set k=+ && set /a op=%a%+%b%
if %f%==1 set k=- &&set /a op=%a%-%b%
if %f%==2 set k=X && set /a op=%a%*%b%
if %f%==3 set k=/ && set /a op=%a%/%b%
set /p answer=%a% %k% %b% ^=
if %answer%==%op% (echo right) else (echo WRONG The right answer is %op% )
pause>nul
goto start
:test1
set /a t1=%a%-%b%
if /I %t1% geq 0 goto main2 else goto main1
:test2
set /a t2=%a%%%%b%
if %t2%==0 goto main2 else goto main1

有人可以帮我翻译一下吗?每一句各起到什么作用?谢谢,谢谢.....

楼主问了三个同样的问题啊,分都给我吧,我可分析了很长一段时间啊,不过这段代码确实不错,我也学到很多东西啊,谢谢楼主
test1的作用就是消除在剑法运算中产生结果为负数的可能性。可能这个程序是给小孩子编的吧,他们没学过负数。

test2作用是防止随机运算符号如果是除号,那么就会有余数的问题。比如5/3=?,这段代码就是消除这种可能性。因为小孩子也不知道怎么处理除法有余数的情况。

这段程序的作用就是随机测试n以下数的加减乘除运算,上限n由自己输入。

@echo off -----------------------关闭显示,就是不显示后面的命令本身
:start -------------定义段:start
set /p n=多少以内的运算-------输入数字,为n赋值
set /a f=%random%%%4 ------取4以下的随机数,赋给f
:main1 -------------定义段:main1
set /a a=%random%%%%n% -----取n以下的随机数,赋给a
set /a b=%random%%%%n% -----取n以下的随机数,赋给b
if %f%==1 goto test1 ------如果f=1,执行段test1
if %f%==3 goto test2 ------如果f=3,执行段test2
:main2 -------------定义段:main2
if %f%==0 set k=+ && set /a op=%a%+%b%
if %f%==1 set k=- &&set /a op=%a%-%b%
if %f%==2 set k=X && set /a op=%a%*%b%
if %f%==3 set k=/ && set /a op=%a%/%b%
set /p answer=%a% %k% %b% ^=
if %answer%==%op% (echo right) else (echo WRONG The right answer is %op% )