利用js编写一个计算器

点击此处查看在线版计算器

代码:写的不好,还有很大改进空间

<!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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值