Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
27.01.2024
Размер:
159.01 Кб
Скачать

Варіант 7

Лабораторна робота 20

СЕРІАЛІЗАЦІЯ НЕСТАНДАРТНИХ ОБ’ЄКТІВ ПІД ЧАС РОБОТИ З ФАЙЛАМИ

Постановка завдання

Створити однодокументну Windows-програму на C++ISO|ANSI з

використанням бібліотеки MFC. Передбачити створення користувачем

нестандартного, тобто власного класу. У ньому передбачити елемент даних

типу CString. У свою чергу, внести об'єкт цього класу як елемент даних у клас документа. Забезпечити процес серіалізації документа. Тобто в конкретному випадку потрібно забезпечити читання рядка символів, запис її на диск і подальше читання з диска.

Код та блок-схеми:

void vvod(CString ch)

{ m_poroda+=ch;

} void vivod

(CDC*pDC)

{ pDC->TextOutA(0,10,

m_poroda);

}

void clear()

{ m_poroda=””;

}

void CMyView::OnChar(UINT nChar, UINT nRepCnt,

{

UINT nFlags)

CMyDoc*pDoc=GetDocument();

ASSERT_VALID(pDoc);

if(!pDoc)

return;

pDoc->about_dog.vvod(CString((char)nChar));

Invalidate();

// Не забувати!

pDoc->SetModifiedFlag();

}

CView::OnChar(nChar, nRepCnt, nFlags);

void CMyView::OnDraw(CDC*pDC /*pDC*/)

{

CMyDoc* pDoc =

GetDocument();

ASSERT_VALID(pDoc); if (!pDoc)

return;

pDoc->about_dog.vivod(pDC);

// TODO: добавьте здесь код отрисовки для собственных данных }

void CDog::Serialize(CArchive& ar)

{

CObject::Serialize(ar);

if(ar.IsStoring())

ar<<m_poroda; else

ar>>m_poroda;

}

void CMyDoc::Serialize(Carchive& ar)

{

about_dog.Serialize(ar);

/*if (ar.IsStoring())

{

// TODO: добавьте код сохранения

}

else

{

// TODO: добавьте код загрузки

} */

}

Скріншот программи:

Висновки

Створено однодокументну Windows-програму на C++ISO|ANSI з

використанням бібліотеки MFC. Передбачено створення користувачем

нестандартного, тобто власного класу. У ньому передбачено елемент даних

типу CString. У свою чергу, занесено об'єкт цього класу як елемент даних у клас документа.

Соседние файлы в папке еще какието лабки разных вариантов