Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Рандомизированный алгоритм построения выпуклой оболочки / program / RandchDoc
.cpp#include "RandchDoc.h"
IMPLEMENT_DYNCREATE(CRandchDoc, CDocument)
BEGIN_MESSAGE_MAP(CRandchDoc, CDocument)
//{{AFX_MSG_MAP(CRandchDoc)
//}}AFX_MSG_MAP
ON_COMMAND(ID_FILE_CLOSE, OnFileClose)
END_MESSAGE_MAP()
CRandchDoc::CRandchDoc() {}
CRandchDoc::~CRandchDoc() {}
// CSupportDoc serialization
void CRandchDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
// CSupportDoc diagnostics
#ifdef _DEBUG
void CRandchDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CRandchDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
BOOL CRandchDoc::OnNewDocument()
{
n = 0;
St = 1;
Clear();
return CDocument::OnNewDocument();
}
void CRandchDoc::OnCloseDocument()
{
Clear();
CDocument::OnCloseDocument();
}
BOOL CRandchDoc::OnOpenDocument(LPCTSTR fileName)
{
FILE *fin = fopen(fileName,"r");
for (list<CCHPoint*>::iterator i = S.data.begin();!(i == S.data.end());i++)
delete (*i);
S.data.clear();
float x,y;
while(!feof(fin))
{
fscanf(fin,"%f %f\n", &x, &y);
CCHPoint* p_pnt = new CCHPoint;
p_pnt->p.x = x;
p_pnt->p.y = y;
S.data.push_back(p_pnt);
}
St = 1;
n = (int) S.data.size();
fclose(fin);
return TRUE;
}
BOOL CRandchDoc::OnSaveDocument(LPCTSTR fileName)
{
FILE *fout = fopen(fileName,"w");
for (list<CCHPoint*>::iterator i = S.data.begin(); i!=S.data.end(); ++i)
{
fprintf(fout,"%.0f %.0f\n", (*i)->p.x, (*i)->p.y);
}
fclose(fout);
return TRUE;
}
void CRandchDoc::Clear(void)
{
for(list<CCHPoint*>::iterator i=S.data.begin(); i != S.data.end(); i++)
delete (*i);
S.data.clear();
}
Соседние файлы в папке program