
- •ЗаДание к курсовой работе:
- •Содержание
- •Этапы выполнения курсовой работы
- •Этапы разработки программы
- •Блок-схема программы
- •2.3 Создание меню
- •2.4 Создание диалога для входных значений
- •Заключение
- •Приложение Листинг программы
- •Void vxod_dialog::DoDataExchange(cDataExchange* pDx)
- •Void vxod_dialog::OnOk()
- •Void vxod_dialog::OnDefaultd()
- •Void vxod_dialog::OnSaved()
- •Void vxod_dialog::OnLoadd()
- •Implement_dyncreate(cZasyadkoView, cView)
- •Void cZasyadkoView::Draw()
- •Void cZasyadkoView::Clear()
- •Void cZasyadkoView::OnVxod()
- •Vxod_dialog dlg;
- •Void cZasyadkoView::OnTimer(uint nIdEvent)
- •Void cZasyadkoView::OnStop()
- •Void cZasyadkoView::OnTraektor()
Void cZasyadkoView::Clear()
{
CClientDC dc(this);
SetMapMode(dc,MM_LOMETRIC);
SetViewportOrgEx(dc, ox, oy, NULL);
CPen newpen1;
newpen1.CreatePen(PS_SOLID,1,RGB(255,255,255));
dc.SelectObject(newpen1);
dc.MoveTo(bx, by);
dc.LineTo(ax, ay);
dc.MoveTo(cx, cy);
dc.LineTo(a1x, a1y);
dc.MoveTo(a1x, a1y);
dc.LineTo(ax, ay);
dc.MoveTo(ax-(a1x-ax), ay-(a1y-ay));
dc.LineTo(a1x, a1y);
dc.MoveTo(mx, my);
dc.LineTo(kx, ky);
dc.MoveTo(kx,ky);
dc.LineTo(kx,ky-ab);
CPen newpen6;
newpen6.CreatePen(PS_SOLID,1,RGB(255,255,255));
dc.SelectObject(newpen6);
dc.Ellipse(bx-10/kl*dab/100,by-10/kl*dab/100,bx+10/kl*dab/100,by+10/kl*dab/100);
dc.Ellipse(cx-10/kl*dab/100,cy-10/kl*dab/100,cx+10/kl*dab/100,cy+10/kl*dab/100);
dc.Ellipse(a1x-10/kl*dab/100,a1y-10/kl*dab/100,a1x+10/kl*dab/100,a1y+10/kl*dab/100);
dc.Ellipse(ax-10/kl*dab/100,ay-10/kl*dab/100,ax+10/kl*dab/100,ay+10/kl*dab/100);
dc.Ellipse(mx-10/kl*dab/100,my-10/kl*dab/100,mx+10/kl*dab/100,my+10/kl*dab/100);
dc.Ellipse(kx-10/kl*dab/100,ky-10/kl*dab/100,kx+10/kl*dab/100,ky+10/kl*dab/100);
dc.SetTextColor(RGB(255,255,255));
dc.SetBkMode(TRANSPARENT);
dc.TextOut(bx+10,by+4,"B");
dc.TextOut(cx+10,cy+4,"C");
dc.TextOut(kx+10,ky-10,"K");
dc.TextOut(ax-15,ay-10,"A");
dc.TextOut(a1x+10,a1y-10,"A'");
dc.TextOut(mx,my+10,"M'");
dc.Rectangle(cx*1.4,0,cx*1.5,25);
}
Void cZasyadkoView::OnVxod()
{
Vxod_dialog dlg;
if(dlg.DoModal()==IDOK)
{
if(dlg.m_com =="1:1"){kl=1;}
if(dlg.m_com =="1:4"){kl=4;}
if(dlg.m_com =="1:5"){kl=5;}
if(dlg.m_com =="1:10"){kl=10;}
if(dlg.m_com =="1:20"){kl=20;}
if(dlg.m_com =="1:25"){kl=25;}
ox=dlg.m_bx;
oy=dlg.m_by;
bx=0;
by=0;
cy=by;
cx=bx+dlg.m_bc*dlg.m_dab*10/kl;
ab=dlg.m_ab*dlg.m_dab*10/kl;
a1c=dlg.m_ab*dlg.m_dab*10/kl;
aa1=dlg.m_dab*10*dlg.m_aa/kl*1.06;
km=dlg.m_dab*10*dlg.m_mk/kl;
kx=(bx+cx)/2;
dab=dlg.m_dab;
flag=1;
flag2=1;
flag3=0;
flag4=1;
a=65;
gs=dlg.m_gs;
kp=dlg.m_kp;
if(kp!=0){ n=0; nn=0;}
CClientDC dc(this);
CPen Pen1; Pen1.CreatePen(PS_DOT, 10, RGB(255,255,255));
dc.SelectObject(Pen1);
dc.Rectangle(0,0,2000,2000);
int s=250;
s=s/gs;
nTimer=SetTimer(1,s,NULL);
ASSERT(nTimer != 0);
}
}
Void cZasyadkoView::OnTimer(uint nIdEvent)
{
if(kp!=0){
Raschet();
nn=nn+1;
if(kp>2 && nn>=(186/kp)) { Draw(); nn=0;}
if(n>=186) nTimer=KillTimer(1);
n=n+1;
}
if(kp==0){
Clear();
Raschet();
Draw();
CView::OnTimer(1);
}
}
Void cZasyadkoView::OnStop()
{
if(flag4==1)
{
nTimer=KillTimer(1);
flag4=0;
}
else
{
int s=250;
s=s/gs;
nTimer=SetTimer(1,s,NULL);
ASSERT(nTimer != 0);
flag4=1;
}
}
Void cZasyadkoView::OnTraektor()
{
if(flag3==0)flag3=1;
else
{
flag3=0;
CClientDC dc(this);
CPen Pen1; Pen1.CreatePen(PS_DOT, 10, RGB(255,255,255));
dc.SelectObject(Pen1);
dc.Rectangle(0,0,2000,2000);
}
}
Блок-схема работы программы
Рис. 1. Блок-схема работы программы