例如输入以下内容
3*5+3*2
4*3
4*7
3*5+3*2
4*3
4*7
会得到以下计算结果
记算过程:
1: 3*5+3*2 = 21
2: 4*3 => 12 + 21 => 33
3: 4*7 => 28 + 33 => 61
4: 3*5+3*2 => 21 + 61 => 82
5: 4*3 => 12 + 82 => 94
6: 4*7 => 28 + 94 => 122
记算公式: 3*5+3*2+4*3+4*7+3*5+3*2+4*3+4*7= 122
演示效果请看这里 http://www.zggo.com/ggg/soft/code/js.php
记算过程一目了解,还方便核对修改。嘿,看看感觉简单吧。实用吧 :P
以下是程序代码,有兴起的你还可以做个javascript版哟。
<HTML>
<HEAD>
<TITLE> 简单实用计算器 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<style type="text/css">
<!--
body{
margin-top:0px; /*页面上边距*/
margin-bottom:0px; /*页面下边距*/
margin-left:0px; /*页面左边距*/
margin-right:0px; /*页面右边距*/
font-size: 14px;
font-family: "宋体";
line-height:14pt;}
TD{WORD-BREAK: break-all;FONT-SIZE: 14px; }
.bigtitle {
font-size: 24px;
font-style: normal;
}
-->
</style>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<br><center ><span class="bigtitle">GGG的简单实用计算器</span></center><br>
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><TABLE BORDER="1" CELLSPACING="0" CELLPADDING="0" ALIGN="CENTER" bordercolorlight=#ffffff bordercolordark=#cccccc>
<FORM NAME="form1" METHOD="post" ACTION="">
<TR>
<TD colspan="2" ALIGN="CENTER" bgcolor="#CCCCCC">记得每一行一个计算公式数字 </TD>
</TR>
<TR>
<TD ALIGN="CENTER">
<TEXTAREA NAME="content" COLS="30" ROWS="15" style="ime-mode: disabled "><?=$_POST["content"]?></TEXTAREA></TD>
<TD valign="top"> </TD>
</TR>
<TR>
<TD colspan="2" ALIGN="CENTER">请设制对每行计算结果的数据操作</TD>
</TR>
<TR>
<TD colspan="2" ALIGN="CENTER"><INPUT TYPE="radio" NAME="mode" VALUE="+" CHECKED>
加法
<INPUT TYPE="radio" NAME="mode" VALUE="-">
减法
<INPUT TYPE="radio" NAME="mode" VALUE="*">
乘法
<INPUT TYPE="radio" NAME="mode" VALUE="%">
除法</TD>
</TR>
<TR>
<TD colspan="2" ALIGN="CENTER"><INPUT TYPE="submit" NAME="Submit" VALUE="计算">
<INPUT TYPE="reset" NAME="Submit2" VALUE="Reset">
<INPUT TYPE="hidden" NAME="command" VALUE="submit"></TD>
</TR>
</FORM>
</TABLE></td>
<td valign="top"><TABLE width="95%" align="center" cellpadding="0" cellspacing="0" >
<FORM NAME="form1" METHOD="post" ACTION="">
<TR>
<TD width="243" valign="top">例如输入以下内容<br>
<strong>3*5+3*2<br>
4*3<br>
4*7<br>
3*5+3*2<br>
4*3<br>
4*7</strong><br>
会得到以下计算结果<br>
记算过程: <br>
1: 3*5+3*2 = <font color=blue>21 </font><br>
2: 4*3 => <font color=blue>12 </font> + 21 => <font color=red>33 </font><br>
3: 4*7 => <font color=blue>28 </font> + 33 => <font color=red>61 </font><br>
4: 3*5+3*2 => <font color=blue>21 </font> + 61 => <font color=red>82 </font><br>
5: 4*3 => <font color=blue>12 </font> + 82 => <font color=red>94 </font><br>
6: 4*7 => <font color=blue>28 </font> + 94 => <font color=red>122 </font><br>
<br>
记算公式: 3*5+3*2+4*3+4*7+3*5+3*2+4*3+4*7=
<font color=red>122</font></TD>
</TR>
</FORM>
</TABLE></td>
</tr>
</table>
</BODY>
</HTML>
<TABLE width="95%" align="center" cellpadding="0" cellspacing="0" BORDER="1" bordercolorlight=#ffffff bordercolordark=#cccccc>
<TR>
<TD>
<?
//2006-5-13 1:56 test
if($_POST["command"]=="submit")
{
$mode = $_POST["mode"];
$pieces = explode("/n", $_POST["content"]); //计算数据按每行一每保存在数组
$count_len = count($pieces);
$cal_int_array=array(); //保存每行的计算结果
$cal_str_array=array(); //保存每行的计算过程
print("<B>记算过程</B>:</TD></TR><TR><TD> ");
for($tmp_i=0;$tmp_i<$count_len;$tmp_i++)
{
$tmp_str=trim($pieces[$tmp_i]); //得到每一行数据
if($tmp_str=="") //如果为空直接跳过
continue;
if(!ereg("^[0-9.]*$",$tmp_str)) //如果字符窜里含有数字以外的字符 直接当作公式来对待
{
@eval("/$cur_numb=".$tmp_str.";");
//$tmp_str="(".$tmp_str.")";
}
else
{
$cur_numb =$tmp_str; //保存当前行计算结果
}
$cal_str_array[]=$tmp_str; //保存当前计算公式
$cal_int_array[]=doubleval($cur_numb); //保存当前行计算结果
$tmp_row_str ="<br>".($tmp_i+1).": "; //保存每行输出的内容 输出行号
if($tmp_i == 0) //如果是第一行进行另外处理
{
$tmp_row_str.=" ".$tmp_str;
$tmp_row_str.=" = <font color=blue>".doubleval($cur_numb)." </font>";
}
else
{
@eval("/$total_numb=".implode($mode,$cal_int_array).";"); //得到当前的结果
$prev_array=$cal_int_array;
unset($prev_array[$tmp_i]);
@eval("/$prev_numb=".implode($mode,$prev_array).";"); //得到上次的计算结果
$tmp_row_str.=$tmp_str." => <font color=blue>".$prev_numb." </font>";
$tmp_row_str.=" ".$mode." ".doubleval($cur_numb)." "; //;
$tmp_row_str.=" => <font color=red>".doubleval($total_numb)." </font>"; //
}
echo $tmp_row_str ;
}
print("<br><br>记算公式: ");
print(implode($mode,$cal_str_array));
@eval("/$total_numb=".implode($mode,$cal_int_array).";"); //得到当前的结果
print(" = <font color=red>".$total_numb."</font>");
}
?>
</TD>
</TR>
</TABLE>