Skip to content

Implementing simple notebook operations in Python

Notifications You must be signed in to change notification settings

KIRIN17/PythonNotebook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

В данной лабораторной работе реализован простой телефонный справочник.

Телефонным справочником является файл, хранящийся на жестком диске, который содержит информацию, соотносящую идентификатор человека (например, имя) с некоторыми данными о нем: номер телефона, дата рождения и т.д.

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

Каждая запись в справочнике должна обладать следующими полями:

  • Имя (только латинские буквы, цифры и пробелы, первая буква — заглавная)
  • Фамилия (только латинские буквы, цифры и пробелы, первая буква — заглавная)

МВ: Пара (Имя, Фамилия) является уникальным идентификатором записи в справочнике.

  • Номер телефона (состоит из 11 цифр без знака +) МВ: При заполнении обязательна проверка на корректность номера и автозамена «+7» в начале номера на «8».

  • Дата рождения (полная —число, месяц и год). Поле является опциональным, т. его заполнение не обязательно, оно может оставаться пустым. МВ: При заполнении обязательна проверка на корректность даты.

................................................................................

Консольный интерфейс:

  • Поднонсольным интерфейсом понимается следующее: в интерпретаторе/командной строне/терминале запускается на выполнение программа (скрипт), которая предлагает пользователю конечный набор команд для работы со справочником.

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

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

  • Программа должна заканчивать свое выполнение только после ввода специальной команды (например, «ий».

Требования к программе:

  1. При запуске программы (скрипта), она должна считывать содержимое: телефонного справочника из файла, хранящего на жестком диске. Файл может как ‘содержать записи (в корректном виде), таки быть пустым.

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

  3. Минимальный набор поддерживаемых команд для работы со справочником:

  • Просмотр всех записей справочника: вывод всего справочника так, чтобы было читабельно.

  • Поиск по справочнику. Поиск может осуществляться по любому из полей, а также по нескольким полям одновременно (например, найти запись с именем «А» и фамилией «Б»). В результате поиска должны быть выведены найденные записи со. значением полей.

  • Добавление новой записи. МВ: Обязательна проверка на то, что такая запись не содержится в справочнике (по уникальному идентификатору). Если такая запись уже содержится в справочнике, сообщить об этом пользователю и предложить: изменить существующую запись, изменить (Имя, Фамилия) новой записи или вернуться квыбору команды. МВ: При вводе Имени и Фамилии обязательна автозамена первой буквы на заглавную.

  • Удаление записи из справочника по Имени и Фамилии

  • Изменение любого поля в определенной записи справочника

  • Вывод возраста человека (записи) по Имени и Фамилии

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

  2. Ни одна операция не заканчивается ошибкой или вылетом программы при поступлении любых входных данных — либо операция должна быть корректно обработана, либо должно быть выведено сообщение об ошибке (желательно информативное), и программа возвращена в состояние ожидания ввода.

About

Implementing simple notebook operations in Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages