Создание приложения "калькулятор" на языке JavaScript

Автор работы: Пользователь скрыл имя, 07 Апреля 2012 в 22:59, курсовая работа

Описание

Целью курсового проекта является разработка интерактивного, вспомогательного приложения «Калькулятор».
Основными задачами в данной работе являются:
1. обследование объектов и описание предметной области;
2. выбор средств разработки;

Содержание

Введение…………………………………………………………………………...6
1. Аналитическая часть…………………………………………………………...8
1.1. Описание калькулятора………………………………………..................9
1.2. Обоснование и выбор средств разработки……………………………..11
1.3. Постановка задачи……………………………………………………….18
2. Проектная часть……………………………………………………………….19
2.1. Описание основных возможностей и функций разрабатываемого приложения «Калькулятор»….……………….….…………………………….20
2.2. Программная реализация………………………………………………..21
2.3. Руководство пользователя……………………………………………....24
Заключение……………………………………………………………………….25
Список использованной литературы…………………………………………...27
Приложение………………………………………

Работа состоит из  1 файл

Курсовая.doc

— 305.00 Кб (Скачать документ)

    Рассмотрев и сравнив несколько языков программирования я пришла к выводу что самым простым и легким в использовании является  JavaScript.

     Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:

      объекты, с возможностью интроспекции;

      функции как объекты первого класса;

      автоматическое приведение типов;

      автоматическая сборка мусора;

      анонимные функции.

 

1.3.  Постановка задачи

              Задача курсовой работы состоит в разработке приложения - калькулятора, которое позволяет считать выражения, состоящие из различных чисел от 0 до 9, функции - корень квадратный

        Необходимо разработать удобный пользовательский интерфейс для работы с приложением.

     Следовательно, в алгоритме нужно осуществлять проверку на неверно введенные символы и ошибочно нажатые клавиши. Так же необходимо учесть количество открытых и закрытых скобок. Алгоритм приложения следующий: включается функция get_token(), в которой каждый вводимый символ проверяется является ли он выходом, выводом ответа, операцией «+», «-», «*», «/», цифрой или буквой, в каждом из этих случаев происходит дальнейший рекурсивный разбор введенного выражения.



 

 

 

 

 

 

 

 

 

 

 

 

 

КП 2068280-080801-01-2012

Изм.

Лист

№ докум.

Подп.

Дата

 

 

Разработал

Волкова А.А.

 

 

 

Лит.

Лист

Листов

Проверил

Громов Н.В.

 

 

 

 

У

 

21

6

Консультант

 

 

 

Проектная

ТвГТУ ПИЭ-5

Утвердил

 

 

 

часть

 

 

 

 

 




2. Проектная часть

2.1.  Описание основных возможностей и функций разрабатываемого приложения

      Проанализировав поставленную задачу необходимо разработать синтаксический анализатор выражений, для реализации которого использовался алгоритм множественного выбора. При разборе выражение разбивается на составные части – термы, который в свою очередь состоит из факторов. Факторами могут являться числа или подвыражения, состоящего из других факторов. Терм является произведением или отношением факторов. Поочередно, анализируя каждый введенный символ, скрипт объединяет их в факторы, а готовые факторы в термы, после подсчета которых выдается окончательный ответ. Это правило очень важно, так как должен соблюдаться строгий приоритет выполнения операций, то есть вложенные элементы должны иметь операции с более высоким приоритетом. Сначала, если есть функции,  вычисляется их значение. У арифметических операций приоритет следующий: сначала выполняется возведение в степень, затем умножение, деление, сложение и вычитание. Если выражение содержит скобки, то в первую очередь вычисляется подвыражение во вложенных скобках самого нижнего уровня, а затем по возрастанию уровня.

     Разрабатываемое приложение «Калькулятор» производит следующие функции: сложение, вычитание, умножение, деление, вычисления квадрата,

экспоненциальной функции.

 

 

 

 

 



2.2.  Программная реализация

<html>

<TITLE>Калькулятор стандарт</TITLE>

<SCRIPT LANGAUGE="JAVASCRIPT 1.3 TYPE="text/javascript">

