Board logo

标题: [数值计算] 批处理四则运算 [打印本页]

作者: salad    时间: 2018-3-2 18:49     标题: 批处理四则运算

刚学了if和set的用法,随手编了一个,大家看看
  1. @echo off
  2. title 四则运算
  3. color b0
  4. mode con cols=40 lines=30
  5. :begin
  6. cls
  7. echo         
  8. echo       ___________________________
  9. echo         a.加法        
  10. echo       ___________________________
  11. echo         b.减法        
  12. echo       ___________________________
  13. echo         c.乘法        
  14. echo       ___________________________
  15. echo         d.除法        
  16. echo       ___________________________
  17. echo         e.乘方        
  18. echo       ___________________________
  19. echo         f.开方
  20. echo       ___________________________
  21. echo         g.鸡兔同笼
  22. echo       ___________________________
  23. echo         t.退出
  24. echo       ___________________________
  25. set /p a=
  26. cls
  27. if %a% equ a (
  28.    goto a
  29. )
  30. if %a% equ b (
  31.    goto b
  32. )
  33. if %a% equ c (
  34.    goto c
  35. )
  36. if %a% equ d (
  37.    goto d
  38. )
  39. if %a% equ e (
  40.    goto e
  41. )
  42. if %a% equ f (
  43.    goto f
  44. )
  45. if %a% equ t (
  46.    goto t
  47. )
  48. if %a% equ g (
  49.    goto g
  50. )
  51. :a
  52. set /p s=请输入加数
  53. set /p d=请输入另一个加数
  54. set /a n=%s%+%d%
  55. cls
  56. echo 结果是%n%
  57. pause>nul
  58. goto begin
  59. :b
  60. set /p sa=请输入被减数
  61. set /p da=请输入减数
  62. set /a na=%sa%-%da%
  63. cls
  64. echo 结果是%na%
  65. pause>nul
  66. goto begin
  67. :c
  68. set /p ss=请输入乘数
  69. set /p ds=请输入另一个乘数
  70. set /a ns=%ss%*%ds%
  71. cls
  72. echo 结果是%ns%
  73. pause>nul
  74. goto begin
  75. :d
  76. set /p sf=请输入被除数
  77. set /p df=请输入除数
  78. set /a nf=%sf%/%df%
  79. cls
  80. echo 结果是%nf%
  81. pause>nul
  82. goto begin
  83. :e
  84. set /p sfa=请输入被平方数
  85. set /a nfd=%sfa%*%sfa%
  86. cls
  87. echo 结果是%nfd%
  88. pause>nul
  89. goto begin
  90. :f
  91. cls
  92. set /p n=输入待开方数:
  93. set a=2
  94. set r=
  95. :int_part
  96.   set /a old_a=a,a=(n/a+a)/2
  97.   if %old_a% lss %a% goto int_part
  98.   set /a delta=old_a-a
  99.   if %delta% gtr 1 goto int_part
  100. ::prepare
  101.   set /a near_n=a*a
  102.   if %near_n% equ %n% goto end
  103.   set /a t=n-near_n,u=a
  104. :dec_part
  105.   set /a t*=100,d=10,tol_d=MAX/(u*20)
  106.   if %tol_d% lss 9 goto end
  107.   if %t% lss 0 goto end
  108.   :try_d
  109.     set /a d-=1,v=d*(d+u*20)
  110.     if %v% gtr %t% goto try_d
  111.   set /a t-=v,u=u*10+d
  112.   set r=%r%%d%
  113. goto dec_part
  114. :end
  115. if "%r%" neq "" set a=%a%.%r%
  116. echo 结果:%a%
  117. pause>nul
  118. goto begin
  119. :t
  120. exit
  121. :g
  122. set /p a=请输入头数
  123. set /p b=请输入脚数
  124. set /a n=(4*%a%-%b%)/2
  125. set /a m=%a%-%n%
  126. echo 兔%m%只,鸡%n%只
  127. pause>nul
  128. goto begin
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2