Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Задание IV. Структуры.
- Задание, общее для всех: написать программу, реализующую записную книжку.
- Должна заводится и хранится информация вида:
- 1) Имя (уникальное)
- 2) Телефон
- Должны поддерживаться следующие операции:
- 1) Добавление/изменение записи
- 2) Поиск записи (по имени и, возможно, как-то еще)
- 3) Удаление (по имени)
- 4) Вывод всех
- Индексация осуществляется по имени, которое уникально. При попытке добавить повторно человека с тем же именем должна происходить замена.
- Сохранение и загрузка из файла желательны, но опциональны.
- Должно быть реализовано ядро со всеми функциями. Функции должны быть покрыты тестами.
- К этому ядру должен быть интерфейс, который позволяет продемонстрировать работу ядра.
- Интерфейс должен быть такого вида, на экран выводится меню:
- --------
- Выберите требуемое действие:
- 1) Добавить запись
- 2) Искать
- 3) Удалить
- ...
- N) Выход
- Далее ожидается ввод числа. Если число неправильное, то об этом сообщается и предлагается выбрать еще раз.
- В зависимости от выбранного действия запрашивается имя или имя+телефон, выводится результат операции и снова меню.
- Интерфейс должен быть разумным и законченным, например, резонно запрашивать подтверждение при удалении. Можно рассмотреть
- интерфейс банкомата в качестве образца, чем-то похоже.
- Убедительная просьба не использовать элементы ООП при решении этой задачи, передавайте структуры по ссылке.
- Конкретные варианты:
- 1) Хранить в бинарном дереве поиска, поиск по явному имени дихотомический.
- 2) Хранить в префиксном дереве (боре), поиск по явному имени.
- 3) Хранить в динамически расширяющемся массиве, при вставке упорядочивать элементы.
- Поиск как по явному имени, дихотомический.
- 4) Хранить в линейном списке, поиск линейный. Поиск как по явному имени, так и возможность искать по подстроке
- (если возможно несколько вариантов, то предлагать их).
- 5) Хранить в динамически расширяющемся массиве. Поиск как по явному имени, так и возможность искать по подстроке
- (если возможно несколько вариантов, то предлагать их).
- 6) Хранить в динамически расширяющемся массиве, поиск линейный, сделать возможность поиска по шаблону типа ??lex, где "?" может означать любой символ.
- 7) Хранить в линейном списке, поиск линейный, сделать возможность поиска по шаблону типа ??lex, где "?" может означать любой символ.
- 8) Хранить в динамически расширяющемся массиве, поиск линейный, сделать возможность поиска как по имени, так и по телефону.
- 9) Хранить в линейном списке, поиск линейный, сделать возможность поиска как по имени, так и по телефону.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement