В данной лабораторной работе реализован простой телефонный справочник.
Телефонным справочником является файл, хранящийся на жестком диске, который содержит информацию, соотносящую идентификатор человека (например, имя) с некоторыми данными о нем: номер телефона, дата рождения и т.д.
Необходимо разработать программу, которая будет предоставлять консольный интерфейс для работы с этим файлом.
Каждая запись в справочнике должна обладать следующими полями:
- Имя (только латинские буквы, цифры и пробелы, первая буква — заглавная)
- Фамилия (только латинские буквы, цифры и пробелы, первая буква — заглавная)
МВ: Пара (Имя, Фамилия) является уникальным идентификатором записи в справочнике.
-
Номер телефона (состоит из 11 цифр без знака +) МВ: При заполнении обязательна проверка на корректность номера и автозамена «+7» в начале номера на «8».
-
Дата рождения (полная —число, месяц и год). Поле является опциональным, т. его заполнение не обязательно, оно может оставаться пустым. МВ: При заполнении обязательна проверка на корректность даты.
................................................................................
Консольный интерфейс:
-
Поднонсольным интерфейсом понимается следующее: в интерпретаторе/командной строне/терминале запускается на выполнение программа (скрипт), которая предлагает пользователю конечный набор команд для работы со справочником.
-
При вводе определенной команды (например, «добавить новую запись») программа выполняет соответствующие действия, необходимые для реализации этой команды.
-
После выполнения введенной номанды программа снова предлагает пользователю выбрать командуи ожидает ввода.
-
Программа должна заканчивать свое выполнение только после ввода специальной команды (например, «ий».
Требования к программе:
-
При запуске программы (скрипта), она должна считывать содержимое: телефонного справочника из файла, хранящего на жестком диске. Файл может как ‘содержать записи (в корректном виде), таки быть пустым.
-
При завершении работы программы и/или при завершении выполнении команды, изменяющей справочник, все изменения в справочнике должны быть сохранены в файл (тот, из которого справочник считывается в начале).
-
Минимальный набор поддерживаемых команд для работы со справочником:
-
Просмотр всех записей справочника: вывод всего справочника так, чтобы было читабельно.
-
Поиск по справочнику. Поиск может осуществляться по любому из полей, а также по нескольким полям одновременно (например, найти запись с именем «А» и фамилией «Б»). В результате поиска должны быть выведены найденные записи со. значением полей.
-
Добавление новой записи. МВ: Обязательна проверка на то, что такая запись не содержится в справочнике (по уникальному идентификатору). Если такая запись уже содержится в справочнике, сообщить об этом пользователю и предложить: изменить существующую запись, изменить (Имя, Фамилия) новой записи или вернуться квыбору команды. МВ: При вводе Имени и Фамилии обязательна автозамена первой буквы на заглавную.
-
Удаление записи из справочника по Имени и Фамилии
-
Изменение любого поля в определенной записи справочника
-
Вывод возраста человека (записи) по Имени и Фамилии
-
Если пользователь неправильно ввел команду, программа должна проинформировать его о некорректном вводе и вернуться в состояние ожидания ввода команды.
-
Ни одна операция не заканчивается ошибкой или вылетом программы при поступлении любых входных данных — либо операция должна быть корректно обработана, либо должно быть выведено сообщение об ошибке (желательно информативное), и программа возвращена в состояние ожидания ввода.