点击此处查看在线版计算器
代码:写的不好,还有很大改进空间
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>计算器3.0</title>
<style type="text/css">
body{
background-color: #bfa;
}
input{
width: 200px;
height: 100px;
font-size: 30px;
color: red;
margin: 10px;
}
.alls{
position: relative;
width: 1110px;
margin: auto;
margin-top: 80px;
}
#accepDate{
width: 1100px;
height: 50px;
margin-bottom: 40px;
border-radius: 0;
}
#lll{
position: absolute;
height: 220px;
bottom: 0;
right: 0;
}
#lll1{
position: absolute;
height: 220px;
bottom: 240px;
right: 0;
}
</style>
</head>
<body>
<div class="alls">
<div>
<input id="accepDate" type="text" name="accepDate" readonly /><br>
<input type="submit" name="Submit" onclick="AcceptData('7')" value="7" />
<input type="submit" name="Submit" onclick="AcceptData('8')" value="8" />
<input type="submit" name="Submit" onclick="AcceptData('9')" value="9" />
<input type="submit" name="Submit" onclick="AcceptData('*')" value="*" /><br>
<input type="submit" name="Submit" onclick="AcceptData('4')" value="4" />
<input type="submit" name="Submit" onclick="AcceptData('5')" value="5" />
<input type="submit" name="Submit" onclick="AcceptData('6')" value="6" />
<input type="submit" name="Submit" onclick="AcceptData('-')" value="-" /><br>
<input type="submit" name="Submit" onclick="AcceptData('1')" value="1" />
<input type="submit" name="Submit" onclick="AcceptData('2')" value="2" />
<input type="submit" name="Submit" onclick="AcceptData('3')" value="3" />
<input type="submit" name="Submit" onclick="AcceptData('+')" value="+" /><br>
<input type="submit" name="Submit" onclick="AcceptData('.')" value="." />
<input type="submit" name="Submit" onclick="AcceptData('0')" value="0" />
<input type="submit" name="Submit" onclick="AcceptData('=')" value="=" />
<input type="submit" name="Submit" onclick="AcceptData('/')" value="/" />
</div>
<input id="lll1" type="submit" name="reset" onclick="AcceptData('delete')" value="←" />
<input id="lll" type="submit" name="reset" onclick="AcceptData('empty')" value="清空" />
</div>
<script language="javascript">
var sum=[];
var hahaha="";
function AcceptData(num){
if(Number(num) >= 0 && Number(num) <=9){
hahaha += num;
document.getElementById("accepDate").value+=num;
}
else if(num=="."){
hahaha += num;
document.getElementById("accepDate").value+=num;
}
else if(num=="empty"){
document.getElementById("accepDate").value="";
sum = [];
hahaha = "";
}
else if(num == "delete"){
var centerss = document.getElementById("accepDate").value;
document.getElementById("accepDate").value = centerss.substring(0 , centerss.length-1);
if(hahaha.length == 1){
hahaha = "";
}
else if(hahaha.length > 1){
hahaha = hahaha.substring(0 , hahaha.length-1);
}
else{
hahaha = sum.pop();
if(hahaha.length == 1){
hahaha = "";
}
else if(hahaha.length > 1){
hahaha = hahaha.substring(0 , hahaha.length-1);
}
}
}
else if(num=="="){
if(hahaha != "")
sum.push(parseFloat(hahaha));
var lc = qianzhui(sum);
var ly = hhhhhhhh(lc);
document.getElementById("accepDate").value += "="+ly;
sum = [];
hahaha = "";
}
else{
if(hahaha != "")
sum.push(parseFloat(hahaha));
hahaha="";
sum.push(num);
document.getElementById("accepDate").value += num;
}
}
</script>
<script type="text/javascript">
function qianzhui(lists){
var a = [];
var b = [];
while(lists.length > 0){
var s = lists.pop();
if(typeof s == "number")
a.push(s)
else{
while(b.length>0){
var i = b[b.length - 1];
if(compares(i , s)){
a.push(b.pop());
}
else
break;
}
b.push(s);
}
}
while(b.length>0)
a.push(b.pop());
return a;
}
function compares(q , w){
if(q=="+" || q=="-")
q = 1;
else
q = 2;
if(w=="*" || w=="/")
w = 2;
else
w = 1;
return q>w;
}
function hhhhhhhh(lists){
var zuizhong = [];
while(lists.length > 0){
var counter = lists.shift();
if(typeof counter == "number")
zuizhong.push(counter);
else{
var cs = zuizhong.pop();
zuizhong.push(dmw(cs , counter , zuizhong.pop() ));
}
}
return zuizhong[0];
}
function dmw(a , b , c){
if(b=="+")
return a+c;
else if(b=="-")
return a-c;
else if(b=="*")
return a*c;
else
return a/c;
}
</script>
</body>
</html>