Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2021-12-07 | 44 |
5.00
из
|
Заказать работу |
|
|
Воспользуйтесь в качестве заготовки программой из работы №9 (индивидуальное задание С). Удалите из класса описание перегруженного оператора сложения. Модифицируйте функции Draw 1() и Draw 2() так, чтобы первая выводила в окно заданную фигуру толстым цветным пером, а вторая – тонким черным. Объявите в качестве глобальных переменных четыре указателя на объекты вашего класса. В части а работы будет использоваться одна пара этих указателей; в части б – другая.
Включите в приложение обработку сообщения WM _ CREATE. В функции OnCreate () создайте два объекта класса (используя объявленные ранее указатели): один – вызовом конструктора с некоторым разумным набором аргументов, а второй – “пустой” (с помощью конструктора по умолчанию). В функции OnPaint () последовательным вызовом для этого объекта обеих функций Draw () выведите в окно два изображения объекта. Убедитесь в том, что изображения геометрически совпадают.
а. Запись объекта на диск и чтение с диска традиционными файловыми функциями Windows. Включите в функцию OnCreate () предложения создания файла, записи в него содержимого вашего объекта, сброса указателя в файле в начало файла и чтения данных с диска в созданный заранее второй (неинициализированный) объект. В функции OnPaint () выведите (разными функциями Draw ()) изображения обоих объектов – исходного и заполненного данными с диска. Убедитесь в совпадении изображений.
б. Запись объекта на диск и чтение с диска с помощью потоков ввода-вывода. Подключите к программе заголовочный файл < fstream. h >. Создайте в функции OnCreate () третий объекта вашего класса с отличным набором аргументов и четвертый – “пустой”. Создайте поток файлового вывода – объект класса ofstream, указав в аргументах конструктора новое имя файла. Вызовом функции write () для объекта потока запишите в файл содержимое объекта. В качестве аргументов этой функции указывается адрес объекта, приведенный к типу char *, и размер объекта в байтах. Закройте поток вывода.
|
Создайте поток файлового ввода – объект класса ifstream. Вызовом функции read () для этого объекта прочитайте данные с диска в четвертый (неинициализированный) объект. В функции OnPaint () выведите в окно изображения обоих объектов. Убедитесь в совпадении изображений.
Работа №13. Перегрузка в прикладном классе операторов
вставки и извлечения
Выполняя запись и чтение с помощью потоков ввода-вывода, удобно вместо относительно громоздких предложений с потоковыми функциями write () и read () использовать операторы вставки в поток (<<) и извлечения из потока (>>). Однако эти операторы C++, перегруженные для потоков, по умолчанию осуществляют преобразование числовых данных в символьные и наоборот. Для того, чтобы осуществлять запись и чтение числовых данных (что обычно и требуется в прикладных программах обработки результатов экспериментов или моделирования), необходимо перегрузить операторы вставки и извлечения применительно к составу прикладного класса.
Воспользуйтесь в качестве заготовки текстом предыдущей работы. Включите в состав вашего класса перегруженные операторы << и >>, объявив их дружественными операторными функциями.
В файле с исходным текстом программы определите содержимое перегруженных операторных функций. Каждая из них должна посредством функций write () и read () посылать в поток или извлекать из потока последовательно все члены вашего класса. Не забудьте, что в качестве аргументов этих функций указываются адреса пересылаемых данных, приведенные к типу char *, и их размер в байтах.
Как и в предыдущей работе, создайте в функции OnCreate () объект вашего класса с некоторым набором аргументов и второй, “пустой” объект. Создайте поток файлового вывода – объект класса ofstream, указав в аргументах конструктора новое имя файла. Перешлите содержимое объекта вашего класса в файл, используя оператор вставки в поток (<<). Закройте поток вывода.
|
Создайте поток файлового ввода – объект класса ifstream. С помощью операторы извлечения из потока (>>) прочитайте данные с диска в неинициализированный объект вашего класса. В функции OnPaint () выведите в окно изображения обоих объектов. Убедитесь в совпадении изображений.
|
|
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!