- •Расчётно-пояснительная записка к курсовой работе на тему:
- •Реферат на расчетно-пояснительную записку к курсовой работе на тему: программа «MathX»
- •Содержание
- •Введение.
- •1. Анализ технических требований и уточнение спецификаций
- •1.1. Анализ задания, выбор технологии, языка и среды программирования
- •1.2. Разработка диаграммы вариантов использования
- •1.3. Выбор методов решения задачи и разработка основных алгоритмов предметной области
- •2. Проектирование программного продукта
- •2.1. Разработка интерфейса пользователя
- •2.1.1. Разработка диаграммы состояний интерфейса
- •2.1.2. Разработка меню
- •2.1.3. Разработка форм ввода вывода
- •2.2.Разработка структурной схемы программного продукта.
- •2.3.Разработка основных алгоритмов программного продукта.
- •3. Реализация программы.
- •4. Выбор стратегии тестирования и разработка тестов
- •Заключение
- •Список литературы
1.3. Выбор методов решения задачи и разработка основных алгоритмов предметной области
Для реализации подсчёта выражений (а так же это понадобится в вычислении интегралов, производных) был выбран алгоритм, который преобразует инфиксную запись числа (например (2+3)*4) в постфиксную (например 2 3 + 4 *) .В результате преобразований выражение получается без скобок, что дает возможность легко считать его аппаратно. Для преобразования в постфиксную запись был выбран «Алгоритм сортировочной станции», т. к. этот алгоритм имеет линейную сложность O(n), и может так же работать с функциями и переменными. ниже приведен пример алгоритма разбора.
Пока не все токены обработаны:
-
Прочитать токен.
-
Если токен — число, то добавить его в очередь вывода.
-
Если токен — функция, то поместить его в стек.
-
Если токен — разделитель аргументов функции (например запятая):
-
Пока токен на вершине стека не открывающая скобка, перекладывать операторы из стека в выходную очередь. Если в стеке не было открывающей скобки, то в выражении пропущен разделитель аргументов функции (запятая), либо пропущена открывающая скобка.
-
Если токен — оператор op1, то:
-
Пока присутствует на вершине стека токен оператор op2, и
Либо оператор op1 лево-ассоциативен и его приоритет меньше чем у оператора op2 либо равен,
или оператор op1 право-ассоциативен и его приоритет меньше чем у op2,
переложить op2 из стека в выходную очередь;
-
положить op1 в стек.
-
Если токен — открывающая скобка, то положить его в стек.
-
Если токен — закрывающая скобка:
-
Пока токен на вершине стека не является открывающей скобкой, перекладывать операторы из стека в выходную очередь.
-
Выкинуть открывающую скобку из стека, но не добавлять в очередь вывода.
-
Если токен на вершине стека — функция, добавить ее в выходную очередь.
-
Если стек закончился до того, как был встречен токен открывающая скобка, то в выражении пропущена скобка.
-
Если больше не осталось токенов на входе:
-
Пока есть токены операторы в стеке:
-
Если токен оператор на вершине стека — открывающая скобка, то в выражении присутствует незакрытая скобка.
-
Переложить оператор из стека в выходную очередь.
-
Конец.
-
2. Проектирование программного продукта
2.1. Разработка интерфейса пользователя
Разрабатываемая программа предназначена для пользователей, имеющих сравнительно небольшой навык в пользовании компьютером. Поэтому пользовательский интерфейс решено сделать максимально простым и понятным. Это позволит сократить время расчетов, что важно при решении лабораторных работ и при вычислениях на калькуляторе. Кроме того, именно интерфейс определяет структуру программы, поэтому разработку целесообразно начать с него.
2.1.1. Разработка диаграммы состояний интерфейса
Существует множество типов пользовательского интерфейса: примитивные, меню, со свободной навигацией, прямого манипулирования.
Из этого множества было принято решение использовать интерфейс со свободной навигацией (графический пользовательский интерфейс). Так же его называют WYSIWYG (What You See Is What You Get - что видишь, то и получишь). В отличие от интерфейса-меню, интерфейс со свободной навигацией обеспечивает возможность осуществления любых допустимых в конкретном состоянии операций, доступ к которым возможен через различные интерфейсные компоненты. Например, окна программ, реализующие интерфейс Windows обычно содержат:
– меню различных типов.
– различного вида компоненты ввода данных.
С учетом всего перечисленного выше был проанализирован процесс обработки и техническое задание и разработана диаграмма состояний интерфейса, изображённая на рисунке 2.
Рисунок 2– Диаграмма состояний интерфейса.
1 — Нажатие на кнопку «Закрыть»/Выход в главное меню
2 — Нажатие на кнопку «Справка»
3 — Нажатие на кнопку «Матрица»
4 — Нажатие на кнопку «Назад»/Выход в главное меню
5 — Нажатие на кнопку «Калькулятор»
6 — Нажатие на кнопку «Назад»/Выход в главное меню
5 — Нажатие на кнопку «Калькулятор»
6 — Нажатие на кнопку «Назад»/Выход в главное меню
7— Нажатие на кнопку «Анализ»
8— Нажатие на кнопку «Назад»/Выход в главное меню
9 — Нажатие на кнопку «Производная..»
10 — Нажатие на кнопку «Назад»/Переход на форму «Анализ»
11 — Нажатие на кнопку «Интеграл»
12 — Нажатие на кнопку «Назад»/Переход на форму «Анализ»
13 — Нажатие на кнопку «Выход»/Завершение работы программы.