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

лабки / 310-і-БОЙКО_21

.docx
Скачиваний:
1
Добавлен:
27.01.2024
Размер:
283.39 Кб
Скачать

Виконав Бойко Є.А.

Група 310

Варіант 3

Лабораторна робота 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);}

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);}

Скріншот:

Б лок-схема

Висновки: На дабораторній роботі , я покращив свої вміння та навички з дисципліни ООП, та збільшив свій кругообіг знань.

Соседние файлы в папке лабки