Задание:
Задачу необходимо решить двумя способами: с выводом в консоль(вариант a) и с записью в файл(вариант b)
Для сдачи работы мне требуется только программа с комментариями
Текст задачи: Написать программу для работы с перемешанной таблицей, использующей перемешивание сцеплением, по запросам оператора.
Перемешанная таблица представлена массивом указателей на элементы таблицы, имеющие следующую структуру:
struct Item{
int key; /* ключ элемента */
char *info; /* указатель на информацию */
Item *next; /* указатель на следующий элемент */
};
Максимальный размер массива указателей ограничен (для задания максимального размера использовать константу – например, const int SIZE = ...;).
Предусмотреть следующие операции:
- включение нового элемента в таблицу при условии, что в таблице не может быть двух эле-ментов с одинаковыми ключами; если при включении нового элемента возникает такая ситуа-ция, на экран должно быть выведено сообщение об ошибке;
- удаление элемента из таблицы по заданному ключу. Если запрошенный элемент в таблице отсутствует, вывести на экран сообщение об ошибке;
- поиск в таблице элемента по заданному ключу; результатом поиска должна быть копия найденного элемента. Если запрошенный элемент в таблице отсутствует, вывести на экран сообщение об ошибке;
- вывод содержимого таблицы на экран.
Разработать два варианта программы:
a) и сама таблица, и информация, относящаяся к элементу таблицы, хранятся в основной памяти;
b) и сама таблица, и информация, относящаяся к элементу таблицы, хранятся во внешней памяти (используется двоичный файл произвольного доступа). Все операции выполняются с таблицей, размещенной в основной памяти. Таблица считывается из файла (или создается в первый раз) в начале сеанса работы и записывается в файл в конце сеанса работы. Информация, относящаяся к элементу таблицы, записывается в файл сразу же при выполнении операции включения в таблицу. Имя файла вводится по запросу из программы.
Примечания:
1. Программа должна содержать несколько функций; функция main должна выполнять: вывод меню, ввод и анализ ответа, вызов на исполнение требуемой функции;
2. В программе нужно предусмотреть проверку правильности ввода данных;
3. Для варианта b) следует модифицировать структуру, определяющую элемент таблицы, включив в нее длину информации и ее смещение в файле;
4. В варианте b) для работы с файлом использовать функции пакета stdio.h; чтение и запись выполнять с помощью fread() и fwrite(), в которых должна быть указана реальная длина информации.
В файлы прикрепляю программу для варианта a, которую я начала писать, но не смогла отладить до конца. Названия функций и общая структура программы в моем варианте соответствует требованиям преподавателям, поэтому ее можно взять за образец
Кроме того, прикрепляю методичку для выполнения варианта b