设计一个程序:实现一个简单的计算器的设计
要求:
1、设计web前端界面
2、 掌握基本的Angular-js开发过程
3、 掌握熟悉Angular-js开发环境的配置
calc.js
var app = angular.module("calculator", []);
app.controller("FirstController", function ($scope) {
$scope.textView = "0";
$scope.fuhao = "";
$scope.firstNumber = "";
$scope.secondNumber = "";
$scope.doEmpty = function () {
$scope.textView = "0";
$scope.fuhao = "";
$scope.firstNumber = "";
$scope.secondNumber = "";
}
//点击正负数时
$scope.valiteNumber = function () {
if ($scope.firstNumber == "") {//什么都没有时
$scope.firstNumber = "-";
return;
}
if ($scope.firstNumber != "" && $scope.fuhao == "") {
if ($scope.firstNumber / 1 > 0) {
$scope.firstNumber = "-" + $scope.firstNumber;
} else {
$scope.firstNumber = $scope.firstNumber.substring(1, $scope.firstNumber.length);
}
$scope.textView = $scope.firstNumber;
return;
}
if ($scope.fuhao != "") {
if ($scope.secondNumber == "") {
$scope.secondNumber = "-";
$scope.textView = $scope.secondNumber;
return;
}
if ($scope.secondNumber / 1 > 0) {
$scope.secondNumber = "-" + $scope.secondNumber;
} else {
$scope.secondNumber = $scope.secondNumber.substring(1, $scope.secondNumber.length);
}
$scope.textView = $scope.secondNumber;
return;
}
}
//点击运算符号
$scope.addChar = function (theChar) {
if ($scope.firstNumber != "" && $scope.fuhao == "") {
if ($scope.firstNumber == "." || $scope.firstNumber == "-") {
return;
}
$scope.fuhao = theChar;
return;
}
if ($scope.firstNumber != "" && $scope.fuhao != "" && $scope.secondNumber == "") {
$scope.fuhao = theChar;
return;
}
if ($scope.firstNumber != "" && $scope.fuhao != "" && $scope.secondNumber != "") {
if ($scope.secondNumber == "." || $scope.secondNumber == "-") {
return;
}
if ($scope.fuhao == "÷" && $scope.secondNumber == "0") {
return;
}
$scope.doCount();
$scope.fuhao = theChar;
return;
}
// $scope.textView = $scope.firstNumber + $scope.fuhao + $scope.secondNumber;
} //addChar
//删除
$scope.deleteOneChar = function () {
if ($scope.secondNumber != "") {
$scope.secondNumber = $scope.secondNumber.substring(0, $scope.secondNumber.length - 1);
$scope.textView = $scope.secondNumber;
return;
}
if ($scope.fuhao != "") {
$scope.fuhao = "";
$scope.textView = $scope.firstNumber;
return;
}
if ($scope.firstNumber != "") {
$scope.firstNumber = $scope.firstNumber.substring(0, $scope.firstNumber.length - 1);
if ($scope.firstNumber == "") {
$scope.textView = "0";
return;
}
$scope.textView = $scope.firstNumber;
return;
}
$scope.textView = 0;
}//deleteOneChar
//添加数字
$scope.addNumber = function (text) {
if ($scope.fuhao == "") {
if (text == "." && $scope.firstNumber.indexOf(".") > -1) {
return;
}
$scope.firstNumber += text;
$scope.textView = $scope.firstNumber;
} else {
if (text == "." && $scope.secondNumber.indexOf(".") > -1) {
return;
}
$scope.secondNumber += text;
$scope.textView = $scope.secondNumber;
}
}
//计算
$scope.doCount = function () {
if ($scope.firstNumber == "" || $scope.fuhao == "" || $scope.secondNumber == "") {
return;
}
if ($scope.firstNumber != "") {
if ($scope.firstNumber == "." || $scope.firstNumber == "-") {
return;
}
}
if ($scope.secondNumber != "") {
if ($scope.secondNumber == "." || $scope.secondNumber == "-") {
return;
}
}
var fNumber = $scope.firstNumber / 1;
var sNumber = $scope.secondNumber / 1;
var result = 0;
switch ($scope.fuhao) {
case "×":
result = fNumber * sNumber;
break;
case "÷":
if (sNumber == 0) {
return;
}
result = fNumber / sNumber;
break;
case "+":
result = fNumber + sNumber;
break;
case "-":
result = fNumber - sNumber;
break;
}
if ($scope.fuhao == "÷" && sNumber == 1) {
} else {
var temp = result + "";
if (temp.indexOf('.') > -1 && temp.split('.')[1].length >= 8) {
result = result.toFixed(8);
}
}
$scope.textView = result / 1 + "";
$scope.fuhao = "";
$scope.firstNumber = result / 1 + "";
$scope.secondNumber = "";
}//doCount
}
);
index.html
<!DOCTYPE html>
<html ng-app="calculator">
<head>
<meta charset="utf-8" />
<title>计算器</title>
<style type="text/css">
body{
padding: 0;margin: 0;
background-color:#49C593 ;
}
#calculator{
position: absolute;
width: 1200px;height: 620px;
left: 50%;top: 50%;
margin-left: -600px;
margin-top: -310px;
}
#calculator #c_title {
margin: auto;
/*margin-left: 300px;*/
width: 800px;
height: 80px;
}
#calculator #c_title h2{
text-align: center;
font-size: 33px;font-family: "微软雅黑";color: #skyblue;
line-height: 30px;
}
#c_text{
width: 1000px;
margin: auto;
}
#calculator #c_text #text{
/*margin-left: 200px;*/
padding-right: 10px;
width: 1000px;
height: 50px;
font-size: 25px;font-family: "微软雅黑";color: #blue;
text-align: right;border: 1px white;
border: double 1px;
}
#calculator #c_value{
width: 1080px;height: 408px;
/*margin-left: 160px;*/
margin: 20px auto;
}
#calculator #c_value ul{
margin: 0;
}
#calculator #c_value ul li{
margin: 10px;
list-style: none;float: left;
width: 180px;height: 80px;line-height: 80px;
text-align: center;background-color: chartreuse;
border: 1px solid black;
font-size: 30px;font-family: "微软雅黑";color: red;
box-shadow: 5px 5px 30px rgba(0,0,0,0.4);
-webkit-user-select: none;
-ms-user-select: none;
-moz-user-select: none;
}
#calculator #c_value ul li:active{
background-color: white;
}
#calculator #c_value ul li:hover{
opacity:0.8;
cursor:pointer;
}
#calculator #c_value ul .c_blue{
background-color: cornflowerblue;color: #000000;
}
#calculator #c_value ul .c_yellow{
background-color: #f9f900;color: #000000;
}
</style>
<script src="https://cdn.bootcss.com/angular.js/1.6.7/angular.min.js"></script>
<script src="js/calc.js"></script>
</head>
<body>
<div id="calculator" ng-controller="FirstController">
<div id="c_title"><h2>计算器</h2></div>
<div id="c_text">
<input type="text" id="text" value="0" readonly="readonly" ng-model="textView" disabled />
</div>
<div id="c_value">
<ul>
<li ng-model="seven" ng-click="addNumber('7')">7</li>
<li ng-model="eight" ng-click="addNumber('8')">8</li>
<li ng-model="nine" ng-click="addNumber('9')">9</li>
<li class="c_blue" ng-model="delete" ng-click="deleteOneChar()">←</li>
<li class="c_blue" ng-model="empty" ng-click="doEmpty()">C</li>
<li ng-model="four" ng-click="addNumber('4')">4</li>
<li ng-model="five" ng-click="addNumber('5')">5</li>
<li ng-model="six" ng-click="addNumber('6')">6</li>
<li class="c_blue" ng-model="cheng" ng-click="addChar('×')">×</li>
<li class="c_blue" ng-model="chu" ng-click="addChar('÷')">÷</li>
<li ng-model="one" ng-click="addNumber('1')">1</li>
<li ng-model="two" ng-click="addNumber('2')">2</li>
<li ng-model="three" ng-click="addNumber('3')">3</li>
<li class="c_blue" ng-model="jia" ng-click="addChar('+')">+</li>
<li class="c_blue" ng-model="jian" ng-click="addChar('-')">-</li>
<li ng-model="zero" ng-click="addNumber('0')">0</li>
<li ng-model="zero" ng-click="addNumber('00')">00</li>
<li ng-model="dot" ng-click="addNumber('.')">.</li>
<li class="c_blue">%</li>
<li class="c_yellow" ng-model="dengyu" ng-click="doCount()">=</li>
</ul>
</div>
</div>
</body>
</html>
运行效果