Skip to content

ВТ - лабораторные работы БГУИР (3 курс)

License

Notifications You must be signed in to change notification settings

Hummel009/Web-Technologies-II

Repository files navigation

Code Smells Maintainability Rating Security Rating Bugs Vulnerabilities Duplicated Lines (%) Reliability Rating Quality Gate Status Technical Debt Lines of Code

Мои лабораторные работы для BSUIR/БГУИР (белорусский государственный университет информатики и радиоэлектроники).

Предмет - WT/ВТ (веб-технологии).

Условия

Лабораторная работа 1

Задание 1

  • Вычислить значение выражения по формуле (все переменные принимают действительные значения).
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 2

  • Для данной области составить программу, котораяпечатает true, если точка с координатами (х, у) принадлежит закрашенной области, и false — в противном случае.
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 3

  • Составить программу для вычисления значений функции F(x) = tan(x) на отрезке [а, b] с шагом h. Результат представить в виде таблицы, первый столбец которой – значения аргумента, второй - соответствующие значения функции.
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 4

  • Задан целочисленный массив размерности N. Определить, есть ли среди элементов массива простые числа. Если да, то вывести номера этих элементов.
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 5

  • Дана целочисленная таблица А[n]. Найти наименьшее число K элементов, которые можно выкинуть из данной последовательности, так чтобы осталась возрастающая подпоследовательность.
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 6

  • Даны действительные числа a1, a2, …, an. Получить следующую квадратную матрицу порядка n.
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 7

  • Дан массив n действительных чисел. Требуется упорядочить его по возрастанию. Делается это следующим образом: сравниваются два соседних элемента ai и ai+1 . Если ai <= ai+1, то продвигаются на один элемент вперед. Если ai > ai+1, то производится перестановка и сдвигаются на один элемент назад. Составить алгоритм этой сортировки.
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 8

  • Пусть даны две неубывающие последовательности действительных чисел a1 <= a2 <= … <=an и b1 <= b2 <= … <= bm. Требуется указать те места, на которые нужно вставлять элементы последовательности b1 <= b2 <= … <= bm в первую последовательность так, чтобы новая последовательность оставалась возрастающей.
  • Для модульного тестирования приложения разработайте JUnit-тесты.

Задание 9

  • Создать класс Мяч. Создать класс Корзина. Наполнить корзину мячиками. Определить вес мячиков в корзине и количество синих мячиков.
  • Для модульного тестирования приложения создать JUnit-тесты.

Задание 10

Скомпилировать и запустить приложение, созданное при решении задачи 9 из командной строки.

Задание 11

Создать запускной jar-файл и запустить приложение, созданное при решении задачи 9.

Задание 12

Не пользуясь средствами автогенерации кода переопределить для класса Book методы equals(), hashCode() и toString().

Задание 13

Не пользуясь средствами автогенерации кода переопределить для класса ProgrammerBook методы equals(), hashCode() и toString().

Задание 14

  • Не пользуясь средствами автогенерации кода переопределить для класса Book из задачи 12 метод clone().
  • Напишите тесты JUnit, проверяющие корректность клонирования.

Задание 15

  • Реализовать интерфейс Comparable.
  • Добавьте в класс Book из задачи 12 поле isbn. Реализуйте в классе Book интерфейс Comparable так, чтобы книги приобрели сортировку по умолчанию согласно номеру isbn.
  • Напишите тесты JUnit, проверяющие корректность сортировки.

Задание 16

  • Реализовать интерфейс Comparator.
  • Реализуйте для класса Book из задачи 12 компараторы, позволяющие сортировать книги по названию; по названию, а потом по автору; по автору, а потом по названию; по автору, названию и цене.
  • Напишите тесты JUnit, проверяющие корректность сортировок.

Лабораторная работа 2

Тема работы: "Интернет-магазин". Образец функционала:

  • Администратор осуществляет ведение каталога товаров.
  • Клиент формирует и оплачивает заказ.
  • Администратор управляет клиентами: предоставляет скидки, купоны, ставит баны.

Общий образец функционала:

  • Вход и выход в/из системы.
  • Регистрация пользователя или добавление артефакта предметной области системы.
  • Просмотр информации (например: просмотр всех курсов, имеющихся кредитных карт, счетов и т.д.)
  • Удаление информации (например: отмена заказа, медицинского назначения, отказ от курса обучения и т.д.)
  • Добавление и модификация информации (например: создать и отредактировать курс, создать и отредактировать заказ и т.д.)

Технические требования:

  • Приложение реализовать применяя технологии Servlet и JSP.
  • Архитектура приложения должна соответствовать шаблонам Layered architecture и Model-View-Controller.
  • Информация о предметной области должна хранится в БД:
    • Данные в базе хранятся на кириллице, рекомендуется применять кодировку UTF-8.
    • Технология доступа к БД – JDBC (только JDBC).
    • Для работы с БД в приложении должен быть реализован пул соединений.
    • При проектировании БД рекомендуется не использовать более 6-8 таблиц.
  • Интерфейс приложения должен быть локализован; выбор из двух или более языков: (английский, белорусский, и т д.).
  • Приложение должно корректно обрабатывать возникающие исключительные ситуации, в том числе вести их логи. В качестве логгера использовать Log4J или SLF4J.
  • Классы и другие сущности приложения должны быть грамотно структурированы по пакетам и иметь отражающую их функциональность название.

Общие требования:

  • При реализации бизнес-логики приложения следует при необходимости использовать шаблоны проектирования (например, шаблоны GoF: Factory Method, Command, Builder, Strategy, State, Observer, Singleton, Proxy etc), а также необходимо избегать процедурного стиля программирования.
  • Для хранения пользовательской информации между запросами использовать сессию.
  • Для перехвата и корректировки (при необходимости) объектов запроса (request) и ответа (response) применить фильтры.
  • При реализации страниц JSP следует использовать теги библиотеки JSTL, использовать скриплеты запрещено. Просмотр “длинных списков” желательно организовывать в постраничном режиме.
  • Валидацию входных данных производить на клиенте и на сервере.
  • Документацию к проекту необходимо оформить согласно требованиям javadoc.
  • Оформление кода должно соответствовать Java Code Convention.
  • Рекомендуется использовать технологию Maven.
  • Приложение должно содержать JUnit-тесты (метрики на усмотрение студента).

Лабораторная работа 3

Important

После открытия проекта в IntelliJ IDEA, чтобы не было 404, в Run Configurations нужно указать в качестве Working-directory "appLab3"

  • Приложение реализовать применяя технологии Spring Core, Spring MVC, Hibernate.
  • Конфигурация может задаваться в xml-файлах, через Java-конфигурацию. Использовать аннотации разрешено.
  • Архитектура приложения должна соответствовать шаблонам Layered architecture и Model-View-Controller.
  • Информация о предметной области должна хранится в БД:
    • Данные в базе хранятся на кириллице;
    • Технология доступа к БД – Hibernate;
    • Для работы с БД в приложении должен быть использован любой встроенный пул соединений;
  • Опционально: интерфейс приложения должен быть локализован; выбор из двух или более языков: (английский, белорусский, и т д.).
  • Опционально: для авторизации и аутентификации можно применить Spring Security.
  • Классы и другие сущности приложения должны быть грамотно структурированы по пакетам и иметь отражающую их функциональность название.

About

ВТ - лабораторные работы БГУИР (3 курс)

Topics

Resources

License

Stars

Watchers

Forks

Languages