📄 6-2 科学计算器.htm
字号:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312" />
<title>6-2 科学计算器</title>
<!-- 样式表 -->
<style>
* { font-size:12px; } /*规定了所有的字体样式*/
body { background-color:buttonface; border-style:none; } /*窗口主体样式*/
.button { width:50px; height:30px; }/*按钮大小*/
#txt_display { width:100%; cursor:default; text-align:right; }/*显示结果的文本框样式*/
</style>
<!-- 脚本部分 -->
<script>
//将所有按钮的内容存放在数组中
var calc_buttons = [0,1,2,3,4,5,6,7,8,9,".","=","+","-","*","/","AC","sin","sin","cos","tan","asin","acos","atan","ln"];
//用于计算的全局变量
var previous_value=0, op="", start_new_input=true;
//计算的核心函数
function calc(strCMD){
//获取页面元素:显示结果的文本框
var objTxt = $("txt_display");
//根据当前单击的按钮内容决定所需要的操作
switch(strCMD){
//如果是三角函数,调用Math对象相应的方法操作
case "sin": objTxt.value = Math.sin(objTxt.value); break;
case "cos": objTxt.value = Math.cos(objTxt.value); break;
case "tan": objTxt.value = Math.tan(objTxt.value); break;
case "asin": objTxt.value = Math.asin(objTxt.value); break;
case "acos": objTxt.value = Math.acos(objTxt.value); break;
case "atan": objTxt.value = Math.atan(objTxt.value); break;
case "ln": objTxt.value = Math.log(objTxt.value); break;
//如果是四则运算符,则执行计算
case "+":
case "-":
case "*":
case "/":
start_new_input = true;
if(op!="" && objTxt.value!=""){
objTxt.value = eval(previous_value + op + objTxt.value);
op = strCMD;
}else{
op = strCMD;
}
break;
case "=":
start_new_input = true;
if(op!="" && objTxt!="")objTxt.value = eval(previous_value + op + objTxt.value);
op = "";
previous_value = 0;
break;
//重置所有变量,恢复初始状态
case "AC":
start_new_input = true;
objTxt.value = "0";
op = "";
previous_value = 0;
break;
//如果是小数点
case ".":
//调用字符串的“indexOf”方法查找,如果当前输入中已经有了小数点则跳出操作
//注意到本段case块后没有break语句,如果当前输入中没有了小数点,则会执行default块
if(objTxt.value.indexOf(".")!=-1)break;
//如果是0-9或小数点
default:
//如果需要清空原有输入,则将原有输入保存在变量“previous_value”中
//并且将“需要清空原有输入”的状态设为“否”(“false”)
if(start_new_input){
start_new_input=false;
previous_value=objTxt.value;
objTxt.value="0";
}
//如果当前输入不是“0”
if(objTxt.value!="0"){
objTxt.value += strCMD;
}else if(strCMD!="0"){
objTxt.value = strCMD;
}
}
}
function write_table(){
document.write("<table>");
document.write("<tr>");
for(var i=0; i<calc_buttons.length; i++){
document.write("<td><input value=\""+calc_buttons[i]+"\" type=\"button\" class=\"button\" onclick=\"calc(this.value);\"></td>");
if((i+1)%5==0)document.write("</tr><tr>");
}
document.write("</tr>");
document.write("</table>");
}
function $(str){ return(document.getElementById(str)); }
</script>
</head>
<body style="overflow:auto;">
<input id="txt_display" value="0" readonly >
<script>
write_table();
</script>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -