Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тест №3: Expression(Компилятор выражений, построение польской записи и вычисление на основе неё) ⇐ ПредыдущаяСтр 3 из 3
Проверка вычислений двух функций с последуюшим сравнением результатов. вводные данные, одна строка. package com.devcolibri.logic; /** /** /** Вычислить выражение для даных значений переменных */
public Num(long x) { @Override /** Узел дерева — «Строка» */ public Str(String x) { @Override /** Узел дерева — «Переменная» */ public Var(String name) { @Override
public Unary(Expression e, String oper) { @Override
/** Узел дерева — «Бинарный оператор» */ public Binary(Expression x1, Expression x2, String op) { @Override Class type = commonType(o1, o2); if (type == String. class) private Class commonType(Object o1, Object o2) { private Object execStr(String s1, String s2) throws Exception { private Object execBool(boolean q1, boolean q2) throws Exception { private Object execNum(long n1, long n2) throws Exception {
throw new Exception("Illegal Long operator: " + op);
package com.devcolibri.logic; /** import org.junit.Test; /** Компилятор выражений */ private String expression; // Строка с исходным выражением public static Expression build(String expression) { private ExpressionBuilder(String expression) {
if (startWith("(")) { boolean unarNot = state == 2 && startWith("!"); /* Строим первый операнд */ // строим последущие операнды } private static String [][] states = new String[][] { private boolean lastState(int s) { private boolean startWith(String s) { private void skip(String s) {
/** // в потоке не строка => число или переменная Expression ex = null; if ("null". equals(s)) // не строка, не число и не null — значит переменная }
// для юнит-тестов @Test
Map<String, Object> map = new HashMap<String, Object>(); Expression e = ExpressionBuilder. build ("str!= 'qwerty' && n1 / n2 >= 3 * (n2 + 10 / n1 * (2+3))");
6.Взаимодействие пользователя с системой. 1)Главная страница магазина: основные две кнопки товар и корзина. Как не зарегистрированный человек, мы можем зайти и посмотреть что предлагает наш магазин. На верху поле ввода логина и пароля, для того, что бы авторизоваться.
2) Откроем меню Каталога. Видим все возможные книги, что у нас представлены
3) Зайдем в любую интересующую нас книгу. Выйдем назад.
4) Добавим в корзину книгу 1 2 и 3 по 1 штуке. С помощью кнопки-ссылки добавить в корзину.
5) Авторизируемся. Форма Авторизации всегда находиться на верху экрана. Поэтому мы можем всегда авторизироваться из любой точки сайта.
6) Корзина при Авторизации осталась с тем-же товаром. Благодаря сессии
7) Допустим мы хотим купить данный товар. Нажимаем кнопку Отправить заказ. И попадаем в форму с оформленным заказом. Ценой количеством и названием товара. 8) Решили в итоге купить первый заказ. Нажали купить. Получили форму
9) Нажимаем оплачено, оплачиваем и теперь имеем возможность читать книги онлайн. Нажимаем кнопку “Мои книги”.
10) Выбрали книгу. Нажимаем читать онлайн. 11) Перейдем на Администраторскую часть. Новая форма, новые возможности. 12) Посмотрим Всех пользователей зарегестрированных. 13) Если выберем все заказы, то получим все заказы построчно.
8.Диаграмма Ганга. В нашем, постоянно изменяющемся мире. Требуется постоянно быть в тренде, изменяться вместе с постоянно развивающемся мире. Каждый новый день усовершенствуются системы защиты. Каждый новый день, находятся способы обойти защиту. Именно поэтому, основная задача что стоит перед разработчиками, стоит в усовершенствовании методов защиты. Максимальное сокрытие передаваемых данных. Проверка вводимых параметров. Разложение любого запроса до составляющих и автоматическая чистка передаваемых параметров. Так же магазин не может оставаться без маркетологов и проверки на необходимость товара, поэтому я внес в диаграмму Ганга все эти задачи параллельным выполнением.
7. Заключение
Таким образом, использование данного приложения поможет отразить полную картину работы сайта: регистрация пользователя, работа с корзиной, заказ товара, чтение и вывод файла. Структура программы позволяет расширить функциональные возможности для постоянно растущих запросов пользователей. Мы доказали, что наш сайт является системой АИС. Произвели тестирование некоторых моделей. Указали структуру баз данных. Указали структуру программного обеспечения и прописали всевозможные взаимодействия пользователей и системы. Детально прорисовали бизнесс-процессы Постарались учесть максимальное число ошибок в работе программы, мы ввели защиты от повторной регистрации, от попыток проникновения на сайт через вредоносный код, так же мы передаем все регистрационные данные в скрытом виде. Что бы злоумышленник не мог захватить данные. Также составили план работы и прорисовали диаграмму Ганга.
8. Литература
1. Интернет. 2. Учебная литература.(слайды)
|
|||||||
Последнее изменение этой страницы: 2017-02-17; просмотров: 163; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.108.54 (0.038 с.) |