лабки / 310-і-БОЙКО_20
.docxВиконав Бойко Є.А.
Група 310
Варіант 3
Лабораторна робота 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;}}
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();}}
void Cser_dia_tabulView::OnDraw(CDC*/*pDC*/){
Cser_dia_tabulDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;}
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);}
void Cser_dia_tabulDoc::Serialize(CArchive&ar){
if (ar.IsStoring()){
ar<<m_stroka; }
else{
ar>>m_stroka;}}
BOOL Cser_dia_tabulDoc::OnNewDocument(){
if (!CDocument::OnNewDocument())
return FALSE;
m_stroka="";
UpdateAllViews(NULL);
return TRUE;}
Блок-схеми:
Скріншот программи:
Висновки: на лабораторній я закріпив свої навички з дисципліни ООП, та покращив свої вміння в цій сфері роботи.