• set 续4


    ---------siwuxie095

       

       

       

       

    批处理简易计算器

    @echo off

    ::设置窗口标题

    title DOS 简易计算器

    ::设置窗口大小

    mode con cols=118 lines=30

    ::设置窗口颜色

    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 DOS 计算器只能计算整数(小数四舍五入),并且计算结果范围为-2147483647 2147483647

    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】

       

       

  • 相关阅读:
    Luogu P3275 糖果
    Python基础学习
    SharePoint 2013
    Office
    KnockoutJS
    SharePoint 2013
    Bootstrap
    SharePoint 2013
    CSS
    AngularJS
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6368950.html
Copyright © 2020-2023  润新知