JavaScript实现的计算器详解编程语言

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>JavaScript计算器</title> 
<style type="text/css"> 
input { 
	background-color: #CCC; 
	width: 70px; 
	height: 40px; 
} 
 
table { 
	background-color: #999; 
	border: 3px solid #666; 
	padding: 3px; 
} 
 
.result { 
	width: 420px; 
	background-color: #999; 
	margin-bottom: 10px; 
	font-family: "微软雅黑", Verdana, sans-serif, "宋体"; 
	font-size: 14px; 
	color: #FFF; 
	padding-left: 20px; 
} 
 
.clear { 
	width: 146px; 
} 
</style> 
</head> 
<script language="JavaScript"> 
	var baseoper; 
	var digitstate; 
	var num1; 
	var operstate; 
 
	function setStartState() { 
		digitstate = "beempty"; 
		num1 = 0; 
		baseoper = "beempty"; 
		operstate = false; 
 
	} 
	function add(i) { 
		if (operstate) { 
			cal.total.value = i; 
			operstate = false; 
		} else { 
			if (cal.total.value == "0") { 
				cal.total.value = i; 
				digistate = "bein"; 
			} else 
				cal.total.value += i; 
		} 
	} 
	function cleartext() { 
		cal.total.value = "0"; 
		digitstate = "beempty"; 
		basestate = "beempty" 
	} 
 
	function count() { 
		if (baseoper != "beempty") { 
			switch (baseoper) { 
			case "+": 
				num1 = parseFloat(num1) + parseFloat(cal.total.value); 
				break; 
			case "-": 
				num1 = parseFloat(num1) - parseFloat(cal.total.value); 
				break; 
			case "*": 
				num1 = parseFloat(num1) * parseFloat(cal.total.value); 
				break; 
			case "/": 
				num1 = parseFloat(num1) / parseFloat(cal.total.value); 
				break; 
			} 
			preoper = true; 
			cal.total.value = num1; 
		} 
		baseoper = "beempty"; 
	} 
	function useFunc(func) { 
		switch (func) { 
		case "sin": 
			cal.total.value = Math.sin(cal.total.value); 
			break; 
		case "cos": 
			cal.total.value = Math.cos(cal.total.value); 
			break; 
		case "asin": 
			cal.total.value = Math.asin(cal.total.value); 
			break; 
		case "acos": 
			cal.total.value = Math.acos(cal.total.value); 
			break; 
		case "tan": 
			cal.total.value = Math.tan(cal.total.value); 
			break; 
		case "atan": 
			cal.total.value = Math.atan(cal.total.value); 
			break; 
		case "log": 
			cal.total.value = Math.log(cal.total.value); 
			break; 
		case "exp": 
			cal.total.value = Math.exp(cal.total.value); 
			break; 
		case "sqrt": 
			cal.total.value = Math.sqrt(cal.total.value); 
			break; 
		case "1/x": 
			cal.total.value = 1 / cal.total.value; 
			break; 
		} 
		operstate = true; 
	} 
	function addPoint() { 
		if (digitstate == "bein" || digitstate == "beempty") { 
			cal.total.value += "."; 
			digistate = "befloat"; 
		} 
	} 
	function setOper(oper) { 
		operstate = true; 
		if (baseoper == "beempty") { 
			num1 = 0 + cal.total.value; 
			baseoper = oper; 
		} else { 
			count(); 
			baseoper = oper; 
		} 
	} 
</script> 
<body onload="setStartState()"> 
<h2>JavaScript计算器</h2> 
<form name="cal"> 
<table cellpadding="0" cellspacing="0"> 
	<tr align="center"> 
		<td colspan="6"><input class="result" type="Text" name="total" 
			size="25" value="0"></td> 
	</tr> 
	<tr align="center"> 
		<td><input type="Button" value="sin" onclick="useFunc('sin')"></td> 
		<td><input type="Button" value="cos" onclick="useFunc('cos')"></td> 
		<td><input type="Button" value="1" onclick="add('1')"></td> 
		<td><input type="Button" value="2" onclick="add('2')"></td> 
		<td><input type="Button" value="3" onclick="add('3')"></td> 
		<td><input type="Button" value="+" onclick="setOper('+')"></td> 
	</tr> 
	<tr align="center"> 
		<td><input type="Button" value="asin" onclick="useFunc('asin')"></td> 
		<td><input type="Button" value="acos" onclick="useFunc('acos')"></td> 
		<td><input type="Button" value="4" onclick="add('4')"></td> 
		<td><input type="Button" value="5" onclick="add('5')"></td> 
		<td><input type="Button" value="6" onclick="add('6')"></td> 
		<td><input type="Button" value="-" onclick="setOper('-')"></td> 
	</tr> 
	<tr align="center"> 
		<td><input type="Button" value="tan" onclick="useFunc('tan')"></td> 
		<td><input type="Button" value="atan" onclick="useFunc('atan')"></td> 
		<td><input type="Button" value="7" onclick="add('7')"></td> 
		<td><input type="Button" value="8" onclick="add('8')"></td> 
		<td><input type="Button" value="9" onclick="add('9')"></td> 
		<td><input type="Button" value="x" onclick="setOper('*')"></td> 
	</tr> 
	<tr align="center"> 
		<td><input type="Button" value="log" onclick="useFunc('log')"></td> 
		<td><input type="Button" value="exp" onclick="useFunc('exp')"></td> 
		<td><input type="Button" value="0" onclick="add('0')"></td> 
		<td><input type="Button" value="." onclick="addPoint()"></td> 
		<td><input type="Button" value="c" onclick="cleartext()"></td> 
		<td><input type="Button" value="÷" onclick="setOper('/')"></td> 
	</tr> 
	<tr align="center"> 
		<td><input type="Button" value="sqrt" onclick="useFunc('sqrt')"> 
		<td><input type="Button" value="1/x" onclick="useFunc('1/x')"> 
		<td><input type="Button" value="pi" 
			onclick="cal.total.value=Math.PI"></td> 
		<td><input type="Button" value="E" 
			onclick="cal.total.value=Math.E"></td> 
		<td colspan=2><input class="clear" type="Button" value="=" 
			onclick="count()"></td> 
	</tr> 
</table> 
</form> 
</body> 
</html>

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9998.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论