JS计算器
这是学JAVASCRIPT的第一个实例。花了不少时间。书上(JAVASCRIPT动态网页经典实例教程)的程序有点错误也,导致无法算“1+2+3”这种一个运算符以上的式子。。我检查后改了一点,就好了。
附加学到:colspan是合并单元格 表单的用法
还不懂的:<body οnlοad="setStartState()">这句里面的onload是?
val+=i;这句的'+'为字符串连接符号?
parseFloat(num1)里parseFloatj是提取浮点数?
啊,发现都没加注释。
baseoper: 取值有"+" "-" "*" "/" "beempty"
operstate: 是否单击过运算符 取值有true和 false
digitstate: 取值有bein和 befloat beempty表示数据是浮点型呢还是整型呢还是没有数据
View Code Here 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>JavaScript计算器</title> 6 </head> 7 8 9 <script language="JavaScript"> 10 var baseoper; 11 var digitstate; 12 var num1; 13 var operstate; 14 15 function setStartState() 16 { 17 digitstate="beempty"; 18 num1=0; 19 baseoper="beempty"; 20 operstate=false; 21 22 } 23 function add(i) 24 { 25 if(operstate) 26 { 27 cal.total.value=i; 28 operstate=false; 29 } 30 else 31 { 32 if(cal.total.value=="0") 33 { 34 cal.total.value=i; 35 digistate="bein"; 36 } 37 else 38 cal.total.value+=i; 39 } 40 } 41 function cleartext() 42 { 43 cal.total.value="0"; 44 digitstate="beempty"; 45 basestate="beempty" 46 } 47 48 function count() 49 { 50 if(baseoper!="beempty") 51 { 52 switch(baseoper) 53 { 54 case"+" : 55 num1=parseFloat(num1)+parseFloat(cal.total.value) ; 56 break; 57 case"-" : 58 num1=parseFloat(num1)-parseFloat(cal.total.value) ; 59 break; 60 case"*" : 61 num1=parseFloat(num1)*parseFloat(cal.total.value) ; 62 break; 63 case"/" : 64 num1=parseFloat(num1)/parseFloat(cal.total.value) ; 65 break; 66 } 67 preoper=true; 68 cal.total.value=num1; 69 } 70 baseoper="beempty"; 71 } 72 function useFunc(func) 73 { 74 switch(func) 75 { 76 case"sin" : 77 cal.total.value=Math.sin(cal.total.value) ; 78 break; 79 case"cos" : 80 cal.total.value=Math.cos(cal.total.value) ; 81 break; 82 case"asin" : 83 cal.total.value=Math.asin(cal.total.value) ; 84 break; 85 case"acos" : 86 cal.total.value=Math.acos(cal.total.value) ; 87 break; 88 case"tan" : 89 cal.total.value=Math.tan(cal.total.value) ; 90 break; 91 case"atan" : 92 cal.total.value=Math.atan(cal.total.value) ; 93 break; 94 case"log" : 95 cal.total.value=Math.log(cal.total.value) ; 96 break; 97 case"exp" : 98 cal.total.value=Math.exp(cal.total.value) ; 99 break; 100 case"sqrt" : 101 cal.total.value=Math.sqrt(cal.total.value) ; 102 break; 103 case"1/x" : 104 cal.total.value=1/cal.total.value ; 105 break; 106 } 107 operstate=true; 108 } 109 function addPoint() 110 { 111 if(digitstate=="bein"||digitstate=="beempty") 112 { 113 cal.total.value+="."; 114 digistate="befloat"; 115 } 116 } 117 function setOper(oper) 118 { 119 operstate=true; 120 if(baseoper=="beempty") 121 { 122 num1=0+cal.total.value; 123 baseoper=oper; 124 } 125 else 126 { 127 count(); 128 baseoper=oper; 129 } 130 } 131 132 </script> 133 <body οnlοad="setStartState()"> 134 <font size=6> JavaScript计算器</font> 135 <!--计算器界面--------计算器界面--> 136 <form name="cal"> 137 <table border="5" align="left" bordercolor="#FFCCFF"> 138 <tr align="center"> 139 <td colspan="6"> 140 <input type="Text" name="total" size="25" value="0"> 141 </td> 142 </tr> 143 144 <tr align="center"> 145 <td><input type="Button" value="sin" οnclick="useFunc('sin')"></td> 146 <td><input type="Button" value="cos" οnclick="useFunc('cos')"></td> 147 <td><input type="Button" value="1" οnclick="add('1')"></td> 148 <td><input type="Button" value="2" οnclick="add('2')"></td> 149 <td><input type="Button" value="3" οnclick="add('3')"></td> 150 <td><input type="Button" value="+" οnclick="setOper('+')"></td> 151 </tr> 152 153 <tr align="center"> 154 <td><input type="Button" value="asin" οnclick="useFunc('asin')"></td> 155 <td><input type="Button" value="acos" οnclick="useFunc('acos')"></td> 156 <td><input type="Button" value="4" οnclick="add('4')"></td> 157 <td><input type="Button" value="5" οnclick="add('5')"></td> 158 <td><input type="Button" value="6" οnclick="add('6')"></td> 159 <td><input type="Button" value="-" οnclick="setOper('-')"></td> 160 </tr> 161 162 <tr align="center"> 163 <td><input type="Button" value="tan" οnclick="useFunc('tan')"></td> 164 <td><input type="Button" value="atan" οnclick="useFunc('atan')"></td> 165 <td><input type="Button" value="7" οnclick="add('7')"></td> 166 <td><input type="Button" value="8" οnclick="add('8')"></td> 167 <td><input type="Button" value="9" οnclick="add('9')"></td> 168 <td><input type="Button" value="*" οnclick="setOper('*')"></td> 169 </tr> 170 171 <tr align="center"> 172 <td><input type="Button" value="log" οnclick="useFunc('log')"></td> 173 <td><input type="Button" value="exp" οnclick="useFunc('exp')"></td> 174 <td><input type="Button" value="0" οnclick="add('0')"></td> 175 <td><input type="Button" value="." οnclick="addPoint()"></td> 176 <td><input type="Button" value="=" οnclick="count()"></td> 177 <td><input type="Button" value="/" οnclick="setOper('/')"></td> 178 </tr> 179 180 <tr align="center"> 181 <td><input type="Button" value="sqrt" οnclick="useFunc('sqrt')"> 182 <td><input type="Button" value="1/x" οnclick="useFunc('1/x')"> 183 <td><input type="Button" value="pi" οnclick="cal.total.value=Math.PI"></td> 184 <td><input type="Button" value="E" οnclick="cal.total.value=Math.E"></td> 185 <td colspan=2><input type="Button" value="清除" οnclick="cleartext()"></td> 186 </tr> 187 188 </table> 189 </form> 190 </body> 191 </html>转载于:https://www.cnblogs.com/shunvhuan/archive/2011/04/27/2030705.html
相关资源:JAVA上百实例源码以及开源项目