<html>
<head>
<title>Formula Creater</title>
<style type="text/css">
table.one{position:relative;left:10;top:20;width:240;}
table.two{position:relative;left:3;top:0;width:395;}
div.first{position:absolute;left:0;top:340;background-color:Yellow;width:300;}
div.second{position:absolute;left:0;top:10;background-color:Pink;width:300;}
div.third{position:absolute;left:300;top:270;background-color:yellow;width:300;}
div.fifth{position:absolute;left:0;top:185;background-color:Green;width:300;}
div.six{position:absolute;left:600;top:270;background-color:Silver;width:300;}
div.seven{position:absolute;left:900;top:0;background-color:Olive;width:400;}
div.draw{position:absolute;left:310;top:10;width:580;height:250;}
</style>
<script type="text/javascript" src="formula.js"></script>
</head>
<body onload="initData()">
<div id="firstdiv" class="first">
<form id="tableform">
<table class="one" id="table" width="200" border="1">
<caption style="font-weight:bolder;font-size:24px;" >公式中变量名和值</caption>
<tr><td width="80">变量名</td><td width="80" style="word-break:break-all;text-align:left;">
目前值</td><td width="80">赋值</td></tr></table></form><br />
<button style="width:100;font-size:20px;position:relative;left:10%;" onclick="updateValue()">更新值</button>
    <button style="width:100;font-size:20px;" onclick="Advance()">高级功能</button>
<br/>
</div>
<div id="seconddiv" class="second">
<h2>对于数据计算</h2>
<form>
表达式:<input type="text" id="expression" size="30" /><br />
  结果:<input type="text" id="result" size="10" /><br />
</form>
<button id="count" style="width:100;font-size:20px;" onclick="executeExpression()">计算结果</button><br />
</div>
<div id="thirddiv" class="third">
<center><h2>公式编辑区域</h2></center>
<center><button style="width:120;font-size:20px;" onclick="createFormula()">创建公式</button></center>
<button style="width:100;font-size:20px;" onclick="addNote()">新建行</button>    
<button style="width:100;font-size:20px;" onclick="deleteNote()">删除行</button>
<form id="secondform" style="font-size:24px;">
<table id="formulatable">
<tr><td>1:<input type+"text" id="result0" size="2" />=<input type="text" id="formula0" size="30" /></td></tr>
</table>
</form>
</div>
<div class="fifth">
<center style="font-size:30px;font-weigth:bold;">控制台</center>
<center><button style="width:150;font-size:20px;"onclick="showInfo()">显示基本信息</button></center>
<center><button style="width:180;font-size:20px;"onclick="saveFunc()">保存自定义函数</button></center>
<center><button style="width:150;font-size:20px;"onclick="saveFormula()">保存公式</button></center><br />
</div>
<div id="create" class="six">
<h2 align="center">自定义函数</h2>
<p>已创建公式    <select id="funs" style="width:100;"></select></p>
<p>函数名和变量  <button style="width:160;font-size:17px;" onclick="lookfor()">查询当前函数信息</button></p>
<p><input type="text" style="width:200;" id="paramsname" /></p>
<p>定义函数语句</p>
<p>   <textarea cols="32" rows="6" id="words"></textarea></p>
<center><button style="font-size:22px;width:150;" onclick="createNewFormula()">自定义公式</button></center>
</div>
<div id="advance" class="seven">
<center ><h2>变量高级处理</h2></center>
<table border="1" id="advancedtable" class="two" width="400">
<tr><th width="60">变量名</th><th>当前值</th><th width="60">初始值</th>
<th width="30">方式(Y/N)</th><th width="40">增量</th>
</tr>
</table>
<center><button id="BS" style="font-size:24px;width:100;" onclick="start()">开始</button></center>
<h3>图形绘制功能</h3>
是否启用绘图功能:Yes<input type="radio" id="Yes" name="yes" />No<input type="radio" name="yes" checked />   
<button style="width:100;font-size:24px;" onclick="draw()">绘制</button><br/>
自变量:<input type="text" id="former" size="4" />  范围:<input type="text" id="min" size='3' />—
<input type="text" id="max" size="3" />
<br /> 因变量:<input type="text" id="later" size="4" />  
比较:<input type="radio" id="COM" name="com" />不比较<input type="radio" name="com" checked/><br />
</div>
<div class="draw">
<canvas id="canvas" style="border:1 solid red;width:580;height:250;">浏览器不支持该功能!</canvas>
</div>
</body>
</html>
<script type="text/javascript">
/******设置全局变量区域***********************************************************************/
var sentence = new Array(); //存储用户输入的公式表达式
var order = new Array(); //将表达式转换成对应的命令
var param = new Array(); //记录用户输入的变量
var sign = new Array(); //记录符号
var signcount = 0; //记录符号的数目
var count = 1; //记录用户输入公式的总数目
var mathString = new Array(); //定义数学公式语言
var mathStringCount = 0;
var paramcount = 0; //记录变量的数目
var method = new Array(); //记录方式
var small = new Array(); //记录增量的大小
var begin = false; //表示高级功能是否启用
var funs = new Array(); //记录函数
var funscount = 0; //函数的数目
var con = document.getElementById("canvas");
var cxt = con.getContext("2d");
var date = new Array();
var max=0, min=0;
/**********************************************************************************************/
var test = function () //
{
}
/*********初始化函数************************/
var Init = function () //
{
sign[0] = "+"; sign[1] = "-"; sign[2] = "*"; sign[3] = "/"; sign[4] = "("; sign[5] = ")";
sign[6] = "{"; sign[7] = "}"; sign[8] = "%"; //取余数符号
sign[9] = "&"; sign[10] = "|"; sign[11] = "~"; sign[12] = ">>"; sign[13] = "<<";
signcount = 14; //符号的初始化
mathString[0] = "sin"; mathString[1] = "cos"; mathString[2] = "tan"; mathString[3] = "sqrt";
mathString[4] = "max"; mathString[5] = "min"; mathString[6] = "pow"; mathString[7] = "random";
mathString[8] = "exp"; mathString[9] = "floor"; mathString[10] = "ceil"; mathString[11] = "abs";
mathString[12] = "asin"; mathString[13] = "acos"; mathString[14] = "atan"; mathString[15] = "atan2";
mathString[16] = "log";
paramcount = 0; mathStringCount = 17;
count = 0;
}
/*******判断某字符串是否是数学函数************/
var judgeMathFunction = function (str) //
{
for (var i = 0; i < mathStringCount; i++)
if (mathString[i] == str)
return i; //返回这里是对应的是自带的数学函数
for (var j = 0; j < funscount; j++)
if (funs[j].name == str)
return j + 100; //返回的值是>100,以区别与自带的
return -1;
}
/********进行数据计算*****************/
var executeExpression = function () //
{
var b = document.getElementById("count").innerHTML;
if (b == "计算结果") //需要计算结果
{
var s = document.getElementById("expression").value;
var result = 0;
try {
result = eval(s);
}
catch (err) {
alert("请检查表达式是否正确");
return;
}
document.getElementById("result").value = result.toString();
document.getElementById("count").innerHTML = "清零";
}
else //
{
document.getElementById("expression").value = "";
document.getElementById("result").value = "";
document.getElementById("count").innerHTML = "计算结果";
}
}
/***********添加公式行函数****************/
var addNote = function () //
{
var t = document.getElementById("formulatable");
var n = t.rows.length;
var newrow = t.insertRow(n);
var newcell = t.rows(n).insertCell(0);
var id = "id=formula" + n.toString(); //设置对应的id
var id1 = "id=result"
- 1
- 2
前往页