Добавил:
ИВТ (советую зайти в "Несортированное") Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
подгон 2018 (легендарный) / 3 курс -20241122T221211Z-001 / Java / Лабораторные / Основы Java. Лабораторная 3. Новая 2809.docx
Скачиваний:
2
Добавлен:
23.11.2024
Размер:
34.73 Кб
Скачать
  1. Контрольные вопросы

  1. Какой пакет предоставляет средства ввода-вывода в Java?

  2. Что такое поток?

  3. Что такое буферизация?

  4. На базе каких абстрактных классов построена система ввода-вывода Java?

  5. Как реализуется доступ к произвольной позиции в файле?

  6. Для чего служит метод close() и когда его нужно использовать?

  7. Как осуществить перекодировку содержимого файлов?

  8. Как в Java осуществляется работа с конфигурационными файлами?

  1. Задание

В программу демонстрации классов, созданную в лабораторной работе №2:

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

  2. Создать файл настроек, который должен читаться при старте программы перед выводом главного меню программы и изменять ее поведение. Минимальное количество настроек для программы «4»:

    1. Имя (логин) пользователя (После загрузки программы выводится как приглашение вида: «Добро пожаловать — имя пользователя из файла настроек»)

    2. Признак записи лога: true/false Установка признака в true означает запись необходимых контрольных данных в лог. Минимальное количество настроек для программы «5»:

    1. Имя (логин) пользователя (После загрузки программы выводится как приглашение вида: «Добро пожаловать — имя пользователя из файла настроек»)

    2. Пароль пользователя

    3. Группа пользователя: root (разработчик) или user (оператор) При запуске программа должна спрашивать логин и пароль и в зависимости от прав добавлять в меню пункты «Отладка» и «Автотесты» для пользователя с правами группы root.

    4. Включение режима «Отладка»: true/false Установка признака в true означает запись необходимых контрольных данных в лог. При значении true логи пишутся независимо от группы пользователя при каждом запуске программы.

    5. Включение режима «Автотесты»: true/false Установка признака в true означает выполнение тестов позволяющих проверить результаты работы алгоритмов программы на контрольных данных. Демонстрируется на защите 4-ой ЛР. Установка признака в true означает выполнение автотестов перед запуском основного меню программы и вывод результатов на консоль и в лог, независимо от выбора этого пункта в меню

Необходимые записи лога следующие:

Для группы «4»

  1. запись о старте программы с указанием логина пользователя

  2. записи об операции чтения/записи данных класса в файл «базы данных»

  3. записи об ошибках, возникших при выполнении программы

  4. запись о завершении программы. Для группы «5» дополнительно:

  5. записи результатов автотестов (Демонстрируется на защите ЛР №4)

  6. Целесообразная отладочная информация (Определяется студентовм)

Лог-файл должен дописываться, а не перезаписываться

Записи в лог-файле должны содержать метки времени (см. Приложение 1)

* - Под файлом «базы данных» в данной работе понимается простой текстовый файл, формат записи в который определяется студентом индивидуально. Фраза "база данных" означает, что с файлом, который является базой данных в программе должны быть реализованы следующие основные операции, применяемые к базам данных: 1. Чтение в программу нескольких (а не только одного) экземпляров объектов сохраняемых данных из модели + демонстрация успешности чтения на консоли (метод, например, ObjectsList.get(...)) 2. Добавление к текущему списку объектов из модели в файле, произвольного количества новых объектов, данные для которых вводятся с консоли (метод, например, ObjectsList.put(...)) 3. Изменение данных конкретного объекта (метод, например, ObjectsList.change(...)) 4. Удаление конкретного объекта (метод, например, ObjectsList.del(...))

Рекомендуется присваивать объекту в файле уникальный ID, чтобы проще было выполнять операции удаления, индивидуального чтения и обновления. Выбор операций добавления, удаления, чтения, записи и обновления делается через меню.