ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:20.80KB ,
资源ID:23475519      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23475519.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(批处理计算器.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

批处理计算器.docx

1、批处理计算器复制时要把代码最下方的“智能批处理计算器使用说明”一起复制到代码中。否则会影响代码运行。echo off&set jiluk=&set /a jilu=0,xsljjg=0,xiaosu=10title %n0 智能计算器2 by 随风 2009-02-22set sangcijg=&set pi=3.1415926535897932384626433832795setlocal enabledelayedexpansion&set lin=00000for /l %a in (1 1 5) do set lin=!lin!lin!lin!:kaisiset yyd=&color

2、cfecho.&echo. 欢迎使用 智能批处理计算器echo.&echo.&echo. 首次使用请先仔细阅读使用说明echo.&echo. 本代码源自 批处理之家论坛 echo.&echo. 使用中若发现 bug 请去该处反馈、谢谢 !echo.&echo.&echo.&echo. 重要声明:echo.&echo. 本代码为 bat 批处理业余爱好者编写echo.&echo. 可任意转载、使用、但若因此导致的任何错误、损失、本人概不负责。echo.&echo.&echo.echo. 请选择: 1 阅读使用说明 2 进入对文本操作界面 3 进入手动界面:kaisi2echo.&set xuan

3、ze=&set /p xuanze= &clsif %xuanze%=3 color 1f&goto start0if not defined xuanze color 1f&goto start0if defined yyd if !xuanze!=1 cls&goto kaisiif %xuanze%=1 ( call :ydsuom %0 set yyd=a&echo.&echo. echo. 请选择:1 返回首页 2 进入对文本操作界面 3 进入手动界面 goto kaisi2)if not %xuanze%=2 cls&goto kaisi:wbjm 文本界面cls&color 1f

4、echo.&echo. 直接回车返回首页。echo.&echo. 按 3 进入手动输入算式界面。echo.&echo. 请输入文件名全名及全路径,或拖放文件来此。echo.&set wenben=&set /p wenben= &cls&set baocun=temp.txtif !wenben!=3 cls&goto start0if not defined wenben cls&goto kaisiset wenben=%wenben:=%if not exist %wenben% echo 文件不存在。&ping/n 3 127.0nul&goto wbjmecho.&echo. 正在计

5、算 %wenben:=% 中的算式,结果保存在 %baocun% 中echo.&echo. 请稍候 。&echo.setlocal&cd.%baocun%for /f usebackq delims= %a in (%wenben%) do ( call :start0 %a okk %baocun% echo !okk!)start %baocun%exit:start0setlocalif !wenben!=3 set wenben=if defined wenben set suru=%1&goto wenbenecho.&echo. 累计储存结果:%xsljjg%echo.&echo.

6、 %sangcijg%echo.&echo.&echo.&echo. 输入 bz 查看帮助echo.&echo. 请输入算式 如:-7+2+1+(3+-2*0.5-2*2+3)+3*(9-8*2)*5/2-2+5=echo.&set suru=&set /p suru= &clsif !suru!=bz ( call :ydsuom %0 echo.&echo. 按任意键返回 。&pausenul&cls&color 1f endlocal&set xsljjg=%jilu%&goto start0)if not defined suru endlocal&cls&set xsljjg=%ji

7、lu%&goto start0set suru=%suru: =%if !suru:-1!=+ set jiluk=a&set bq=+if !suru:-1!=- set jiluk=a&set bq=-if !suru:-1!=* set jiluk=a&set bq=*if !suru:-1!=/ set jiluk=a&set bq=/if !suru:-1!=. set jiluk=a&set jilu=0&set bq=+if defined jiluk set suru=!suru:0,-1!:wenbenset suru=%suru: =%if !suru:0,1!=. set

8、 suru=0!suru!for %a in (c + - / ( ) do set suru=!suru:%a.=%a0.!if %suru:-1%= set suru=%suru:0,-1%echo.&echo.正在计算: %suru% =set xsjg=%suru% =:从这里开始set ok=if %suru:0,1%=- set suru=f%suru:1%call :lis1 %suru% okset ok=!Ok:1!for %a in (c + - / ( ) do set ok=!ok:%a-=%af!for /l %a in (0 1 9) do ( set ok=!ok

9、:%a(=%ac(! set ok=!ok:)%a=)c%a! set ok=!ok:%a=%ac! set ok=!ok:%a=c%a! set ok=!ok:%a=%ac! set ok=!ok:%a=c%a!)set ok=!ok:pi=%pi%!set ok=0+!ok!+0call :cif !ok! okfor %g in () ) do ( set kuoh=%g call :lisxh !ok! ok)call :liscc !ok! okcall :lisjj !ok! okset ok=!ok:f=-!:完成计算set lecs=&set cucw=if defined j

10、iluk ( set okok=!ok! set leiji=!okok! !bq! !jilu! if !bq!=/ if !jilu!=0 ( set bq=*&set /a okok=1 set leiji=0 + !jilu! set lecs=以零为除数的错误。累计储存结果不变。 ) if !ok!=以零为除数的错误。 ( set lecs=以零为除数的错误。累计储存结果不变。 set leiji=0 + !jilu! set bq=+&set /a okok=0 ) call :start (!okok!)!bq!(!jilu!) jilu)if defined wenben en

11、dlocal&set %2=%xsjg% %ok%&goto :EOFcls&set xsljjg=!jilu! !lecs!set sangcijg=!xsjg! !ok! !cucw!if defined jiluk ( endlocal&set jilu=%jilu%&set xsljjg=%xsljjg%&set sangcijg=%sangcijg%) else endlocal&set sangcijg=%sangcijg%goto start0goto :EOF:lisxh 处理各种()括弧for /f tokens=1,2* delims=%kuoh% %a in (%1) d

12、o ( if %b= set %2=!ok!&goto :EOF call :liscc %b ok call :lisjj !ok! ok set ok=!ok:-=f! set ok=%a!ok!%c call :lisxh !ok! ok)goto :EOF:liscc 计算连续乘除set ph=%1&set q=&set h=&set aa=&set n=0set ph=!ph:c= c# !&set ph=!ph:/= / !set ph=!ph:+= + !&set ph=!ph:-= - !for /f tokens=1* delims=c/ %a in (!ph!) do (

13、if %b= set %2=!ph: =!&goto :EOF for %i in (%a) do set q=!q!aa!&set aa=%i for %i in (%b) do set /a n+=1&set m!n!=%i for /l %i in (3 1 !n!) do set h=!h!m%i! if !m1!=# (set m1=*) else set m1=/ set js=(!aa:f=-!)!m1!(!m2:f=-!) if not !h!= set h=!h:c#=c!&set h=!h:/=/! call :start !js! ph if !ph!=以零为除数的错误。

14、 set q=&set h= set ph=!ph:-=f! set ph=!q!ph:-=f!h! set ph=!ph:/=/! call :liscc !ph! ph)set %2=!ph: =!goto :EOF:lisjj 计算连续加减set he=&set js=%1set js=!js:+= +!&set js=!js:-= -!for %a in (!js!) do ( set b=%a if defined he ( set js=(!he!)!b:0,1!(!b:1!) set js=!js:f=-! call :start !js! he ) else set he=%a

15、 )set %2=!he:-=f!goto :EOF:lis1 将*号替换为c 方便代码运行for /f tokens=1* delims=* %a in (%1) do ( set ok=!ok!c%a call :lis1 %b ok if %b= goto :EOF)set %2=%ok%goto :eof:cif 处理次方set aaa=&set bbb=&set aa=&set bb=&set n=0for /f tokens=1* delims=x %a in (%1) do ( if %b= set %2=!ok!&goto :EOF set a=%a&set b=%b set

16、a=!a:(=( !&set a=!a:+=+ !&set a=!a:-=- ! set a=!a:c=c !&set a=!a:/=/ ! for %i in (!a!) do set aaa=!aaa!aa!&set aa=%i set b=!b:)= )!&set b=!b:+= +!&set b=!b:-= -! set b=!b:c= c!&set b=!b:/= /! for %i in (!b!) do set /a n+=1&set l!n!=%i set bb=!l1!&set ok= for /l %i in (2 1 !n!) do set bbb=!bbb!l%i! f

17、or /l %i in (1 1 !bb!) do set ok=!ok!c!aa! set ok=!ok:1! if !bb!=0 set ok=1c1 if !bb!=1 set ok=!aa!c1 call :liscc !ok! ok set ok=!aaa!ok!bbb! call :cif !ok! ok)set %2=!ok!goto :EOF:start 计算单一算式setlocalset suru=%1set yunsuanf=&set f=&set ff=&set xs1=&set xs2=set suru=%suru: =%if %suru:-1%= set suru=%

18、suru:0,-1%if %suru:0,1%=( set suru=%suru:1%&set xs1=(if %suru:0,1%=- (set yf=-) else set yf=for /f tokens=1* delims=+-*/ %a in (%suru%) do ( set num=%yf%a&set str=%b (set str=!str:(=!&set str=!str:)=!)(set num=!num:)=!)set ysf=!suru:*%num%=!if %ysf:0,1%=) set ysf=%ysf:1%set ysf=!ysf:0,1!if not defin

19、ed xs1 (set xs1=!num!)else set xs1=!xs1!num!)set xsysf=%ysf%if !str:0,1!=- (set xs2=(!str!)else set xs2=!str!set xsss=!xs1! !xsysf! !xs2!if !num:0,1!=- ( if !str:0,1!=- (set ff=) else set ff=-) else if !str:0,1!=- set ff=-if !ysf!=+ ( set yunsuanf=jia&set ff= if !num:0,1!=- ( set ff=- if not !str:0,

20、1!=- set yunsuanf=jian ) else if !str:0,1!=- set yunsuanf=jian)if !ysf!=- ( set yunsuanf=jian&set ff= if !num:0,1!=- ( set ff=-&set yunsuanf=jia if !str:0,1!=- set yunsuanf=jian ) else (if !str:0,1!=- set yunsuanf=jia)if !ysf!=* set yunsuanf=cenif !ysf!=/ (set yunsuanf=cu0)set num=!num:-=!&set str=!

21、str:-=!set /a numxw=0,strxw=0,xzw=0,xc=0,duo=0call :pdxs %num% numz numx numxwcall :pdxs %str% strz strx strxwif %numxw% geq %strxw% (set /a duo=numxw) else set /a duo=strxwset /a xzw=numxw+strxw,xc=numxw-strxw&set xc=!xc:-=!if !duo! neq 0 ( set numx=!numx:0,%duo%!&set strx=!strx:0,%duo%!) else set

22、numx=&set strx=:echo 第一个数 整数 %numz% 小数 %numx% 小数的位数 %numxw% 位:echo 第一个数 整数 %strz% 小数 %strx% 小数的位数 %strxw% 位set she=%numz%numx% %strz%strx%if !ysf!=* set /a duo=xzw&set she=%num:.=% %str:.=%call :%yunsuanf% %she% okif !ysf!=/ goto okgoto xs:pdxs 给小数补0、获取小数位数。setlocal&set /a z=0set var=%1if !var:0,1!=

23、. set var=0!var!for /f tokens=1* delims=. %a in (!var!)do (set str1=%a if %b= (set str2=!lin!&set z=0) else ( set str2=%b for /l %i in (0 1 9) do set str2=!str2:%i= %i ! for %i in (!str2!) do set /a z+=1 set str2=!str2: =!&set str2=%b!lin!)Endlocal&set %2=%str1%&set %3=%str2%&set %4=%z%&goto :EOF:xs

24、 处理最终结果if %ok:-=%=0 goto okset ok=!ff!ok!&set lin=if !ok:0,1!=- ( if !ok:1,1!=- (set f=) else set f=-) else set f=set ok=!ok:-=!if !duo! equ 0 (goto ok) else ( set ok=!lin!ok! set ok=!ok:0,-%duo%!.!ok:-%duo%,%duo%!):loopif !ok:-1!=0 set ok=!ok:0,-1!&goto loopfor /f tokens=* delims=0 %a in (%ok%) do

25、( if %a= (set ok=0&goto ok) else set ok=%a)if !ok!=. set ok=0&goto okif !ok:0,1!=. set ok=0!ok!if !ok:-1!=. set ok=!ok:0,-1!:okendlocal&set %2=%f%ok%&goto :EOF:jia 加法函数(封装)by 随风 :计算任意位数的正整数加法setlocal enabledelayedexpansion&set f=&set t=set var1=%1&set var2=%2&set /a j=0,n1=0,n2=0for /l %a in (0 1 9)

26、 do (set vard1=&set vard2=set var1=!var1:%a= %a !&set var2=!var2:%a= %a !)for %a in (!var1!)do (set/a n1+=1&set vard1=%a !vard1!)for %a in (!var2!)do (set/a n2+=1&set vard2=%a !vard2!)(if !n1! lss !n2! (set var1=%var2%&set var2=%var1%set vard1=%vard2%&set vard2=%vard1%)&set var2=!var2: =!for %a in (

27、!vard1!) do (if !var2!= set /a var2=0set /a a=%a+!var2:-1!+j&set t=!a:-1!t!&set a=0!a!set j=!a:-2,1!&set var2=!var2:0,-1!)if !j! neq 0 set t=!j!t!Endlocal&set %3=%t%&goto :EOF:jian 减法函数(封装)by 随风 :计算1000位以内的正整数减法setlocal enabledelayedexpansion&set f=&set lin=00000for /l %a in (1 1 5) do set lin=!lin!lin!lin!set var1=!lin!%1&set var2=!lin!%2&set vard1=&set/a j=0set t=&set var1=!var1:-1000!&set var2=!var2:-1000!if !var1! lss !var2! (set var1=%2&set var2=%1set f=-) else set var1=%1&set var2=%2for /l %a in (0 1 9) do set var1=!var1:%a= %a !for %a in (!var1!) do set vard1=%a !

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1