Вопрос № 182305: Здравствуйте! Прошу помощи в следующем вопросе: Помогите написать программу на языке С++. Под ОС Windows XP, среда Borland Builder 6,2006 и Microsoft Visual Studio 2005. Программу прокомментировать. Условие задачи: Написать программу для работ...
Вопрос № 182305:
Здравствуйте! Прошу помощи в следующем вопросе: Помогите написать программу на языке С++. Под ОС Windows XP, среда Borland Builder 6,2006 и Microsoft Visual Studio 2005. Программу прокомментировать. Условие задачи:
Написать программу для работы с упорядоченной таблицей по запросам оператора. Упорядоченная таблица представлена вектором; каждый элемент таблицы имеет следующую структуру: struct Node { int key; /* ключ элемента */ Item *info; /* указатель на информацию */ }; Максимальный
размер таблицы ограничен (для задания максимального размера таблицы использовать константу - например, const int SIZE = ... ;). Указатель на информацию определяет список элементов с одинаковыми значениями ключей. Элемент списка имеет следующую структуру: struct Item{ int release; /* номер версии */ char *string; /* указатель на строку символов */ Item *next; /* указатель на следующий элемент */ };<
br> Предусмотреть следующие операции: - включение нового элемента в таблицу при условии, что в таблице могут быть разные элементы с одинаковыми ключами; такие элементы включаются в список, связанный с соответствующим элементом таблицы; - удаление из таблицы всех элементов или элемента определенной версии с заданным ключом; - вывод содержимого таблицы на экран.
Разработать два варианта программы: a) и сама таблица, и информация, относящаяся к элементу таблицы, хранятся в основной памяти; b)
сама таблица хранится в основной памяти, а информация, относящаяся к элементу таблицы, хранится во внешней памяти (используется двоичный файл произвольного доступа), причем она записывается в файл сразу же при выполнении операции включения в таблицу. Имя файла вводится по запросу из программы.
Примечания: Программа должна содержать несколько функций: функция main должна выполнять: вывод меню, ввод и анализ ответа, вызов на исполнение требуемой ф
ункции; В программе нужно предусмотреть проверку правильности ввода данных; Для варианта b) следует модифицировать структуру, определяющую элемент списка, включив в неё длину информации и её смещение в файле; В варианте b) для работы с файлом использовать функции пакета stdio.h; чтение и запись выполнять с помощью fread() и fwrite(), в которых должна быть указана реальная длина информации.
Отправлен: 25.02.2011, 13:34
Вопрос задал: Magma (Посетитель)
Всего ответов: 1 Страница вопроса »
Отвечает Киселёва Алёна aka Verena (Профессор) :
Здравствуйте, Magma! Вот реализация варианта А. Для работы со списком выделены отдельные функции, они вызываются функциями по работе с таблицей. Таблица - статический массив, максимальное число элементов ограничено константой, фактическое хранится в глобальной переменной. Управление посредством консольного меню. Проверено на Visual Studio 2010, но там не должно быть конфликтов с 2005-ой. Если что-то непонятно, спрашивайте.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.