<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计算器 - 作者: Mr Yuan</title>
<script type="text/javascript">
var curState;
var curOper;
var num1;
var preOper;
function beginState(){
curState="beStart";
form1.result.value=0;
curOper="start";
preOper=false;
console.log("本页面由袁智豪赞助写出");
}
function addnumber(i)
{
if(preOper)
{
form1.result.value=i;
preOper=false
}else{
if(form1.result.value == "0"){
form1.result.value=i;
curState="beInteger"
}
else
{ form1.result.value +=i;
}
}
}
function cleartext(){
if(form1.result.value == "" || form1.result.value == 0 || form1.result.value == null){
alert("啥子都没有你清楚啥,瓜娃子");
return false
} else{
form1.result.value="0";
curState="beStart";
curOper="start"
alert("清除成功,请重新开始计算");
}
}
function totalnumber(){
if(form1.result.value == "" || form1.result.value == null || form1.result.value == 0){
alert("你输入的是不能运行的值");
beginState();
return false}
if(curOper != "start")
{
switch(curOper)
{
case "+":
num1=parseFloat(num1)+parseFloat(form1.result.value);
break;
case "-":
num1=parseFloat(num1)-parseFloat(form1.result.value);
break;
case "x":
num1=parseFloat(num1)*parseFloat(form1.result.value);
break;
case "/":
num1=parseFloat(num1)/parseFloat(form1.result.value);
break;
}
form1.result.value=num1;
preOper=true;
curOper="start";
}}
function setOper(oper)
{
preOper=true;
if(curOper ="start")
{
num1=0+form1.result.value;
curOper=oper;
}
else
{
totalnumber();
curOper=oper;
}
}
function backspace(){
var o = document.getElementById('text11');
var v = o.value;
v.length > 0 && (o.value = v.substr(0, v.length - 1));
if(v == "" || v == null || v == 0){
alert("你删除个啥,告诉我怎么删除")
return false;
}
}
</script>
<style type="text/css">
body{
background-color: skyblue;
position: absolute;
top: 10px;
left: 00px;
}
.numberbutton{
border-radius: 10px;
font-size: 30px;
background-color:white;
width: 75px;
height: 65px;
border: 0px;
cursor: pointer;
transition: color 1s linear;
transition: background-color 1s linear;
}
.numberbutton:hover{
background-color:black;
color: white;
}
.numberbutton1{
border-radius: 10px;
font-size: 30px;
background-color:white;
width: 75px;
height: 65px;
border: 0px;
cursor: pointer;
transition: color 1s linear;
transition: background-color 1s linear;
}
.numberbutton1:hover{
background-color:orange;
color: white;
}
.numberbutton2{
border-radius: 10px;
font-size: 30px;
background-color:white;
width: 75px;
height: 65px;
border: 0px;
cursor: pointer;
transition: color 1s linear;
transition: background-color 1s linear;
}
.numberbutton2:hover{
background-color:pink;
color: white;
}
.numberbutton3{
border-radius: 10px;
font-size: 30px;
background-color:white;
width: 75px;
height: 65px;
border: 0px;
cursor: pointer;
transition: color 1s linear;
transition: background-color 1s linear;
}
.numberbutton3:hover{
background-color:green;
color: white;
}
.numberbutton4{
border-radius: 10px;
font-size: 30px;
background-color:white;
width: 75px;
height: 65px;
border: 0px;
cursor: pointer;
transition: color 1s linear;
transition: background-color 1s linear;
}
.numberbutton4:hover{
background-color:brown;
color: white;
}
#text11{
font-size: 50px;
font-weight: bold;
width: 400px;
height: 60px;
border: 0px;
border-radius: 10px;
transition: color 1s linear;
transition: background-color 3s linear;
}
#text11:hover{
border: 0px;
background-color: black;
color: white;
}
h2{
margin-top:300px;
}
#selecet1{
border: 0px;
background-color: skyblue;
color: white;
transition:background-color 1s linear;
}
#selecet1:hover{
background-color: black;
}
</style>
</head>
<body onload="beginState()">
<form name="form1">
<table>
<tr>
<td colspan="8"><input type="text" name="result" size="40" id="text11"></td>
<td><input type="button" name="" title="清除" value="C" onclick="cleartext()" class="numberbutton"></td>
<td><img src="back.png" name="" title="退格" onclick="backspace()" class="numberbutton" /></td>
</tr>
<tr>
<td><input type="button" value="9" onclick="addnumber('9')" class="numberbutton"></td>
<td><input type="button" value="8" onclick="addnumber('8')" class="numberbutton"></td>
<td><input type="button" value="7" onclick="addnumber('7')" class="numberbutton"></td>
<td><input type="button" name="" value="-" onclick="setOper('-')" class="numberbutton3"></td>
<td><input type="button" value="x" onclick="setOper('x')" class="numberbutton1"></td>
</tr>
<tr>
</tr>
<tr>
<td><input type="button" value="6" onclick="addnumber('6')" class="numberbutton"></td>
<td><input type="button" value="5" onclick="addnumber('5')" class="numberbutton"></td>
<td><input type="button" value="4" onclick="addnumber('4')" class="numberbutton"></td>
<td><input type="button" value="+" onclick="setOper('+')" class="numberbutton4"></td>
<td><input type="button" value="/" onclick="setOper('/')" class="numberbutton2"></td>
</tr>
<tr>
<td><input type="button" value="3" onclick="addnumber('3')" class="numberbutton"></td>
<td><input type="button" value="2" onclick="addnumber('2')" class="numberbutton"></td>
<td><input type="button" value="1" onclick="addnumber('1')" class="numberbutton"></td>
<td><input type="button" name="" onclick="addnumber('0')" value="0" class="numberbutton"></td>
<td><input type="button" name="" value="=" onclick="totalnumber()" class="numberbutton"></td>
</tr>
</table></form>
<h2>第二种实现计算器的方式</h2>
<form id="form2">
<input type="text" placeholder="请输入数字" onclick="number1()" value="0" id="n1">
<select id="selecet1">
<option onclick="total('+')">+</option>
<option onclick="total('-')">-</option>
<option onclick="total('*')">x</option>
<option onclick="total('/')">/</option>
</select>
<input type="text" placeholder="请输入数字" onclick="number2()" value="0" id="n2">
<input type="button" value="=" onclick="end()" >
<input type="text" id="result1" size="20">
</form>
<script>
function number1(){
form2.n1.value="";
}
function number2(){
form2.n2.value="";
}
function end(){
var aa=form2.n1.value;
var bb=form2.n2.value;
var cc=form2.selecet1.value;
switch(cc){
case "+":
document.getElementById('result1').value=parseFloat(aa)+parseFloat(bb);
break;
case "-":
document.getElementById('result1').value=parseFloat(aa)-parseFloat(bb);
break;
case "x":
document.getElementById('result1').value=parseFloat(aa)*parseFloat(bb);
break;
case "/":
document.getElementById('result1').value=parseFloat(aa)/parseFloat(bb);
break;
}
}
</script>
</body>
</html>