Курс "Объектно-ориентированное программирование"
  • Главная
  • 1 семестр (осень 2021)
    • Видео
    • Конспект лекций
      • Лекция 1
      • Лекция 2
      • Лекция 3
      • Лекция 4
      • Лекция 5
      • Лекция 6
      • Лекция 7
      • Лекция 8
      • Лекция 9
      • Лекция 10
      • Лекция 11
      • Лекция 12
      • Лекция 13
      • Лекция 14
      • Лекция 15
    • Лабораторные работы
      • Лабораторная работа 1
        • 1. Установка программного обеспечения, создание и запуск проекта
        • 2. Основы синатксиса Java
        • Задание на лабораторную работу
      • Лабораторная работа 2
        • Синтаксис создания классов
        • Задание на лабораторную работу
      • Лабораторная работа 3
        • Инкапсуляция
        • Язык моделирования UML
        • Задание на лабораторную работу
      • Лабораторная работа 4
        • Наследование и композиция
        • Наследование и композиция в UML
        • Задание на лабораторную работу
      • Лабораторная работа 5
        • Задание на лабораторную работу
      • Лабораторная работа 6
        • Абстрактные классы и интерфейсы в UML
        • Задание на лабораторную работу
  • 2 семестр (весна 2022)
    • Конспект лекций
      • Лекция 1-2
      • Лекция 3-4
      • Лекция 5
      • Лекция 6
      • Лекция 7-8
      • Лекция 9
      • Лекция 10
      • Лекция 11-12
      • Лекция 13-14
      • Лекция 15
  • Архив
    • Лекция 2
    • Архив
      • Заметки по абстракции
      • Конспект лекций
        • 1. Принцип Separation of Concerns, контроллер и представление
        • 2. Паттерн MVC
        • 3. Клиент-серверная архитектура. Создание простой RESTful веб-службы с помощью Spring Boot.
        • 4. Внедрение зависимостей (Dependency Injection)
        • 5. Интеграция приложения с СУБД
        • 6. Фреймворк Spring MVC
        • 7. Работа со Spring Security, часть 1
        • 8. Работа со Spring Security, часть 2
        • 9. Развертывание приложения в Heroku
      • Заочники (осень 2022)
      • Архив
        • Лекции
          • Draft
            • 5. Абстрактные классы и интерфейсы. Механизм обратного вызова
            • 6. Анонимные классы
          • Блок лекций 1
            • Дополнительные задания и литература
            • 1. Базовые сведения об ООП
            • 1. Обобщенные типы. Автоупаковка и автораспаковка.
            • 2. Знакомство с языком Java
          • Блок лекций 2
            • 5. Абстрактные классы и интерфейсы. Механизм обратного вызова.
            • 6. Анонимные объекты, классы, методы. Лямбда-выражения.
            • 7. Аргументы переменной длины. Принцип абстракции. Дополнительные принципы ООП.
          • Блок лекций 3
            • 2. Коллекции объектов.
            • 3. Паттерн Итератор. Компараторы. Потоки в Java (Streams API)
          • Блок лекций 4
            • 1. Исключения в Java. Обработка исключений.
          • Блок лекций 5
            • Статические поля и методы
            • Вложенные и внутренние классы
            • Перечисления
          • Блок лекций 6
            • 2. Интеграция приложения с СУБД
        • Лабораторные работы
          • 2. Основы синтаксиса
            • Python
            • C#
          • Лабораторная работа 3
            • 1. Инкапсуляция
            • 2. Перегрузка методов
            • Задание на лабораторную работу
            • Теоретические вопросы
          • Лабораторная работа 4
            • Задание на лабораторную работу
            • Теоретические вопросы
          • Лабораторная работа 6
            • Задание на лабораторную работу
            • Теоретические вопросы
          • Лабораторная работа 7
            • Задание на лабораторную работу
            • Теоретические вопросы
          • Лабораторная работа 8
          • Лабораторная работа 9
          • Лабораторная работа 10
            • Задание на лабораторную работу
          • Лабораторная работа 11
            • Задание на лабораторную работу
          • Лабораторная работа 12
            • Пример выполнения лабораторной работы
            • Задание на лабораторную работу
        • Практические работы
          • Практическая работа 1
          • Практическая работа 2
        • Материалы по Java Spring
          • 1. Клиент-серверная архитектура. Создание простой RESTful веб-службы с помощью Spring Boot.
          • 4. Работа со Spring MVC, часть 1
          • 5. Работа со Spring MVC, часть 2
      • Конспект лекций
        • 1. История развития языков программирования
        • 2. Базовые термины ООП
        • 3. Понятие класса и объекта
        • 4. Создание объектов. Конструктор.
        • 5. Основные принципы ООП. Инкапсуляция.
        • 6. Перегрузка методов
        • 7. Повторное использование кода. Композиция и наследование
        • 8. Полиморфизм
        • 9. Абстрактные классы и интерфейсы
        • 10. Анонимные классы, интерфейсы, методы. Лямбда-выражения
        • 11. Принцип абстракции. Дополнительные принципы ООП
        • 12. Обобщенные типы. Автоупаковка и автораспаковка
        • 13. Коллекции
        • 14. Паттерн "Итератор". Компараторы. Фреймворк Streams API.
        • 15. Исключения в Java. Обработка исключений
        • 16. Принципы разработки графического интерфейса. Фреймворк JavaFX
        • 17. События в JavaFX
        • 20. Перечисления
      • Лабораторные работы
        • Лабораторная работа 2
          • 1. Синтаксис создания классов
          • 2. Язык моделирования UML
          • Задание на лабораторную работу
          • Теоретические вопросы
        • Лабораторная работа 3
          • 1. Инкапсуляция
          • 2. Перегрузка методов
          • Задание на лабораторную работу
        • Лабораторная работа 4
          • Наследование и композиция
          • Наследование и композиция в диаграмме классов UML
          • Задание на лабораторную работу
        • Лабораторная работа 5
          • Задание на лабораторную работу
          • Теоретические вопросы
        • Лабораторная работа 6
          • Задание (старое)
          • Теоретические вопросы
        • Лабораторная работа 8
          • Задание на лабораторную работу
        • Лабораторная работа 9
          • Задание на лабораторную работу
      • Видеолекции
      • Видеолекции
Powered by GitBook
On this page
  • Материалы для освоения дисциплины
  • Индивидуальная работа
  • Курсовая работа
  • Список тем

Was this helpful?

Export as PDF
  1. Архив
  2. Архив

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

Previous9. Развертывание приложения в HerokuNextАрхив

Last updated 2 years ago

Was this helpful?

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

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

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

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

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

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

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

  • приложения должны иметь консольный либо графический интерфейс;

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

Список тем

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

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

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

Client

Tour

Sale

id

id

id

firstName

title

date

lastName

startDate

tourId

phone

endDate

clientId

passport

city

price

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

  • добавление, редактирование, удаление клиента;

  • добавление, редактирование, удаление путевки;

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

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

  • сколько продано путевок в определенный город (название города вводится пользователем);

  • сколько продано путевок за определенный месяц (месяц вводится пользователем);

  • общая стоимость проданных путевок за определенный месяц (месяц вводится пользователем).

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

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

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

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

Pharmacy

Shipment

Vendor

id

id

id

title

medicineTitle

title

address

shipmentDate

phone

phone

expirationDate

address

medicineQuantity

vendorId

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

  • добавление, редактирование, удаление аптеки;

  • добавление, редактирование, удаление поставки товара;

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

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

  • сколько выполнено поставок определенного товара за прошедший месяц (название товара вводится пользователем);

  • какие партии товара близки к списанию (до конца срока годности осталось меньше недели от текущей даты);

  • общая сумма поставок для выбранной аптеки от выбранного поставщика (аптека и поставщик вводится пользователем).

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

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

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

Student

Group

Discipline

id

id

id

firstName

groupName

title

lastName

entryDate

examType

groupId

department

address

disciplines

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

  • добавление, редактирование, удаление студента;

  • добавление, редактирование, удаление группы;

  • создание, редактирование, удаление дисциплины;

  • выставление оценки по дисциплине конкретному студенту.

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

  • средний балл в группе по определенному предмету (предмет вводится пользователем);

  • список студентов по всем группам, которые подлежат отчислению (не сдано более двух дисциплин);

  • по какой дисциплине больше всего неудовлетворительных оценок.

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

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

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

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 клиентов).

Студент может предложить свою тему в качестве курсовой работы и обсудить ее с преподавателем.

К защите допускается курсовая работа с произвольной темой, которая была предварительно согласована с преподавателем.

Брюс Эккель "Философия Java"
Герберт Шилдт "Java. Полное руководство. 10-е издание"
Гради Буч, Джеймс Рамбо "Язык UML. Руководство пользователя"
18MB
конспект_лекций.rar
Конспект лекций
605KB
контрольная_1.docx
Контрольная работа №1
1MB
контрольная_2.docx
Контрольная работа №2