
лабки / еще какието лабки разных вариантов / ЛР_20
.docxВаріант 7
Лабораторна робота 20
СЕРІАЛІЗАЦІЯ СТАНДАРТНИХ ОБ’ЄКТІВ ПІД ЧАС РОБОТИ З ФАЙЛАМИ
Постановка завдання
Створити однодокументну Windows-програму на C++ ISO/ANSI із
використанням бібліотеки MFC. Передбачити запуск із меню Файл діалогового режиму, читання з діалогового вікна вхідних даних для табуляції функції, запуск процесу табуляції, виведення результатів у вікно списку, а також у файл при виборі пункту меню Файл/Сохранить або Файл /Сохранить как... і подальше прочитання з диска Файл /Открыть.
Код та блок-схеми:
void Dlg::OnBnClickedButton1()
{
CString s1;
double x,xn,dx,xk,y;
medit1.GetWindowTextA(s1);
xn=atof(s1);
medit2.GetWindowTextA(s1);
dx=atof(s1);
medit3.GetWindowTextA(s1);
xk=atof(s1);
s1.Format("Результати:");
for(x=xn;x<=xk;x+=dx)
{
if(x>0)
{
y=log(x);
s1.Format(" x=%lf y=%lf",x,y);
mlist1.AddString(s1);
}
else
{
s1.Format("Немає результату при x=%lf",x);
mlist1.AddString(s1);
}
str+=s1;
}
// TODO: добавьте свой код обработчика сообщений
// или вызов стандартного
}
void Cser_dia_tabulView::OnFileShowdialog()
{
Dlg dlg1;
int rezult=(int)dlg1.DoModal();
if(rezult==IDOK)
{
Cser_dia_tabulDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
if(!pDoc)
return;
pDoc->m_stroka=dlg1.str;
Invalidate();
}
//TODO: добавьте свой код обработчика сообщений или
// вызов стандартного
}
void Cser_dia_tabulView::OnDraw(CDC*/*pDC*/)
{
Cser_dia_tabulDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: добавьте здесь код отрисовки для собственных
// данных
}
Void Cser_dia_tabulView::OnDraw(CDC*pDC/*pDC*/)
{
Cser_dia_tabulDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
pDC->TextOutA(0,0,pDoc->m_stroka);
// TODO: добавьте здесь код отрисовки для собственных данных
}
void Cser_dia_tabulDoc::Serialize(CArchive&ar)
{
if (ar.IsStoring())
{
ar<<m_stroka; //Виведення m_stroka у файл на диск
// TODO: добавьте код сохранения
}
else
{
ar>>m_stroka;
// Прочитання з файла
// TODO: добавьте код загрузки
}
}
BOOL Cser_dia_tabulDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
m_stroka="";
UpdateAllViews(NULL);
// TODO: добавьте код повторной инициализации
return TRUE;
}
Скріншот программи:
Висновки
Створено однодокументну Windows-програму на C++ ISO/ANSI із
використанням бібліотеки MFC. Передбачено запуск із меню Файл діалогового режиму, читання з діалогового вікна вхідних даних для табуляції функції, запуск процесу табуляції, виведення результатів у вікно списку, а також у файл при виборі пункту меню Файл/Сохранить або Файл /Сохранить как... і подальше прочитання з диска Файл /Открыть.