<!--

//

var wynik=0, op=0, nowe=0, nowe2=0, done=1, oset=0, kropka, temp;

 

function reset(value)            сбрасывание значения заданных переменных

{

document.form1.ekran.value = value;

wynik = 0,

op    = 0,

nowe  = 0,

nowe2 = 0;

done  = 1;

oset  = 0;

}

function wspolna(new_temp)

{

kropka = 1;

if(nowe || done) {

nowe = 0;

done = 0;

temp = new_temp;

}

for(var i=0; i<temp.length; i++) if (temp[i]=='.') kropka=0;

}

function button(ktory,ktory2)        -  создание кнопок

{

temp = document.form1.ekran.value;

if(ktory2=='.') {

wspolna('0');

if(kropka) {

temp += ktory2;

document.form1.ekran.value = temp;

oset = 0;

}

}

if(ktory>=0 && ktory<=9)  {

wspolna('');

if(temp==0 && kropka==1) temp='';

temp += ktory;

document.form1.ekran.value = temp;

oset = 1;

}

if(ktory2=='-' || ktory2=='+' || ktory2=='/' || ktory2=='*') {

if(nowe) op = ktory2

else {

if(!nowe2) {

op = ktory2;

wynik = temp;

nowe2=1;

}

else {

wynik = eval(wynik + op + temp);

op = ktory2;

document.form1.ekran.value = wynik;

}

oset=0;

nowe = 1;

}

}

if(ktory2=='1/x' ) { wynik = eval(1 / temp) ; reset(wynik); }

if(ktory2=='sqrt') { wynik = Math.sqrt(temp); reset(wynik); }

if(ktory2=='exp' ) { wynik = Math.exp(temp) ; reset(wynik); }

if(ktory2=='+/-')  document.form1.ekran.value = eval(-temp);

if(ktory2=='=' && oset && op!='0') reset(eval(wynik + op + temp));

if (ktory2=='C') reset(0);

if(document.form1.ekran.value[0] == '.')

document.form1.ekran.value = '0' + document.form1.ekran.value;

}

//-->

</script>

 

<body>

 

<form name="form1">

  <table bgColor="#430086">

<tbody>

    <tr>

      <td><table bgColor="#430086" border="1" cellPadding="0" cellSpacing="5">

<tbody>

        <tr align="middle">

          <td colSpan="5"><input name="ekran" value="0" size="20"></td>

        </tr>

        <tr align="middle">

          <td colSpan="4"><b><font color="#FFFF00">Калькулятор</font></b></td>

          <td><input name="C" onclick="button(11,'C')" type="button" value="  C  "></td>

        </tr>

        <tr align="middle">

 

              Создание массива, присваивающего имя каждой кнопки:

          <td><input name="7" onclick="button(7 ,'')" type="button" value="  7  "></td>

          <td><input name="8" onclick="button(8 ,'')" type="button" value="  8  "></td>

          <td><input name="9" onclick="button(9 ,'')" type="button" value="  9  "></td>

          <td><input name="/" onclick="button(11,'/')" type="button" value="  /  "></td>

          <td><input name="sqrt" onclick="button(11,'sqrt')" type="button" value="sqrt"></td>

        </tr>

        <tr align="middle">

          <td><input name="4" onclick="button(4,'')" type="button" value="  4  "></td>

          <td><input name="5" onclick="button(5,'')" type="button" value="  5  "></td>

          <td><input name="6" onclick="button(6,'')" type="button" value="  6  "></td>

          <td><input name="*" onclick="button(11,'*')" type="button" value=" *  "></td>

          <td><input name="exp" onclick="button(11,'exp')" type="button" value="exp"></td>

        </tr>

        <tr align="middle">

          <td><input name="1" onclick="button(1,'')" type="button" value="  1  "></td>

          <td><input name="2" onclick="button(2,'')" type="button" value="  2  "></td>

          <td><input name="3" onclick="button(3,'')" type="button" value="  3  "></td>

          <td><input name="-" onclick="button(11,'-')" type="button" value="  -  "></td>

          <td><input name="1/x" onclick="button(11,'1/x')" type="button" value="1/x "></td>

        </tr>

        <tr align="middle">

          <td><input name="0" onclick="button(0,'')" type="button" value="  0  "></td>

          <td><input name="+/-" onclick="button(11,'+/-')" type="button" value=" +/- "></td>

          <td><input name="." onclick="button(11,'.')" type="button" value="  ,  "></td>

          <td><input name="+" onclick="button(11,'+')" type="button" value="  +  "></td>

          <td><input name="=" onclick="button(11,'=')" type="button" value="  =  "></td>

        </tr>

</tbody>

      </table>

      </td>

    </tr>

</tbody>

  </table>

</form>

 

 

 

 

 



2.3. Руководство пользователя

              Для запуска данного приложения необходимо наличие персонального компьютера с операционной системой Windows XP или Windows Vista. Для запуска приложения необходимо сделать текущим каталог с расширением Calculator.html и вызвать его на выполнение.

              После запуска приложения перед нами появится главное меню приложения, а затем выбрав необходимые кнопки для выполнения арифметических операций.

      Кнопки с цифрами образуют массив кнопок индексы, которых совпадают с их надписями.

      Кнопка точка - это точка или запятая, которая ставится для десятичных, сотенных, тысячных чисел.

      Кнопка [+/-] - изменения знака числа.

      Кнопки арифметических операций:

[+] - кнопка сложения чисел;

[-]  - кнопка вычитания чисел;

[*]  - кнопка умножения чисел;

[/]  - кнопка вычитания чисел;

      Кнопка [С] - "сброс", т.е. сбрасывает всё, если неверно набрали число.

      Кнопка [sqrt] – вычисление корня из квадрата.

      Кнопка [exp] - вычисление экспоненциальной функции.

      Кнопка [1/х] - единица, делённая на какое-то чило.

      Кнопка [=] - "равно",  т.е. суммирует числа.

 

             

 

 

 

                           

             



 

 

 

 

 

 

 

 

 

 

 

 

 

КП 2068280-080801-01-2012

Изм.

Лист

№ докум.

Подп.

Дата

 

 

Разработал

Волкова А.А.

 

 

 

Лит.

Лист

Листов

Проверил

Громов Н.В.

 

 

 

 

У

 

27

2

Консультант

 

 

 

Заключение

ТвГТУ ПИЭ-5

Утвердил

 

 

 

 

 

 

 

 

 




Заключение

              Итак, в данном курсовом проекте мною было разработано интерактивное приложение «Калькулятор» и были выполнены поставленные задачи, а именно:

- в приложении был реализован удобный графический пользовательский интерфейс;

- приложение позволяет вычислять выражения, содержащие численные значения и некоторые функции;

-  приложение разработано на языке JavaScript.

              Среди достоинств данного приложения стоит отметить тот факт, что приложение обладает довольно качественным и понятным интерфейсом. Пользователь без труда может сориентироваться при запуске приложения. Также одним из достоинств приложения является то, что диалог пользователя с приложением «Калькулятор» осуществляется при помощи понятных и довольно удобных кнопок. Следует также заметить то, что в целом, приложение выполнено в классическом варианте для приложений, разработанных для операционной Windows XP или Windows Vista. То есть, это удобная, не надоедливая цветовая гамма, которая не раздражает после долгой работы органы зрения пользователя.

     Перспективы моего «Калькулятора» в том, что его могут использовать все: школьники, домохозяйки, ученые и т.д. Сейчас с калькуляторами работают почти все организации. Банки, магазины, заводы. Калькуляторы онлайн используются на многих сайтах.

 

 

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

КП 2068280-080801-01-2012

Изм.

Лист

№ докум.

Подп.

Дата

 

 

Разработал

Волкова А.А.

 

 

 

Лит.

Лист

Листов

Проверил

Громов Н.В.

 

 

Список

 

У

 

29

2

Консультант

 

 

 

использованной

ТвГТУ ПИЭ-5

Утвердил

 

 

 

литературы

 

 

 

 

 

Информация о работе Создание приложения "калькулятор" на языке JavaScript