Guest User

Task 4. Struct

a guest
Nov 6th, 2012
137
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Задание IV. Структуры.
  2.  
  3. Задание, общее для всех: написать программу, реализующую записную книжку.
  4. Должна заводится и хранится информация вида:
  5. 1) Имя (уникальное)
  6. 2) Телефон
  7.  
  8. Должны поддерживаться следующие операции:
  9. 1) Добавление/изменение записи
  10. 2) Поиск записи (по имени и, возможно, как-то еще)
  11. 3) Удаление (по имени)
  12. 4) Вывод всех
  13.  
  14. Индексация осуществляется по имени, которое уникально. При попытке добавить повторно человека с тем же именем должна происходить замена.
  15.  
  16. Сохранение и загрузка из файла желательны, но опциональны.
  17.  
  18.  
  19. Должно быть реализовано ядро со всеми функциями. Функции должны быть покрыты тестами.
  20. К этому ядру должен быть интерфейс, который позволяет продемонстрировать работу ядра.
  21. Интерфейс должен быть такого вида, на экран выводится меню:
  22. --------
  23. Выберите требуемое действие:
  24. 1) Добавить запись
  25. 2) Искать
  26. 3) Удалить
  27. ...
  28. N) Выход
  29.  
  30. Далее ожидается ввод числа. Если число неправильное, то об этом сообщается и предлагается выбрать еще раз.
  31. В зависимости от выбранного действия запрашивается имя или имя+телефон, выводится результат операции и снова меню.
  32. Интерфейс должен быть разумным и законченным, например, резонно запрашивать подтверждение при удалении. Можно рассмотреть
  33. интерфейс банкомата в качестве образца, чем-то похоже.
  34.  
  35. Убедительная просьба не использовать элементы ООП при решении этой задачи, передавайте структуры по ссылке.
  36.  
  37. Конкретные варианты:
  38.  
  39. 1) Хранить в бинарном дереве поиска, поиск по явному имени дихотомический.
  40.  
  41. 2) Хранить в префиксном дереве (боре), поиск по явному имени.
  42.  
  43. 3) Хранить в динамически расширяющемся массиве, при вставке упорядочивать элементы.
  44. Поиск как по явному имени, дихотомический.
  45.  
  46. 4) Хранить в линейном списке, поиск линейный. Поиск как по явному имени, так и возможность искать по подстроке
  47. (если возможно несколько вариантов, то предлагать их).
  48.  
  49. 5) Хранить в динамически расширяющемся массиве. Поиск как по явному имени, так и возможность искать по подстроке
  50. (если возможно несколько вариантов, то предлагать их).
  51.  
  52. 6) Хранить в динамически расширяющемся массиве, поиск линейный, сделать возможность поиска по шаблону типа ??lex, где "?" может означать любой символ.
  53.  
  54. 7) Хранить в линейном списке, поиск линейный, сделать возможность поиска по шаблону типа ??lex, где "?" может означать любой символ.
  55.  
  56. 8) Хранить в динамически расширяющемся массиве, поиск линейный, сделать возможность поиска как по имени, так и по телефону.
  57.  
  58. 9) Хранить в линейном списке, поиск линейный, сделать возможность поиска как по имени, так и по телефону.
RAW Paste Data