zoukankan      html  css  js  c++  java
  • 利用mysql来做一个功能强大的在线计算器

          有天在努力的搜索计算器,发现都是JavaScript,而且要一个个地点击,并且不能记录,输入计算式子时容易出错,于是就想了想该怎样才能让它好用点呢,能够用键盘直接输入。

         找了很久,发现网上资料很少,于是想自己动手写,慢慢的发现问题多了,自己不怎么通算法,写一个计算式子短点还好,长了就挂了,再长点恐怕就要死机。

       有一天做做mysql突然发现原来mysql功能这么强大,可以直接计算字符串。。。哈哈 这下可就高兴了。

       代码还超级简单 就做了一个ajax的计算器

    有式子错误提示 还可以时时显示输入的式子

     有兴趣的朋友可以看看  更多的功能可以自己去开发

    演示地址:http://www.jianlila.com/jsq.php

    jquer.js自己去下载

    jsq1.php

    代码
    1 <?php
    2  //链接数据库的
    3  $db=mysql_connect("localhost","root","123");
    4  header("Content-Type:text/html;charset=GB2312");
    5  $str=iconv('utf-8','gbk',trim($_POST['t_ask']));
    6
    7
    8  $str=str_replace(" ","",str_replace("\r\n","",$str));
    9 $str=str_replace("","(",$str);
    10 $str=str_replace("",")",$str);
    11 /*三角函数替换*/
    12 $str=preg_replace("/sin\((.*)\)/is","sin(\${1}*pi()/180)",$str);//替换sin
    13 $str=preg_replace("/cos\((.*)\)/is","cos(\${1}*pi()/180)",$str);//替换cos
    14 $str=preg_replace("/tan\((.*)\)/is","tan(\${1}*pi()/180)",$str);//替换tan
    15 $str=preg_replace("/cot\((.*)\)/is","1/tan(\${1}*pi()/180)",$str);//替换余切
    16 $str=preg_replace("/asin\((.*)\)/is","asin(\${1}/pi()*180)*180/pi()",$str);//反正弦
    17 $str=preg_replace("/acos\((.*)\)/is","acos(\${1}/pi()*180)*180/pi()",$str);//反余弦
    18 $str=preg_replace("/atan\((.*)\)/is","atan(\${1}/pi()*180)*180/pi()",$str);//替换反正切
    19
    20 $sql="select ".$str ;
    21 $res=mysql_query($sql,$db) or die('<font color=red>你输入的式子有错误</font>');
    22 $rs=mysql_fetch_array($res);
    23 echo $rs[0];
    24
    25
    26
    27 ?>

    jsq.php

    代码
    <html>

    <head>

    <title>手写输入计算器</title>
    <meta name="keywords" content="在线计算器,输入式子直接计算,手写计算器" />
    <meta name="description" content="在线计算器,手写输入计算器,输入式子直接计算" />
    <script src="jquery.js" language="javascript"></script>
    <script language="javascript">
    $(
    function(){
    $(
    "#t_ask").keyup(function(){
    $
    .post(
    "jsq1.php",
    {
    t_ask
    : $("#t_ask").val()
    }
    ,function(data,textStatus)
    {
    $(
    "#res").html(data);
    }
    );
    });
    });

    </script>
    </head>
    <body>
    <table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td align="center" height="40"><h2>手写输入计算器</h2></td>
    </tr>
    </table>

    <table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td height="34" align="center">在这里你可以手写式子计算哦,还不快试试! <a href="http://www.jianlila.com">返回首页</a></td>
    </tr>
    </table>


    <form method="post">
    <table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td width="27%" align="right">计算式子:</td>
    <td width="73%"><textarea name="t_ask" cols="60" rows="6" id="t_ask"></textarea></td>
    </tr>
    <tr>
    <td height="23" align="right">=</td>
    <td><div id="res"></div></td>
    </tr>
    <tr>
    <td height="31" align="right"></td>
    <td><input type="button" name="tj" id="tj" value="按钮" />
    <input type="reset" name="qc" id="qc" value="重置" /></td>
    </tr>
    </table>
    <table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td><p>说明:<br />
    三角函数:
    <p>sin(60)正弦 cos(60)余弦 tan(60)正切 cot(60)余切
    <p>asin(0.5)反正弦 acos(0.5)
    反余弦
    atan(0.5)反正切
    <p>abs(-1)=1绝对值 ceil(0.1)=1进一
    <p>指数对数
    <p>exp(float arg)// 计算 <strong>e</strong>(自然对数的底)的指数
    <p>log(10,100)=2//自然对数 pow(2,4)=16 指数 sqrt(4)=2平方根
    <p><br />
    </td>
    </tr>

    </table>


    </form>
    </body>
    </html>

     转载请说明,文章来源:http://www.jianlila.com技术部

  • 相关阅读:
    519,伪类和伪元素的区别
    518,自定义字体的使用场景
    517,sytlus/sass/less的区别
    516,base64的原理及优缺点
    515,前端性能优化--减少http请求(待补充)
    514 ,css不同选择器的权重(css层叠的规则)
    513,如果需要手写动画,你认为最小时间间隔是多久,为什么?
    512,a标签的target属性
    511,display:inline-block什么时候不会显示间隙?
    510,position的值,relative和absolute定位原点是
  • 原文地址:https://www.cnblogs.com/lrjxgl/p/1836914.html
Copyright © 2011-2022 走看看