---------siwuxie095

 
 

 
 

 
 

 
 

批处理简易计算器

@echo off

::设置窗口标题

title DOS 简易计算器

::设置窗口大小

::设置窗口颜色

color 9f

::设置 xianshi 的值为 N,用于判断是否显示运算优先顺序表

set xianshi=N

echo. & echo.

set /p xianshi=是否显示 DOS 运算符的运算优先顺序表?(Y/N):

:begin

::清屏

cls

if /i "%xianshi%" == "Y" (

echo. & echo.

echo DOS 的各种运算符运算优先顺序表

echo. & echo.

echo "
1 ( ) 分组
"

echo "
2 ! ~ - 一元运算符
"

echo "
3 * / %%
算数运算符
"

echo "
4 + - 算数运算符
"

echo "
5 << >> 二进制逻辑移位
输入表达式时,该符号需添加双引号或转义字符
"

echo "
6 & 二进制按位"与"
输入表达式时,该符号需添加双引号或转义字符
"

echo "
7 ^ 二进制按位"异"
输入表达式时,该符号需添加双引号或转义字符
"

echo "
8 | 二进制按位"或"
输入表达式时,该符号需添加双引号或转义字符
"

echo "
9 = *= /= %%= += -= 算数赋值
输入表达式时,该符号需添加双引号或转义字符
"

echo "
10 &= ^= |= <<= >>= 进制运算赋值
输入表达式时,该符号需添加双引号或转义字符
"

echo "
11 , 逗号运算符
"

rem 不知道为啥,这个地方用 :: 当注释,会出点小毛病,显示"系统找不到指定的驱动器",下面才是注释QAQ

rem 上面的各个回显,回显的内容都添加了双引号,假如不添加双引号,程序就无

rem 法正常显示,这个课题有待进一步研究。另外,第三行的百分号最难处理,它即

rem 使在双引号内还可以作怪,即使添加了转义字符^也不管用,非得用两个百分号

rem 才能将其显示出来。第九行也是如此,%%=在屏幕显示为%=

echo.

)

echo.

echo ================================================================================

echo ================================================================================

echo. & echo.

set /p input=请输入计算表达式:

::这里进行运算,结果为 var。

set /a var=%input%

echo.

echo 计算结果: %input%=%var%

echo.

set /p qingqiu=要不要继续计算?(按回车继续,按任意键退出):

::判断,如果输入的是回车,将进行下一次运算,否则退出程序

if /i "%qingqiu%" == "" (goto begin) else (exit)

 
 

 
 

sublime中:

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

------------------------------------------------------------------------

 
 

 
 

一个困惑:

@echo off

echo
请分别输入三个数字:

set /p a=

set /p b=

set /p c=

echo
合并结果为:

set e= %a%

set /p var=%e:~-7%<nul

set e= %b%

set /p var=%e:~-7%<nul

set e= %c%

set /p var=%e:~-7%<nul

echo.

pause

 
 

sublime中:

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

如果输入其他字符,如 a b c + - _ (注意:等号 = 例外),

都会正常显示,但输入个位数字就无法显示,如下:

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

关于等号 =,不能单独一行 或 位于开头

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

修改一下:对每个 <nul 前面加个空格

(程序又没问题了…很奇怪〔等号依然不能放一行的开头〕)

 
 

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

 
 

 
 

最新文章

  1. Spring事务传播属性
  2. iOS推送处理
  3. Maven打jar包
  4. 简单ssh框架整合
  5. Projective Texture的原理与实现
  6. EntityFrame6在本地可以正常使用,部署到IIS后报异常(Additional information: The underlying provider failed on Open.)
  7. Eclipse没法自动补全代码解决
  8. BAE 环境下配置 struts2 + spring + hibernate(SSH)(三)spring&amp;hibernate
  9. 【模拟】CSU 1807 最长上升子序列~ (2016湖南省第十二届大学生计算机程序设计竞赛)
  10. VC2010的破解方法(针对旗舰版)
  11. shell script 零碎知识
  12. hbase自带mapreduce计数表行数功能
  13. SpringBoot下配置FreeMarker配置远程模版
  14. Windows下快速建立cocos2d-x项目
  15. 常见web攻击总结
  16. [ZJOI 2006]超级麻将
  17. css3的样式讲解-css学习之旅(3)
  18. http协议中的请求方式
  19. 【python接口自动化-requests库】【二】requests库简单使用(入门)
  20. Orleans逐步教程

热门文章

  1. Beta阶段第1周/共2周 Scrum立会报告+燃尽图 03
  2. flex布局在垂直居中里,元素超过容器大小后,不能通过滚动条滚动到顶端,这是个flex的bug
  3. UOJ117. 欧拉回路【欧拉回路模板题】
  4. 结构化日志类库 ---- Serilog库
  5. Spring集成Mybatis(Dao方式开发)
  6. 华为交换机STP 根ID优先级设置
  7. winodws同步时间命令
  8. (5)函数式接口的简单使用之Predicate
  9. 启动zookeeper时,jps显示有进程,但是status查看状态时就Error contacting service. It is probably not running
  10. C# 基础备忘录