Задание к лабораторной работе Справочная система Information System

Краткое описание

В данной задаче рассматривается структура данных, описывающая некую реальную систему, объект или процесс. На основе заданной структуры данных реализовать справочную систему, отвечающую за манипулирование данными.
Детальное описание
Данные разделены на два (или более) типа, связанные между собой. Обработка каждого типа данных осуществляется в отдельном классе (Model class). После обработки информация сохраняется на диск в определенном формате. Каждый класс должен уметь создавать, удалять и модифицировать свой тип данных, при этом корректно взаимодействуя с классом, занимающимся обработкой зависимых типов. Управление справочной системой осуществляется из консоли с помощью набора команд, которые обрабатываются специальным классом-контроллером (Controller class), а он в свою очередь обращается к классам, работающими с данными, для осуществления конкретной операции с данными. Вывод запрашиваемой информации на экран осуществляется отдельным классом (View class), который получает данные от Model классов. Реализация конкретной справочной системы производится по шаблону MVC(Model-View-Controller).

Требования

(* помечены обязательные требования)
1. Реализация Справочной системы должны соответствовать шаблону MVC.*(5)
2. Интуитивно понятный интерфейс работы с пользователем.*(3)
3. Наличие функций добавления, удаления, изменения и просмотра данных.*(за каждую функцию по 2 балла)
4. Реализация поиска данных в соответствии с некоторым шаблоном, введеным пользователем. Шаблон включает в себя все разрешенные символы с точки зрения хранимых данных и символы заменяющие один и несколько любых символов (* и ?).(4)
5. сохранение загрузка данных через Serialization/XML.*(3 за Serialization, 4 за XML, +1 за использование сжатия данных)
6. Возможность добавления всех данных из другого файла в текущий с проверкой на наличие дубликатов, т.е. не должно быть абсолютно одинаковых данных.(4)
7. программный код должен удовлетворять Code Conventions(4) * и снабжен JavaDoc (2).
Модификации задания
1. Группы и студенты: Студент (ФИО, группа, дата зачисления), Группа (Номер, Факультет).
2. Библиотека: Экземпляр книги (инвентарный номер, книга, выдана или нет), Книга (авторы, название, год издания, число страниц).
3. Отдел кадров: Сотрудник (ФИО, отдел, телефон, зарплата), Отдел (название, начальник).
4. Отдел поставок: Сырье (название, поставщик, цена), Поставщик (название, расчетный счет, ФИО контактного лица).
5. Отдел продаж: Заказ (номер, заказчик, дата, сумма заказа), Заказчик (название, телефон, адрес).
6. Ресторан: Блюдо (название, категория, цена), Категория блюд (название).
7. Анализ публикаций: Публикация (название, тип, источник, дата), Источник (название, город, телефон).
8. Авиарейсы: Рейс (Номер рейса, аэробус, маршрут, время вылета, путевое время), Маршрут (Пункт вылета, пункт прибытия).
9. Расписание электричек: Электропоезд (Номер состава, маршрут, время отправления, путевое время), Маршрут (Начальная станция, конечная станция).
10. Собственный вариант, согласованный с куратором.

------------------------------------------------------------
старые задания:
Вариант 1

Газетный киоск занимается продажей газет, журналов и книг. Необходимо создать приложение, которое бы автоматизировало рабочее место продавца. Приложение должно позволять производить приемку товара, отмечать факт продажи товара, а также позволять редактировать неверно введенные данные о товаре. Необходимо предусмотреть возможность хранения нескольких экземпляров одного и того же товара (например, несколько одинаковых номеров газет). Кроме этого, при закрытии приложения данные о товарах должны сохраняться в файле или базе данных.
Данные, которые необходимо хранить о каждом виде товара:

Наименование товара Атрибуты
Газета Название
Номер
Дата выпуска
Журнал Название
Номер
Дата выпуска
Количество страниц
Книга Название
Автор
Издательство
Количество страниц

Вариант 2

Необходимо создать приложение для управления файловыми архивами. Файловый архив – это один или несколько текстовых файлов данных, хранящихся как единое целое. Каждый архив имеет свое наименование и дату создания. Приложение должно позволять создавать и удалять архивы, а также просматривать содержимое файлового архива (но не файлов, входящих в него), добавлять и удалять файлы из архива. Данные обо всех файловых архивах, созданных приложением, должны храниться в отдельном файле или базе данных.

Вариант 3

Для облегчения работы преподавателя необходимо создать приложение для учета сданных задач по предмету «Информатика». Приложение хранит информацию о группах студентов и о составе каждой группы. Каждый студент должен сдать 3 задачи, данные хранятся в виде «сдал/не сдал». Приложение должно выполнять следующие функции:
Создание и удаление групп студентов
Создание и удаление студентов в составе групп

Данные о студентах и группах должны хранится в файле или базе данных.

Наименование сущности Атрибуты
Группа Номер курса
Номер группы
Студент Фамилия
Имя

Вариант 4

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

Наименование сущности Атрибуты
Абонент Фамилия
Имя
Телефон 1
Телефон 2
Телефон 3

Вариант 5

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

Наименование сущности Атрибуты
День рождения Дата
Имя
Час рождения
Подарок
Описание
Встреча Дата
Собеседник
Время начала
Описание

Вариант 6

Необходимо создать приложение для учета маршрутов пассажирских поездов. Маршрут поезда состоит из пункта отправления, пункта прибытия и промежуточных станций. Каждый пункт маршрута характеризуется временем прибытия и отправления. Приложение должно уметь создавать новый маршрут (номер поезда, название маршрута), добавлять/удалять/изменять пункты маршрута (отправление, прибытие, промежуточные). Данные приложения должны храниться либо в файле, либо в базе данных.

Вариант 7

Разработайте приложение по учету домашней коллекции компакт дисков. Коллекция состоит из дисков разных типов. Типы носителей – DVD, CD-R, mini-disc. Информация на одном носителе может соответствовать нескольким категориям – фильмы, музыка, ПО и т.п. Каждый носитель характеризуется дополнительным описанием (текстовое полеб description). Разрабатываемое приложение должно уметь добавлять/удалять/редактировать как состав коллекции, так и словари приложения – состав типов носителей и категории информации. Приветствуется реализация механизма поиска носителя по полю дополнительного описания.

Вариант 8

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