文档详情

JavaScript编写的简易计算器.doc

发布:2018-05-27约5.56千字共7页下载文档
文本预览下载声明
!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN /TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlns=/1999/xhtml head meta http-equiv=Content-Type content=text/html; charset=utf-8 / titleUntitled Document/title /head script language=javascript var curState; var curOper; num1; var preOper; function setStartState() { curState=beStart; num1=0; curOper=start; preOper=false; } function addNum(i) { if(preOper==true) { cal.total.value=i; preOper=false; } else { if(cal.total.value==0) { cal.total.value=i; curState=beInteger; } else cal.total.value+=i; } } function addPoint() { if(curState==beStart||curState==beInteger) { cal.total.value+=.; curState=beFloat;//将当前状态设置为float } } function cleartext()//清空计算结果文本框内容 { cal.total.value=0; curState=beStart; curOper=start; } function count()//基本的加减乘除运算 { if(curOper!=start) { switch(curOper)//根据curOper的值确定运算法则 { case +: num1=parseFloat(num1)+parseFloat(cal.total.value);break; case -: num1=parseFloat(num1)-parseFloat(cal.total.value);break; case *: num1=parseFloat(num1)*parseFloat(cal.total.value);break; case /: num1=parseFloat(num1)/parseFloat(cal.total.value);break; } cal.total.value=num1; preOper=true; } preOper=start; } function setOper(oper)//当点击“+-*、”时,设置当前的运算法则 { //alert(curOper); preOper=true;//为布尔型,表示再次之前是否刚刚单击过双边运算法符 if(curOper==start) { //alert(curOper); num1=0+cal.total.value;/*将第一个值用num1保存,采用‘0+’把total.value字符串转化为数值型,类似于使用parsefloat()0方法*/ curOper=oper; //alert(num1); } else { count(); curOper=oper; } //alert(curOper); } function useFunc(func) { switch(func) { case sin: cal.total.value=Math.sin(cal.total.value); preOper=true; break; case cos: cal.total.value=Math.cos(cal.total.value); preOper=true; break; case asin: cal.total.value=Math.asin(cal.total.value); preOper=true; break; case acos: cal.total.value=Math.acos(cal.total.value); preOper=true; break; case tan: cal.total.va
显示全部
相似文档