# Заочники (осень 2022)

## Материалы для освоения дисциплины

Для освоения дисциплины можно воспользоваться материалами для студентов очной формы (раздел "Осень 2020" на сайте). Также для скачивания доступен конспект лекций

{% file src="<https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-MJEV79yk7w3DCk6Trmi%2F-MJEVn_pJRF97tO_QjXI%2F%D0%BA%D0%BE%D0%BD%D1%81%D0%BF%D0%B5%D0%BA%D1%82_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B9.rar?alt=media&token=01a2db7a-558d-48b5-b5f3-f990b5e2bf8d>" %}
Конспект лекций
{% endfile %}

#### Рекомендуемая литература:

* [Брюс Эккель "Философия Java"](https://rutracker.org/forum/viewtopic.php?t=4941725)
* [Герберт Шилдт "Java. Полное руководство. 10-е издание"](https://rutracker.org/forum/viewtopic.php?t=5715231)
* [Гради Буч, Джеймс Рамбо "Язык UML. Руководство пользователя"](https://rutracker.org/forum/viewtopic.php?t=4452001)

## Индивидуальная работа

{% file src="<https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-MJEZPpd9Q_El92UH6-p%2F-MJEaztCbmRjoWMQI38Z%2F%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_1.docx?alt=media&token=7c68c549-d047-49e7-bf40-acea9a9da329>" %}
Контрольная работа №1
{% endfile %}

{% file src="<https://1377473627-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LnhxGhlv6e_zwoZYywB%2F-MJEZPpd9Q_El92UH6-p%2F-MJEb3NPKtN7URPq6Z3w%2F%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_2.docx?alt=media&token=f66735b7-4973-4e88-b2f4-a5b3fe3b7fcf>" %}
Контрольная работа №2
{% endfile %}

## Курсовая работа

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

**Общие требования к приложениям:**

* приложения должны иметь консольный либо графический интерфейс;
* для хранения данных можно использовать базы данных либо хранить данные локально в коллекциях.

### Список тем

{% tabs %}
{% tab title="Турфирма" %}

### Приложение "Турфирма"

Требуется разработать программную систему, предназначенную  для работников туристической фирмы. Такая система должна обеспечивать хранение сведений об имеющихся в продаже **путевках** и о **клиентах** фирмы. Сведения о **путевке** включают ее стоимость, время отправления (начало) и возвращения, экскурсии и прочие услуги, например, в стоимость **путевки** полностью или частично может входить питание. **Путевка** предполагает посещение одного населенного пункта. Туристическая фирма **продает** стандартные путевки. Каждый клиент покупает одну путевку.&#x20;

**Возможные сущности и их свойства:**

| Client    | Tour      | Sale     |
| --------- | --------- | -------- |
| id        | id        | id       |
| firstName | title     | date     |
| lastName  | startDate | tourId   |
| phone     | endDate   | clientId |
| passport  | city      |          |
|           | price     |          |

**В программе должен быть реализован следующий функционал:**

* добавление, редактирование, удаление клиента;
* добавление, редактирование, удаление путевки;
* создание, редактирование, удаление продажи.

**Также программа должна выводить в консоль следующую информацию:**

* сколько продано путевок в определенный город (название города вводится пользователем);
* сколько продано путевок за определенный месяц (месяц вводится пользователем);
* общая стоимость проданных путевок за определенный месяц (месяц вводится пользователем).
  {% endtab %}

{% tab title="Сеть аптек" %}

### Приложение "Сеть аптек"

Требуется разработать программную систему, предназначенную для директора сети **аптек**. Такая система должна обеспечивать хранение сведений об **аптеке**, об имеющихся в ней **поставках товаров** и **поставщиках**. Каждая **аптека** осуществляет **поставку** у различных **поставщиков**, предпочитая при этом закупать одни виды товара у одних **поставщиков**, а другие у других.

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

**Возможные сущности и их свойства:**

| Pharmacy | Shipment         | Vendor  |
| -------- | ---------------- | ------- |
| id       | id               | id      |
| title    | medicineTitle    | title   |
| address  | shipmentDate     | phone   |
| phone    | expirationDate   | address |
|          | medicineQuantity |         |
|          | vendorId         |         |

**В программе должен быть реализован следующий функционал:**

* добавление, редактирование, удаление аптеки;
* добавление, редактирование, удаление поставки товара;
* создание, редактирование, удаление поставщика.

**Также программа должна выводить в консоль следующую информацию:**

* сколько выполнено поставок определенного товара за прошедший месяц (название товара вводится пользователем);
* какие партии товара близки к списанию (до конца срока годности осталось меньше недели от текущей даты);
* общая сумма поставок для выбранной аптеки от выбранного поставщика (аптека и поставщик вводится пользователем).
  {% endtab %}

{% tab title="Деканат" %}

### Приложение "Деканат"

Требуется разработать программную систему, предназначенную для работника деканата. Такая система должна обеспечивать хранение сведений о **группах** и **студентах**, а также о результатах текущей сессии.

**Возможные сущности и их свойства:**

| Student   | Group       | Discipline |
| --------- | ----------- | ---------- |
| id        | id          | id         |
| firstName | groupName   | title      |
| lastName  | entryDate   | examType   |
| groupId   | department  | address    |
|           | disciplines |            |
|           |             |            |

**В программе должен быть реализован следующий функционал:**

* добавление, редактирование, удаление студента;
* добавление, редактирование, удаление группы;
* создание, редактирование, удаление дисциплины;
* выставление оценки по дисциплине конкретному студенту.

**Также программа должна выводить в консоль следующую информацию:**

* средний балл в группе по определенному предмету (предмет вводится пользователем);
* список студентов по всем группам, которые подлежат отчислению (не сдано более двух дисциплин);
* по какой дисциплине больше всего неудовлетворительных оценок.
  {% endtab %}

{% tab title="СТО" %}

### Приложение "СТО"

Требуется разработать программную систему, предназначенную для диспетчера СТО. Такая система должна обеспечивать хранение сведения о **клиентах**, о **работниках** и об **автомобилях**, которые они ремонтируют в текущий момент. **Клиент** - это человек, который хотя бы раз воспользовался услугами СТО. О клиенте должны храниться сведения с указанием автомобилей, которые он сдавал в ремонт.

**Возможные сущности и их свойства:**

| Client    | Work          | Vehicle      | Worker    |
| --------- | ------------- | ------------ | --------- |
| id        | id            | id           | id        |
| firstName | vehicleId     | clientId     | firstName |
| lastName  | workerId      | color        | lastName  |
| phone     | startDate     | model        |           |
|           | endDate       | licensePlate |           |
|           | price         |              |           |
|           | workPerformed |              |           |

**В программе должен быть реализован следующий функционал:**

* добавление, редактирование, удаление клиента;
* добавление, редактирование, удаление работы;
* создание, редактирование, удаление работника;
* создание, редактирование, удаление автомобиля.

**Также программа должна выводить в консоль следующую информацию:**

* общая сумма выполненных работ по каждому работнику;
* автомобили какой модели ремонтируются чаще всего (первые 5 моделей);
* какой клиент заплатил больше всего (первые 5 клиентов).
  {% endtab %}

{% tab title="Своя тема" %}
Студент может предложить свою тему в качестве курсовой работы и обсудить ее с преподавателем.

{% hint style="warning" %}
К защите допускается курсовая работа с произвольной темой, которая была предварительно согласована с преподавателем.
{% endhint %}
{% endtab %}
{% endtabs %}
