还是参考一下这个吧:
<html><head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>JAVA计算器</title>
<style type="text/css">
<!--
td { font: 9pt "宋体"; color: #FFFFFF}
.Button { font: 9pt "宋体"; color: #FFFFFF; background: #brown; margin: 4px 4px; width: 40px; height: 20px; border-color: #CCCCCC #333333 #333333 #CCCCCC; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px}
.text_input { font: 9pt "Verdana", "Arial", "Helvetica", "sans-serif"; color: #000000; background: #CCCCCC; text-align: right}
a { font: 9pt "宋体"; color: #FFFFFF}
-->
</style>
</head><body bgcolor="#CCCC99" topmargin="0" leftmargin="1"
marginwidth="1" marginheight="1">
<form name="Keypad">
<div align="center">
<center>
<br>
<table border="1" cellpadding="0"
cellspacing="1" width="249" bgcolor="#B5B56A"
bordercolor="#D0CC98" height="60">
<tr>
<td align="middle" colspan="4"><input type="text"
size="25" name="ReadOut" value="0" width="100%"
class="text_input"></td>
<td width="0"><input type="button" name="btnClear"
value=" C " onclick="Clear()" class="Button"></td>
<td width="50"><input type="button"
name="btnClearEntry2" value=" CE "
onclick="ClearEntry()" class="Button"></td>
</tr>
<tr>
<td align="center" width="50"><input type="button"
name="btnSeven" value=" 7 " onclick="NumPressed(7)"
class="Button"></td>
<td align="center" width="50"><input type="button"
name="btnEight" value=" 8 " onclick="NumPressed(8)"
class="Button"></td>
<td align="center" width="50"><input type="button"
name="btnNine" value=" 9 " onclick="NumPressed(9)"
class="Button"></td>
<th width="50"><p align="left"><input type="button"
name="btnHex" value="HEX" onclick="hexchange()"
class="Button"></p>
</th>
<td align="center" width="0"><input type="button"
name="btnClearEntry222" value="OCT"
onclick="octchange()" class="Button"></td>
<td align="center" width="50"><input type="button"
name="btnClearEntry223" value="BIN"
onclick="binchange()" class="Button"></td>
</tr>
<tr>
<td width="50"><input type="button" name="btnFour"
value=" 4 " onclick="NumPressed(4)" class="Button"></td>
<td width="50"><input type="button" name="btnFive"
value=" 5 " onclick="NumPressed(5)" class="Button"></td>
<td width="50"><input type="button" name="btnSix"
value=" 6 " onclick="NumPressed(6)" class="Button"></td>
<td width="50"><input type="button" name="btnPlus"
value=" + " onclick="Operation('+')" class="Button"></td>
<td width="0"><input type="button" name="btnNeg"
value=" +/- " onclick="Neg()" class="Button"></td>
<td width="50"><input type="button" name="btnPercent"
value=" % " onclick="Percent()" class="Button"></td>
</tr>
<tr>
<td width="50"><input type="button" name="btnOne"
value=" 1 " onclick="NumPressed(1)" class="Button"></td>
<td width="50"><input type="button" name="btnTwo"
value=" 2 " onclick="NumPressed(2)" class="Button"></td>
<td width="50"><input type="button" name="btnThree"
value=" 3 " onclick="NumPressed(3)" class="Button"></td>
<td width="50"><input type="button" name="btnMinus"
value=" - " onclick="Operation('-')"
class="Button"></td>
<td width="0"><input type="button" name="btnMultiply"
value=" * " onclick="Operation('*')" class="Button"></td>
<td width="50"><input type="button" name="btnDivide"
value=" / " onclick="Operation('/')"
class="Button"></td>
</tr>
<tr>
<td width="50"><input type="button" name="btnZero"
value=" 0 " onclick="NumPressed(0)" class="Button"></td>
<td width="50"><input type="button" name="btnDecimal"
value=" . " onclick="Decimal()" class="Button"></td>
<td width="50"><input type="button" name="btnEquals"
value=" = " onclick="Operation('=')" class="Button"></td>
<td width="50"> </td>
<td width="0"> </td>
<td width="50"> </td>
</tr>
</table>
</center></div>
</form>
<script language="JavaScript">
var FKeyPad = document.Keypad;
var Accum = 0;
var FlagNewNum = false;
var PendingOp = "";
function NumPressed (Num) {
if (FlagNewNum) {
FKeyPad.ReadOut.value = Num;
FlagNewNum = false;
}
else {
if (FKeyPad.ReadOut.value == "0")
FKeyPad.ReadOut.value = Num;
else
FKeyPad.ReadOut.value += Num;
}
}
function Operation (Op) {
var Readout = FKeyPad.ReadOut.value;
if (FlagNewNum && PendingOp != "=");
else
{
FlagNewNum = true;
if ( '+' == PendingOp )
Accum += parseFloat(Readout);
else if ( '-' == PendingOp )
Accum -= parseFloat(Readout);
else if ( '/' == PendingOp )
Accum /= parseFloat(Readout);
else if ( '*' == PendingOp )
Accum *= parseFloat(Readout);
else
Accum = parseFloat(Readout);
FKeyPad.ReadOut.value = Accum;
PendingOp = Op;
}
}
function Decimal () {
var curReadOut = FKeyPad.ReadOut.value;
if (FlagNewNum) {
curReadOut = "0.";
FlagNewNum = false;
}
else
{
if (curReadOut.indexOf(".") == -1)
curReadOut += ".";
}
FKeyPad.ReadOut.value = curReadOut;
}
function ClearEntry () {
FKeyPad.ReadOut.value = "0";
FlagNewNum = true;
}
function Clear () {
Accum = 0;
PendingOp = "";
ClearEntry();
}
function Neg () {
FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
}
function Percent () {
FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
}
function hexchange()
{
var hex,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
hex = dec.toString(16);
window.alert("该十进制数转成十六进制数为:"+ hex);
}
function octchange()
{
var oct,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
oct = dec.toString(8);
window.alert("该十进制数转成八进制数为:"+ oct);
}
function binchange()
{
var bin,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
bin = dec.toString(2);
window.alert("该十进制数转成二进制数为:"+ bin);
}
</script>
</body>
</html>
<html><head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>JAVA计算器</title>
<style type="text/css">
<!--
td { font: 9pt "宋体"; color: #FFFFFF}
.Button { font: 9pt "宋体"; color: #FFFFFF; background: #brown; margin: 4px 4px; width: 40px; height: 20px; border-color: #CCCCCC #333333 #333333 #CCCCCC; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px}
.text_input { font: 9pt "Verdana", "Arial", "Helvetica", "sans-serif"; color: #000000; background: #CCCCCC; text-align: right}
a { font: 9pt "宋体"; color: #FFFFFF}
-->
</style>
</head><body bgcolor="#CCCC99" topmargin="0" leftmargin="1"
marginwidth="1" marginheight="1">
<form name="Keypad">
<div align="center">
<center>
<br>
<table border="1" cellpadding="0"
cellspacing="1" width="249" bgcolor="#B5B56A"
bordercolor="#D0CC98" height="60">
<tr>
<td align="middle" colspan="4"><input type="text"
size="25" name="ReadOut" value="0" width="100%"
class="text_input"></td>
<td width="0"><input type="button" name="btnClear"
value=" C " onclick="Clear()" class="Button"></td>
<td width="50"><input type="button"
name="btnClearEntry2" value=" CE "
onclick="ClearEntry()" class="Button"></td>
</tr>
<tr>
<td align="center" width="50"><input type="button"
name="btnSeven" value=" 7 " onclick="NumPressed(7)"
class="Button"></td>
<td align="center" width="50"><input type="button"
name="btnEight" value=" 8 " onclick="NumPressed(8)"
class="Button"></td>
<td align="center" width="50"><input type="button"
name="btnNine" value=" 9 " onclick="NumPressed(9)"
class="Button"></td>
<th width="50"><p align="left"><input type="button"
name="btnHex" value="HEX" onclick="hexchange()"
class="Button"></p>
</th>
<td align="center" width="0"><input type="button"
name="btnClearEntry222" value="OCT"
onclick="octchange()" class="Button"></td>
<td align="center" width="50"><input type="button"
name="btnClearEntry223" value="BIN"
onclick="binchange()" class="Button"></td>
</tr>
<tr>
<td width="50"><input type="button" name="btnFour"
value=" 4 " onclick="NumPressed(4)" class="Button"></td>
<td width="50"><input type="button" name="btnFive"
value=" 5 " onclick="NumPressed(5)" class="Button"></td>
<td width="50"><input type="button" name="btnSix"
value=" 6 " onclick="NumPressed(6)" class="Button"></td>
<td width="50"><input type="button" name="btnPlus"
value=" + " onclick="Operation('+')" class="Button"></td>
<td width="0"><input type="button" name="btnNeg"
value=" +/- " onclick="Neg()" class="Button"></td>
<td width="50"><input type="button" name="btnPercent"
value=" % " onclick="Percent()" class="Button"></td>
</tr>
<tr>
<td width="50"><input type="button" name="btnOne"
value=" 1 " onclick="NumPressed(1)" class="Button"></td>
<td width="50"><input type="button" name="btnTwo"
value=" 2 " onclick="NumPressed(2)" class="Button"></td>
<td width="50"><input type="button" name="btnThree"
value=" 3 " onclick="NumPressed(3)" class="Button"></td>
<td width="50"><input type="button" name="btnMinus"
value=" - " onclick="Operation('-')"
class="Button"></td>
<td width="0"><input type="button" name="btnMultiply"
value=" * " onclick="Operation('*')" class="Button"></td>
<td width="50"><input type="button" name="btnDivide"
value=" / " onclick="Operation('/')"
class="Button"></td>
</tr>
<tr>
<td width="50"><input type="button" name="btnZero"
value=" 0 " onclick="NumPressed(0)" class="Button"></td>
<td width="50"><input type="button" name="btnDecimal"
value=" . " onclick="Decimal()" class="Button"></td>
<td width="50"><input type="button" name="btnEquals"
value=" = " onclick="Operation('=')" class="Button"></td>
<td width="50"> </td>
<td width="0"> </td>
<td width="50"> </td>
</tr>
</table>
</center></div>
</form>
<script language="JavaScript">
var FKeyPad = document.Keypad;
var Accum = 0;
var FlagNewNum = false;
var PendingOp = "";
function NumPressed (Num) {
if (FlagNewNum) {
FKeyPad.ReadOut.value = Num;
FlagNewNum = false;
}
else {
if (FKeyPad.ReadOut.value == "0")
FKeyPad.ReadOut.value = Num;
else
FKeyPad.ReadOut.value += Num;
}
}
function Operation (Op) {
var Readout = FKeyPad.ReadOut.value;
if (FlagNewNum && PendingOp != "=");
else
{
FlagNewNum = true;
if ( '+' == PendingOp )
Accum += parseFloat(Readout);
else if ( '-' == PendingOp )
Accum -= parseFloat(Readout);
else if ( '/' == PendingOp )
Accum /= parseFloat(Readout);
else if ( '*' == PendingOp )
Accum *= parseFloat(Readout);
else
Accum = parseFloat(Readout);
FKeyPad.ReadOut.value = Accum;
PendingOp = Op;
}
}
function Decimal () {
var curReadOut = FKeyPad.ReadOut.value;
if (FlagNewNum) {
curReadOut = "0.";
FlagNewNum = false;
}
else
{
if (curReadOut.indexOf(".") == -1)
curReadOut += ".";
}
FKeyPad.ReadOut.value = curReadOut;
}
function ClearEntry () {
FKeyPad.ReadOut.value = "0";
FlagNewNum = true;
}
function Clear () {
Accum = 0;
PendingOp = "";
ClearEntry();
}
function Neg () {
FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
}
function Percent () {
FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
}
function hexchange()
{
var hex,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
hex = dec.toString(16);
window.alert("该十进制数转成十六进制数为:"+ hex);
}
function octchange()
{
var oct,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
oct = dec.toString(8);
window.alert("该十进制数转成八进制数为:"+ oct);
}
function binchange()
{
var bin,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
bin = dec.toString(2);
window.alert("该十进制数转成二进制数为:"+ bin);
}
</script>
</body>
</html>
不过我想,他最大的长处是程式长,如果卖的话,可以卖个好价钱我的程式注重实用,只适合有一点数学基础的人,可以做连续运算,可以做大数运算
当然,我的程式的最大缺点就是太短,如果卖给别人的话,别人肯定是不会要的
呵呵
呜呼
2.功能也非常有限,出了加减乘除,还支持什么操作?
3.如果学过编译原理,试着把包含sin/cos/乘方/开方等表达式进行解析,那会是个卖点。就现在使用一个eval,摆明了欺负外行人吗
支持变量运算:
支持数学里如三角函数等的运算
支持……………的确
它的核心就是一个eval
所以我说我的程式的致命弱点就是短
怎么解释
别人也会说:就现在使用一个eval,摆明了欺负外行人吗!!!
如果再稍稍修改一下,可以让它支持数学里的其它如三角、指数等的运算<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>算式</title>
</head>
<body>
<form name=frm onsubmit="return jisuan()">
变量: <input name="bianliang" size=40 >输入变量请在不同的变最之间用<font color=red>,</font>隔开,如<font color=red>a=1,b=2</font><br>
算式:<input name="suanshi" size=40 ><input type=submit value="开始计算" ><br>
结果:<input name="jieguo" size=40><br>
</form>
<script language=javascript>
function jisuan()
{
try {
eval("var "+frm.bianliang.value+";");
eval("frm.jieguo.value="+frm.suanshi.value);
frm.suanshi.value="("+frm.suanshi.value+")";
frm.suanshi.focus();
}
catch(exception){alert("算式有误");}
return false;
}
</script>
</body>
</html>
if(frm.bianliang.value.length>0) eval("var "+frm.bianliang.value+";");
frm.bianliang.value=frm.bianliang.value.replace(/[\W,]/g,"");
就是与我们的实际计算器相仿
所以功能十分有限利用多输入输出框,本计算器已经有了:
1.()的功能
-----算式输完后敲一下回车就可以看到
2. 记录表达式的功能
------记录了表达式,就可以进行回退操作
-----一长串的算式输入完后发现某一个数输入错误,可以进行改正,然后重算
3. 变量操作
4. 函数支持
5. 扩展性好另外:
1. 结果的输入框应为readonly
2. 在结果的后面应该加一个按钮,点击后将结果代替算式