计算器编写
如何编写计算器
如何编写计算器
2015-04-19
<html>
<head>
<title>
科学计算器
</title>
<script language=JavaScript>
<!--在旧浏览器中隐藏JavaScript代码
//以下为变量
var done = false;
var pressed = false;
var operator = 0;
//存储最近的用户输入
function push(form)
{
form.stack.value = form.display.value;
form.display.value = 0;
done = false;
}
//清零
function reset(form)
{
form.stack.value = 0;
form.display.value = 0;
done = false;
operator = 0;
pressed = false;
}
//为显示窗口增加一个字符
function addChar(input,c)
{
if(input.value.indexOf("按")!=-1)
input.value = "";
if(input.value.indexOf("错")!=-1)
input.value = "";
if(done == true)//若已计算,则入栈
push(input.form);
if(input.value == null||input.value == "0")//保证input.value是一个字符串
input.value = c;
else//否则认为是一个数据的同一个连续输入
input.value += c;
done = false;//设置未计算位
pressed = false;//设置未按下
}
//删除一个按钮
function delChar(input)
{
input.value = input.value.substring(0,input.value.length-1);
}
function operate(form)
{
temp = parseFloat(form.display.value);
if(operator == 1)
{
form.display.value = parseFloat(form.stack.value)+parseFloat(form.display.value);
}
else if(operator == 2)
{
form.display.value = parseFloat(form.stack.value)-parseFloat(form.display.value);
}
else if(operator == 3)
{
form.display.value = parseFloat(form.stack.value)*parseFloat(form.display.value);
}
else if(operator == 4)
{
if(form.display.value == 0)
{
form.display.value = "除0错误";
form.stack.value = 0;
operator = 0;
}
else
{
form.display.value = parseFloat(form.stack.value)/parseFloat(form.display.value);
}
}
if(pressed == false)
{
form.stack.value = temp;
}
done = true;
pressed = true;
}
//加法
function add(form)
{
operate(form);
operator = 1;
}
//减法
function subtract(form)
{
if(pressed == false)
operate(form);
operation = 2;
}
//乘法
function multiply(form)
{
operate(form);
operator = 3;
}
//除法
function divide(form)
{
operate(form);
operator = 4;
}
//等于
function equals(form)
{
operate(form);
operator = 0;
}
//正切
function tan(form)
{
form.display.value = Math.tan(form.display.value);
done = true;
}
//余弦
function cos(form)
{
form.display.value = Math.cos(form.display.value);
done = true;
}
//正弦
function sin(form)
{
form.display.value = Math.sin(form.display.value);
done = true;
}
//反正切
function atan(form)
{
form.display.value = Math.atan(form.display.value);
done = true;
}
//反余弦
function acos(form)
{
form.display.value = Math.acos(form.display.value);
done = true;
}
//反正弦
function asin(form)
{
form.display.value = Math.asin(form.display.value);
done = true;
}
//绝对值
function abs(form)
{
form.display.value = Math.abs(form.display.value);
done = true;
}
//平方根
function sqrt(form)
{
form.display.value = Math.sqrt(form.display.value);
done = true;
}
//平方
function sqr(form)
{
form.display.value *= form.display.value;
done = true;
}
//以e为底的指数
function exp(form)
{
form.display.value = Math.exp(form.display.value);
done = true;
}
//PI
function pi(form)
{
form.display.value = Math.PI;
done = true;
}
//常用对数值
function log(form)
{
form.display.value = Math.log(form.display.value)/Math.log(10);
done = true;
}
//自然对数值
function ln(form)
{
form.display.value = Math.log(form.display.value);
done = true;
}
//e值
function e(form)
{
form.display.value = Math.E;
done = true;
}
//变幻正负性
function changeSign(form)
{
form.display.value = 0-form.display.value;
done = true;
}
//倒数
function inv(form)
{
if(form.display.value == 0)
{
form.display.value = "除0错误";
}
else
{
form.display.value = 1/form.display.value;
}
done = true;
}
<!--在旧浏览器中隐藏完毕-->
</script>
</head>
<body>
<center>
<font color="ff0000">
<h1> Calculator</h1>
<hr>
<form method="post">
<table border="1" align=center>
<tr align=center>
<td colspan=7>
<table border="0">
<input type="hidden" name="stack" value="0">
<tr>
<td align="middle">
显示:
</td>
<td>
<input name="display" size=40 value="按Start键开始">
</td>
</tr>
</table>
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 7 " onClick="addChar(this.form.display,'7')">
</td>
<td>
<input type="button" value=" 8 " onClick="addChar(this.form.display,'8')">
</td>
<td>
<input type="button" value=" 9 " onClick="addChar(this.form.display,'9')">
</td>
<td>
<input type="button" value=" / " onClick="divide(this.form)">
</td>
<td>
<input type="button" value="Sqrt " onClick="sqrt(this.form)">
</td>
<td>
<input type="button" value=" Exp " onClick="exp(this.form)">
</td>
<td>
<input type="button" value=" E " onClick="e(this.form)">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 4 " onClick="addChar(this.form.display,'4')">
</td>
<td>
<input type="button" value=" 5 " onClick="addChar(this.form.display,'5')">
</td>
<td>
<input type="button" value=" 6 " onClick="addChar(this.form.display,'6')">
</td>
<td>
<input type="button" value=" * " onClick="multiply(this.form)">
</td>
<td>
<input type="button" value=" Abs " onClick="abs(this.form)">
</td>
<td>
<input type="button" value=" PI " onClick="pi(this.form)">
</td>
<td>
<input type="button" value=" Sqr " onClick="sqr(this.form)">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 1 " onClick="addChar(this.form.display,'1')">
</td>
<td>
<input type="button" value=" 2 " onClick="addChar(this.form.display,'2')">
</td>
<td>
<input type="button" value=" 3 " onClick="addChar(this.form.display,'3')">
</td>
<td>
<input type="button" value=" - " onClick="subtract(this.form)">
</td>
<td>
<input type="button" value=" Tan " onClick="tan(this.form)">
</td>
<td>
<input type="button" value="Atan " onClick="atan(this.form)">
</td>
<td>
<input type="button" value=" Ln " onClick="ln(this.form)">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value=" 0 " onClick="addChar(this.form.display,'0')">
</td>
<td>
<input type="button" value=" . " onClick="addChar(this.form.display,'.')">
</td>
<td>
<input type="button" value=" +/- " onClick="changeSign(this.form)">
</td>
<td>
<input type="button" value=" + " onClick="add(this.form)">
</td>
<td>
<input type="button" value=" Cos " onClick="cos(this.form)">
</td>
<td>
<input type="button" value="Acos " onClick="acos(this.form)">
</td>
<td>
<input type="button" value=" Log " onClick="log(this.form)">
</td>
</tr>
<tr align=center>
<td>
<input type="button" value="Start" onClick="reset(this.form)">
</td>
<td>
<input type="button" value=" C " onClick="reset(this.form)">
</td>
<td>
<input type="button" value=" <- " onClick="delChar(this.form.display)">
</td>
<td>
<input type="button" value=" = " onClick="equals(this.form)">
</td>
<td>
<input type="button" value=" Sin " onClick="sin(this.form)">
</td>
<td>
<input type="button" value="Asin " onClick="asin(this.form)">
</td>
<td>
<input type="button" value=" Inv " onClick="inv(this.form)">
</td>
</tr>
</table>
</form>
</font>
</center>
</body>
</html>
举报