Программа на СИ++
Задача
Таблица, состоящая из структурных элементов “Паспорт”, поля
• фамилия (строка);
• имя (строка);
• отчество (строка);
• номер паспорта (строка);
• пол (число – 1 или 0);
• дата рождения (структура).
• семейное положение (фиксированная строка, не более 20 символов).
Поле Дата рождения создать на основе структуры “Дата”, которая включает:
• год (целое число);
• месяц (целое число);
• день (целое число);
Создать функцию, которая удаляет из таблицы все записи с заданной фамилией. Для хранения данных использовать структуру данных хеш-таблица, ключевые поля – фамилия, номер паспорта. Способ разрешения коллизий – цепочный.
Требования к выполнению и оформлению:
Во всех задачах необходимо реализовать полную функциональность для заданной структуры данных (поиск, добавление, удаление, редактирование любого поля, очистка таблицы). Если в качестве типа данных указана строка, то это означает, что строка динамическая (в таблице описана как char*). Для удобства тестирования необходимо реализовать меню со всеми функциями работы со структурой данных и дополнительными функциями. Для удобства, в меню должна быть функция “прочитать из файла”, в файл необходимо записать тестовый набор не менее чем из 10 структур.
сделать нужно на Dev-C++ 4.9.9.2 (Вот отсюда можно скачать http://www.bloodshed.net/)
+ есть исходник почтитакой же программы только без коллизии slil.ru/26440001
метод цепочек - метод в котором для разрешения коллизии во все записи вводится указатель, используемый для организации списков цепочек управления
в случае возникновения коллизии при заполнении таблицы, в список для требуемого адреса хэш таблицы добавляеться еще один элемент
вот тут немного написано про метод цепочек http://www.rsdn.ru/article/alg/bintree/hash.xml
добавление элемента:
1) вычилсяем хэш ключ-х полей записи
2) если соответсвующее поле пусто, то записываем туда новую запись, next устанавливаем на NULL. Если по этому адресу есть записи то добавляем следующую запись по правилу выбранного списка.
*****************************************************************************
ICQ: 380945346
срок 2-3 дня