Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2012, 23:36   #1
EvgeniyPR
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 10
По умолчанию JavaScript калькулятор

доделать нужно мучаюсь уже две недели

Реализовать на языке HTML, CSS, JavaScript калькулятор.
Требования:
1.При наведении курсора на цифровые кнопки и кнопки операций вид курсора меняется на «указатель»
2.При наведении курсора на поле вывода вид курсора меняется на «текстовый»
3.Проверка на ввод не более 5 символов в операнде
4.Проверка на ввод не более одной операции (65*+89 — ошибка!)
5.Проверка на ввод не более одной точки в операнде (2.01+8.76 — верно; 2.2.3*7 — неверно)
6.Проверка на пустоту операции и второго операнда для унарных операций (корень и 1/х)
7.Проверка деления на 0 (выводить сообщение в поле вывода!)
8.Проверка на невозможность ввести более одного нуля подряд, если первый символ ноль (000 — неверно, 1.008; 1000 — верно)
9.После вычисления число в поле вывода должно считаться первым операндом для дальнейших действий (3+5=8 — число 8 в поле вывода должно быть первым операндом, при последующем нажатии на 5 должно получится 85, далее при нажатии на «+» - 85+ и.т.д.)

«x2», «xy», «sin», «cos», «tg», «градусы<—>радианы»

Код:
код HTML
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/JavaScript" src="calc.js"></script>
    </head>
    
        <body onload="init()">
        <table width="200px" height="200px" border="2px" align="center">
    <tr>
        <td colspan="4" id="inputTd"></td>
        <td onclick="clr()">C</td>
    </tr>
     <tr>
        <td onclick="addDigit(0)">0</td> 
        <td onclick="addDigit(1)">1</td>
        <td onclick="addDigit(2)">2</td>
        <td onclick="setOperation('-')">-</td>
        <td onclick="setOperation('+')">+</td>
    </tr>
     <tr>
        <td onclick="addDigit(3)">3</td>
        <td onclick="addDigit(4)">4</td>
        <td onclick="addDigit(5)">5</td>
        <td onclick="setOperation('*')">*</td>
        <td onclick="setOperation('/')">/</td>
    </tr>
     <tr>
     
        <td onclick="addDigit(6)">6</td>
        <td onclick="addDigit(7)">7</td>
        <td onclick="addDigit(8)">8</td>
        <td onclick="addDigit(9)">9</td>
        <td onclick="calculate()">=</td>
    </tr>
     
    </table>
  

    </body>
</html>
Код:
Код JavaScript
var inputStr = "";
var currentOperation = "";
var operant1="";
var operant2="";

 var inputObj;
function addDigit(x){
    if(operant1.length <4){
    inputStr = inputStr + x;
 inputObj.innerHTML = inputStr;
 operant1+=x;
}else {if((currentOperation !="")&&(operant2.length<4)){
        operant2+=x;
        inputStr+=x;
        inputObj.innerHTML=inputStr;
}
}
}
function init(){
    inputObj = document.getElementById("inputTd");
}
function clr(){
    operant1="";
    operant2="";
    inputStr="";
    inputObj.innerHTML = inputStr;
    currentOperation="";
    
}
function setOperation(o){
    if(currentOperation.length<1){
    currentOperation = o;
    inputStr = inputStr + o;
    inputObj.innerHTML = inputStr;}
}
function calculate(){
     if((inputStr[inputStr.length-2]=="/")&&(inputStr[inputStr.length-1]==0)){
        alert("Ошибка деление на 0");
        return;
    }
    var tmp=eval(inputStr);
    clr();
    inputObj.innerHTML=tmp;
    
    
}
EvgeniyPR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript - классы, они есть или их нету в Javascript? Kasper1 JavaScript, Ajax 3 05.03.2011 09:42
Калькулятор seregan1993 Общие вопросы C/C++ 3 23.05.2010 17:41
Калькулятор Ekaterina90 Помощь студентам 0 18.05.2010 11:02
Калькулятор ViNcHeStEr Помощь студентам 5 23.11.2008 15:39