zoukankan      html  css  js  c++  java
  • 简单的一个加减乘除计算器实现

    不算好的方法:
    #!/bin/sh
     echo "input num1:" 
     read a 
     echo "input num2:" 
     read b 
     echo "input operator:" 
     read o 
     case $o in
     +)
            awk 'BEGIN{printf "	" "'$a'+'$b'=%.2f
    ",'$a'+'$b'}'
            #result=$((a+b))
     ;;
     -)
            awk 'BEGIN{printf "	" "'$a'-'$b' =%.2f
    ", '$a'-'$b'}'
            #result=$((a-b))
     ;;
     /)if [ $b -eq 0 ]
              then
              echo "错误提示:除数不能为零!!!"
              else
                    awk 'BEGIN{printf "	" "'$a'/'$b' =%.2f
    ", '$a'/'$b'}'
                    fi
                    ;;
     *)
            awk 'BEGIN{printf "	" "'$a'*'$b' =%.2f
    ", '$a'*'$b'}'
            #result=$((a*b))
     ;;
     *)
            echo "输入格式错误"
     esac
    
    
    较好的方法:
    #!/bin/sh
    
     ps3="select your will exec Menu:"
     select i in "运算"
     do
            case $i in 
     运算)
            echo "请输入运算符1:c"
            read a 
            echo "
    "
            echo "请输入运算符2:c"
            read b
            echo "
    "
            ac=`echo $a|awk '{if($1 !~/[a-zA-Z]/) print}'` 
            bc=`echo $b|awk '{if($1 !~/[a-zA-Z]/) print}'`
        #ccc=`echo $a $b|awk '{if("$a" ~/[0-9]/ || "$b" ~/[0-9]/) print}'`
            #echo $a $b|awk '{if("$a" !~/[0-9]/ && "$b" !~/[0-9]/) print }'
     if [ "$ac" = "$a" -a "$bc" = "$b" ]
      then
                    #echo "运算符只能为数字..."
                    #break
                    #else
                    echo "提示:请选择下列序号进行运算,退出请输入错误格式!
    "
            
     select i in "+" "-" "*" "/" 
     do
            case $i in
     +)
            awk 'BEGIN {printf "	" "'$a'+'$b' =%.2f
    ", '$a'+'$b'}'
     ;;
     -)
                    awk 'BEGIN{printf "	" "'$a'-'$b' =%.2f
    ", '$a'-'$b'}'
     ;;
    
     /)if [ $b -eq 0 ]
              then
              echo "错误提示:除数不能为零!!!a
    "
              else
                    awk 'BEGIN{printf "	" "'$a'/'$b' =%.2f
    ", '$a'/'$b'}'
                    fi
                    ;;
     *)
            awk 'BEGIN{printf "	" "'$a'*'$b' =%.2f
    ", '$a'*'$b'}'
            ;;
       *)
       echo "提示:输入1继续运算,否则退出。。。"
       break
       ;;
      esac
      done
      else
            echo "提示:运算符错误,请输入数字
    "
            continue
      fi
      ;; 
      *)
      echo "-----------------------------退出---------------------------"
      exit 0
      ;;
      esac
     done
    
    可参考的实现方法3:
    #!/bin/sh
      case $2 in  
       +)
               awk 'BEGIN{printf "	" "'$1'+'$3'=%.2f
    ",'$1'+'$3'}'    
      ;;
      esac
    注:这个方法就是在执行的时候输入参数
  • 相关阅读:
    用perfmon简单分析GDI+性能和代码的一点小改进
    从clr profiler的角度看string concat 和stringbuilder的性能差别
    CLR兴趣小组第一次活动总结
    C#3.0看起来比较酷的咚咚
    windbg入门及提高(广告贴)
    济南.NET技术俱乐部8月份活动预告
    WebService安全性的问题
    Basic Windbg 4.Out Of Memory的分析及诊断方法
    A question about C++ static method and C# static method
    内存泄露的小问题
  • 原文地址:https://www.cnblogs.com/fengkui/p/6122394.html
Copyright © 2011-2022 走看看