用Javascript编写的科学计算器.docx

上传人:b****3 文档编号:12905631 上传时间:2023-04-22 格式:DOCX 页数:30 大小:19.54KB
下载 相关 举报
用Javascript编写的科学计算器.docx_第1页
第1页 / 共30页
用Javascript编写的科学计算器.docx_第2页
第2页 / 共30页
用Javascript编写的科学计算器.docx_第3页
第3页 / 共30页
用Javascript编写的科学计算器.docx_第4页
第4页 / 共30页
用Javascript编写的科学计算器.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

用Javascript编写的科学计算器.docx

《用Javascript编写的科学计算器.docx》由会员分享,可在线阅读,更多相关《用Javascript编写的科学计算器.docx(30页珍藏版)》请在冰豆网上搜索。

用Javascript编写的科学计算器.docx

用Javascript编写的科学计算器

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">

.b1{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

43px;FONT-FAMILY:

"宋体";BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#313596;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

.b2{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

43px;BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#fe3498;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

.b3{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

61px;BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#ff6501;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

.b4{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

32px;BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#888485;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

.border{

BORDER-BOTTOM:

#b1bac31pxsolid;BORDER-LEFT:

#b1bac31pxsolid;BORDER-TOP:

#b1bac31pxsolid;BORDER-RIGHT:

#b1bac31pxsolid

}

.dh{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

40px;BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#868485;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

.or{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

40px;BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#fe6700;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

.xn{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

32px;BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#313398;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

.xo{

BORDER-BOTTOM:

#b2b2b21pxsolid;BORDER-LEFT:

#b2b2b21pxsolid;BACKGROUND-COLOR:

#fbfbfb;WIDTH:

32px;BACKGROUND-POSITION:

center50%;HEIGHT:

23px;COLOR:

#ff6701;FONT-SIZE:

12px;BORDER-TOP:

#b2b2b21pxsolid;BORDER-RIGHT:

#b2b2b21pxsolid

}

--

varendNumber=true

varmem=0

varcarry=10

varhexnum="0123456789abcdef"

varangle="d"

varstack=""

varlevel="0"

varlayer=0

//数字键

functioninputkey(key)

{

varindex=key.charCodeAt(0);

if((carry==2&&(index==48||index==49))

||(carry==8&&index>=48&&index<=55)

||(carry==10&&(index>=48&&index<=57||index==46))

||(carry==16&&((index>=48&&index<=57)||(index>=97&&index<=102))))

if(endNumber)

{

endNumber=false

document.calc.display.value=key

}

elseif(document.calc.display.value==null||document.calc.display.value=="0")

document.calc.display.value=key

else

document.calc.display.value+=key

}

functionchangeSign()

{

if(document.calc.display.value!

="0")

if(document.calc.display.value.substr(0,1)=="-")

document.calc.display.value=document.calc.display.value.substr

(1)

else

document.calc.display.value="-"+document.calc.display.value

}

//函数键

functioninputfunction(fun,shiftfun)

{

endNumber=true

if(document.calc.shiftf.checked)

document.calc.display.value=decto(funcalc(shiftfun,(todec(document.calc.display.value,carry))),carry)

else

document.calc.display.value=decto(funcalc(fun,(todec(document.calc.display.value,carry))),carry)

document.calc.shiftf.checked=false

document.calc.hypf.checked=false

inputshift()

}

functioninputtrig(trig,arctrig,hyp,archyp)

{

if(document.calc.hypf.checked)

inputfunction(hyp,archyp)

else

inputfunction(trig,arctrig)

}

//运算符

functionoperation(join,newlevel)

{

endNumber=true

vartemp=stack.substr(stack.lastIndexOf("(")+1)+document.calc.display.value

while(newlevel!

=0&&(newlevel<=(level.charAt(level.length-1))))

{

temp=parse(temp)

level=level.slice(0,-1)

}

if(temp.match(/^(.*\d[\+\-\*\/\%\^\&\|x])?

([+-]?

[0-9a-f\.]+)$/))

document.calc.display.value=RegExp.$2

stack=stack.substr(0,stack.lastIndexOf("(")+1)+temp+join

document.calc.operator.value=""+join+""

level=level+newlevel

}

//括号

functionaddbracket()

{

endNumber=true

document.calc.display.value=0

stack=stack+"("

document.calc.operator.value=""

level=level+0

layer+=1

document.calc.bracket.value="(="+layer

}

functiondisbracket()

{

endNumber=true

vartemp=stack.substr(stack.lastIndexOf("(")+1)+document.calc.display.value

while((level.charAt(level.length-1))>0)

{

temp=parse(temp)

level=level.slice(0,-1)

}

document.calc.display.value=temp

stack=stack.substr(0,stack.lastIndexOf("("))

document.calc.operator.value=""

level=level.slice(0,-1)

layer-=1

if(layer>0)

document.calc.bracket.value="(="+layer

else

document.calc.bracket.value=""

}

//等号

functionresult()

{

endNumber=true

while(layer>0)

disbracket()

vartemp=stack+document.calc.display.value

while((level.charAt(level.length-1))>0)

{

temp=parse(temp)

level=level.slice(0,-1)

}

document.calc.display.value=temp

document.calc.bracket.value=""

document.calc.operator.value=""

stack=""

level="0"

}

//修改键

functionbackspace()

{

if(!

endNumber)

{

if(document.calc.display.value.length>1)

document.calc.display.value=document.calc.display.value.substring(0,document.calc.display.value.length-1)

else

document.calc.display.value=0

}

}

functionclearall()

{

document.calc.display.value=0

endNumber=true

stack=""

level="0"

layer=""

document.calc.operator.value=""

document.calc.bracket.value=""

}

//转换键

functioninputChangCarry(newcarry)

{

endNumber=true

document.calc.display.value=(decto(todec(document.calc.display.value,carry),newcarry))

carry=newcarry

document.calc.sin.disabled=(carry!

=10)

document.calc.cos.disabled=(carry!

=10)

document.calc.tan.disabled=(carry!

=10)

document.calc.bt.disabled=(carry!

=10)

document.calc.pi.disabled=(carry!

=10)

document.calc.e.disabled=(carry!

=10)

document.calc.kp.disabled=(carry!

=10)

document.calc.k2.disabled=(carry<=2)

document.calc.k3.disabled=(carry<=2)

document.calc.k4.disabled=(carry<=2)

document.calc.k5.disabled=(carry<=2)

document.calc.k6.disabled=(carry<=2)

document.calc.k7.disabled=(carry<=2)

document.calc.k8.disabled=(carry<=8)

document.calc.k9.disabled=(carry<=8)

document.calc.ka.disabled=(carry<=10)

document.calc.kb.disabled=(carry<=10)

document.calc.kc.disabled=(carry<=10)

document.calc.kd.disabled=(carry<=10)

document.calc.ke.disabled=(carry<=10)

document.calc.kf.disabled=(carry<=10)

}

functioninputChangAngle(angletype)

{

endNumber=true

angle=angletype

if(angle=="d")

document.calc.display.value=radiansToDegress(document.calc.display.value)

else

document.calc.display.value=degressToRadians(document.calc.display.value)

endNumber=true

}

functioninputshift()

{

if(document.calc.shiftf.checked)

{

document.calc.bt.value="deg"

document.calc.ln.value="exp"

document.calc.log.value="expd"

if(document.calc.hypf.checked)

{

document.calc.sin.value="ahs"

document.calc.cos.value="ahc"

document.calc.tan.value="aht"

}

else

{

document.calc.sin.value="asin"

document.calc.cos.value="acos"

document.calc.tan.value="atan"

}

document.calc.sqr.value="x^.5"

document.calc.cube.value="x^.3"

document.calc.floor.value="小数"

}

else

{

document.calc.bt.value="d.ms"

document.calc.ln.value="ln"

document.calc.log.value="log"

if(document.calc.hypf.checked)

{

document.calc.sin.value="hsin"

document.calc.cos.value="hcos"

document.calc.tan.value="htan"

}

else

{

document.calc.sin.value="sin"

document.calc.cos.value="cos"

document.calc.tan.value="tan"

}

document.calc.sqr.value="x^2"

document.calc.cube.value="x^3"

document.calc.floor.value="取整"

}

}

//存储器部分

functionclearmemory()

{

mem=0

document.calc.memory.value=""

}

functiongetmemory()

{

endNumber=true

document.calc.display.value=decto(mem,carry)

}

functionputmemory()

{

endNumber=true

if(document.calc.display.value!

=0)

{

mem=todec(document.calc.display.value,carry)

document.calc.memory.value="M"

}

else

document.calc.memory.value=""

}

functionaddmemory()

{

endNumber=true

mem=parseFloat(mem)+parseFloat(todec(document.calc.display.value,carry))

if(mem==0)

document.calc.memory.value=""

else

document.calc.memory.value="M"

}

functionmultimemory()

{

endNumber=true

mem=parseFloat(mem)*parseFloat(todec(document.calc.display.value,carry))

if(mem==0)

document.calc.memory.value=""

else

document.calc.memory.value="M"

}

//十进制转换

functiontodec(num,oldcarry)

{

if(oldcarry==10||num==0)return(num)

varneg=(num.charAt(0)=="-")

if(neg)num=num.substr

(1)

varnewnum=0

for(varindex=1;index<=num.length;index++)

newnum=newnum*oldcarry+hexnum.indexOf(num.charAt(index-1))

if(neg)

newnum=-newnum

return(newnum)

}

functiondecto(num,newcarry)

{

varneg=(num<0)

if(newcarry==10||num==0)return(num)

num=""+Math.abs(num)

varnewnum=""

while(num!

=0)

{

newnum=hexnum.charAt(num%newcarry)+newnum

num=Math.floor(num/newcarry)

}

if(neg)

newnum="-"+newnum

return(newnum)

}

//表达式解析

functionparse(string)

{

if(string.match(/^(.*\d[\+\-\*\/\%\^\&\|x\<])?

([+-]?

[0-9a-f\.]+)([\+\-\*\/\%\^\&\|x\<])([+-]?

[0-9a-f\.]+)$/))

return(RegExp.$1+cypher(RegExp.$2,RegExp.$3,RegExp.$4))

else

return(string)

}

//数学运算和位运算

functioncypher(left,join,righ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1