https://github.com/hummel009/web-technologies-ii
ВТ - лабораторные работы БГУИР (3 курс)
https://github.com/hummel009/web-technologies-ii
bsuir bsuir-labworks gradle java labs
Last synced: 3 months ago
JSON representation
ВТ - лабораторные работы БГУИР (3 курс)
- Host: GitHub
- URL: https://github.com/hummel009/web-technologies-ii
- Owner: Hummel009
- License: gpl-3.0
- Created: 2023-09-09T14:05:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-21T18:15:42.000Z (3 months ago)
- Last Synced: 2025-02-21T19:26:50.832Z (3 months ago)
- Topics: bsuir, bsuir-labworks, gradle, java, labs
- Language: Java
- Homepage:
- Size: 9.04 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Code Smells][code_smells_badge]][code_smells_link]
[![Maintainability Rating][maintainability_rating_badge]][maintainability_rating_link]
[![Security Rating][security_rating_badge]][security_rating_link]
[![Bugs][bugs_badge]][bugs_link]
[![Vulnerabilities][vulnerabilities_badge]][vulnerabilities_link]
[![Duplicated Lines (%)][duplicated_lines_density_badge]][duplicated_lines_density_link]
[![Reliability Rating][reliability_rating_badge]][reliability_rating_link]
[![Quality Gate Status][quality_gate_status_badge]][quality_gate_status_link]
[![Technical Debt][technical_debt_badge]][technical_debt_link]
[![Lines of Code][lines_of_code_badge]][lines_of_code_link]Мои лабораторные работы для 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.
* Классы и другие сущности приложения должны быть грамотно структурированы по пакетам и иметь отражающую их
функциональность название.[code_smells_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=code_smells
[code_smells_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[maintainability_rating_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=sqale_rating
[maintainability_rating_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[security_rating_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=security_rating
[security_rating_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[bugs_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=bugs
[bugs_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[vulnerabilities_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=vulnerabilities
[vulnerabilities_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[duplicated_lines_density_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=duplicated_lines_density
[duplicated_lines_density_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[reliability_rating_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=reliability_rating
[reliability_rating_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[quality_gate_status_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=alert_status
[quality_gate_status_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[technical_debt_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=sqale_index
[technical_debt_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II
[lines_of_code_badge]: https://sonarcloud.io/api/project_badges/measure?project=Hummel009_Web-Technologies-II&metric=ncloc
[lines_of_code_link]: https://sonarcloud.io/summary/overall?id=Hummel009_Web-Technologies-II