要實現計算器我們可以利用php中相關數學操作函數及相關數組來進行操作了,這個個人只是好玩寫的并且無實用,計算器個人覺得js的最好.
php計算器,代碼如下:
- <html>
- <head>
- <title>PHP實現簡單計算器</title>
- <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
- </head>
- <?php
- $num1=true;
- $num2=true;
- $numa=true;
- $numb=true;
- $message="";
- //單路分支
- if(isset($_GET["sub"])){
- if($_GET["num1"]==""){
- $num1=false;
- $message.="第一個數不能為空";
- }
- if(!is_numeric($_GET["num1"])){
- $numa=false;
- $message.="第一個數不是數字";
- }
- if($_GET["num2"]==""){
- $num2=false;
- $message.="第二個數不能為空";
- }
- if(!is_numeric($_GET["num2"])){
- $numb=false;
- $message.="第二個數不是數字";
- }
- if($num1 && $num2 && $numa && $numb) {
- $sum=0;
- //多路分支switch
- switch($_GET["ysf"]){
- case "+":
- $sum=$_GET["num1"]+$_GET["num2"];
- break;
- case "-":
- $sum=$_GET["num1"]-$_GET["num2"];
- break;
- case "x":
- $sum=$_GET["num1"]*$_GET["num2"];
- break;
- case "/":
- $sum=$_GET["num1"]/$_GET["num2"];
- break;
- case "%":
- $sum=$_GET["num1"]%$_GET["num2"];
- break;
- }
- }
- }
- ?>
- <br /><b>Notice</b>: Undefined index: num1 in <b>
- D:/php/PHPnow1.5.5/Package/vhosts/127.0.0.1/ceshi/jsq.php</b>
- on line <b>64</b><br />
- <body>
- <table align="center" border="1" width="500">
- <caption><h1>計算器</h1></caption>
- <form action="jsq.php">
- <tr>
- <td>
- <input type="text" size="5" name="num1" value="<?php echo $_GET["num1"] ?>" >
- </td>
- <td>
- <select name="ysf">
- <option value="+" <?php if($_GET["ysf"]=="+") echo "selected" ?>>+</option>
- <option value="-" <?php if($_GET["ysf"]=="-") echo "selected" ?>>-</option>
- <option value="x" <?php echo $_GET["ysf"]=="x"?"selected":"" ?>>x</option>
- <option value="/" <?php echo $_GET["ysf"]=="/"?"selected":"" ?>>/</option>
- <option value="%" <?php echo $_GET["ysf"]=="%"?"selected":"" ?>>%</option>
- </select>
- </td>
- <td>
- <input type="text" size="5" name="num2" value="<?php echo $_GET["num2"] ?>">
- </td>
- <td>
- <input type="submit" name="sub" value="計算">
- </td>
- </tr>
- <?php
- if(isset($_GET["sub"])){
- echo '<tr><td colspan="5">';
- if($num1 && $num1 && $numa && $numb){
- echo "結果:".$_GET["num1"]." ".$_GET["ysf"]." ".$_GET["num2"]." = ".$sum;
- }else{
- echo $message;
- }
- echo '</td></tr>';
- }
- ?>
- </form>
- </table>
- </body>
- </html>
js計算器,代碼如下:
- <html>
- <head>
- <title>計算器</title>
- <script>
- <!--
- willclear=false //這個變量作為下一次輸入是否先清空輸入框的狀態標志
- function backspace(){ //退格
- Calc.Input.value = Calc.Input.value.substring(0,Calc.Input.value.length-1)
- Calc.Input.title = Calc.Input.value.substring(0,Calc.Input.title.length-1)
- }//取長度為原長度減一的串,實現退格效果。
- function addoperator(){ //加操作符
- if (willclear){ //如果這次輸入前需要清空輸入框
- willclear=false //先清除標志,避免下次再次被錯誤地重復清空
- clearinput() //清除輸入內容
- }
- Calc.Input.value += event.srcElement.innerText //給用于顯示的加上剛輸入的運算符
- Calc.Input.title += event.srcElement.name //給用于計算的表達式區加上剛輸入的運算符
- }
- function clearinput(){ //清除輸入
- Calc.Input.value='' //清空顯示區
- Calc.Input.title='' //清空表達式
- }
- function result(){ //用于計算結果
- Calc.Input.value = eval(Calc.Input.title)//執行表達式區的表達式,返回結果到顯示區。
- willclear=true//設定下次按鍵則先清除此次計算結果。
- }
- //-->
- </script>
- <style>
- button {width:40; border: 1 solid #808080;background-color: #FFFFFF}
- </style>
- </head>
- <body>
- <FORM NAME="Calc">
- <TABLE BORDER=4 bordercolorlight="#808080" bordercolor="#808080" width="250" height="38"><TR><TD width="291" height="39" bgcolor="#C0C0C0">
-
- <INPUT TYPE="text" NAME="Input" readonly Size="21" style="background-color: #F5F5F5; font-family: Arial; border: 1 solid #000000"> 
- <button NAME="back" OnClick="backspace()">←</button>
- </TD></TR><TR><TD width="291" height="38">
- <table border="0" width="100%" height="105" cellpadding="0">
- <tr>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="1" OnClick="addoperator()">1</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="2" OnClick="addoperator()">2</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="3" OnClick="addoperator()">3</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="+" OnClick="addoperator()">+</BUTTON>
- </td>
- </tr>
- <tr>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="4" OnClick="addoperator()">4</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="5" OnClick="addoperator()">5</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="6" OnClick="addoperator()">6</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="-" OnClick="addoperator()">-</BUTTON>
- </td>
- </tr>
- <tr>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="7" OnClick="addoperator()">7</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="8" OnClick="addoperator()">8</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="9" OnClick="addoperator()">9</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="*" OnClick="addoperator()">×</BUTTON>
- </td>
- </tr>
- <tr>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="clear" OnClick="clearinput()">C</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="0" OnClick="addoperator()">0</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="=" OnClick="result()">=</BUTTON>
- </td>
- <td width="25%" height="31" align="center" bgcolor="#C0C0C0">
- <BUTTON NAME="/" OnClick="addoperator()">÷</BUTTON>
- </td>
- </tr>
- </table>
- </TD></TR>
- </TABLE>
- </FORM>
- </body>
- </html>
新聞熱點
疑難解答