- •Задание практикума в машинном зале №1 (2 семестр) «Электронная записная книга»
- •Функционирование системы
- •Запуск системы
- •Формат файла конфигурации ab.Cfg
- •Формат файла адресного списка
- •Добавление нового списка контактов
- •Добавление нового контакта в список контактов
- •Удаление списка контактов
- •Просмотр существующих списков контактов
- •Просмотр списка контактов
- •Изменение имени списка контактов
- •Редактирование записи в списке контактов
- •Удаление записи
- •Поиск записей в списке контактов
- •Создание копии списка контактов
- •Копирование записи
- •Перенос записи из одного списка в другой
- •Выход из системы
- •Выполнение команд из файла
- •Замечания о реализации
- •Основные классы
- •Последовательность реализации
- •Дополнительные сведения
Формат файла конфигурации ab.Cfg
В файле конфигурации адресной книги необходимо отразить информацию и иерархию списков, из которых данная адресная книга строится и о названии каждого из списков. Предлагается использовать следующий формат:
<Запись о поддереве данного списка> :=
<Имя списка>-<Имя файла списка>
<Количество дочерних списков>
<Запись о поддереве списков дочернего списка 1>
<Запись о поддереве списков дочернего списка 2>
...
<Запись о поддереве списков дочернего списка k>
Каждая запись делается на новой строке. Ниже приведён пример иерархии адресных списков и соответствующий ей файл конфигурации адресной книги.
Символ ‘-’ (минус) зарезервирован и не может встречаться в именах списков, он является разделителем имени списка и имени файла, который используется для его хранения. Предполагается, что дерево адресных книг имеет единственный корень.
При работе с именами списков контактов пользователь указывает полный путь до соответствующего списка. Так, для приведенного выше примера, чтобы обратиться к списку контактов “Кафедра СП”, надо ввести путь “/Университет/ВМиК/Кафедра СП” (который в системе будет преобразован в путь к физическому файлу “list1/list2/list4”).
Формат файла адресного списка
Файл содержит последовательность записей вида (каждая запись начинается с новой строки):
<Фамилия1>,<Имя1>,<Отчество1>,<Телефон1>,<e-mail1>
<Фамилия2>,<Имя2>,<Отчество2>,<Телефон2>,<e-mail2>
…
Символ ‘,’ (запятая) и ‘”’ (двойная кавычка) являются зарезервированными и не могут встречаться внутри полей. Символ «запятая» является разделителем полей, символ «двойная кавычка» используется при работе с командами.
Добавление нового списка контактов
В командной строке пользователь вводит команду new_list. Система запрашивает у пользователя имя списка, создаёт новый список контактов с указанным пользователем именем в адресной книге и возвращается в режим ввода команд.
При создании списка контактов не должны автоматически генерироваться промежуточные узлы. Т.е. если введена команда “new_list /r/n3/n5”, но не существует списка /r/n3, то система выдаёт предупреждение и просит повторить ввод.
Если пользователь указывает имя, которое не является уникальным, система выдаёт предупреждение и просит пользователя повторить ввод.
Формат команды:
new_list <name>
где <name> — имя нового списка.
Добавление нового контакта в список контактов
В командной строке пользователь вводит команду new_contact. Система запрашивает у пользователя имя списка, в который необходимо добавить запись, а также все поля записи (фамилия, имя, отчество и т.д.). С использованием введённых данных система создаёт новую запись в указанном пользователем списке контактов и возвращается в режим ввода команд.
Если пользователь указывает имя несуществующего списка, то система выдаёт предупреждение и просит повторить ввод.
Формат команды:
new_contact <list> <last_name> <first_name> <middle_name> <phone_number> <email>
где <list> — имя списка, <last_name> — фамилия, <first_name> — имя, <middle_name> — отчество, <phone_number> — номер телефона, <email> — адрес электронной почты.
Удаление списка контактов
В командной строке пользователь вводит команду delete_list. Система запрашивает у пользователя имя списка, который необходимо удалить, и удаляет его из адресной книги. Далее система возвращается в режим ввода команд.
Если пользователь удаляет список контактов, не являющийся листом в дереве иерархии, то удаляется не только данный узел дерева, но и все поддерево списков.
Если пользователь указывает имя несуществующего списка, то система выдаёт предупреждение и просит повторить ввод.
Формат команды:
delete_list <list>
где <list> — имя списка.
