Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Асмик Александровна
Статус: Академик
Рейтинг: 7320
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2649
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2312
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / C/C++

Номер выпуска:1638
Дата выхода:02.03.2011, 14:00
Администратор рассылки:Киселёва Алёна aka Verena (Профессор)
Подписчиков / экспертов:317 / 187
Вопросов / ответов:1 / 1

Вопрос № 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-ой. Если что-то непонятно, спрашивайте.

Удачи!

Приложение:

-----
Эта история - не для истории, понимаешь?

Ответ отправил: Киселёва Алёна aka Verena (Профессор)
Ответ отправлен: 28.02.2011, 19:21
Номер ответа: 266038
Россия, Москва
Адрес: Москва, Солнцево
Адрес сайта: Творчество, цитаты, события.
ICQ # 230360822

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 266038 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное