// OptimaView.cpp : implementation of the COptimaView class // #include "stdafx.h" #include "Optima.h" #include "OptimaDoc.h" #include "OptimaView.h" #include "Parser.h" #include "Simplex.h" #include "Fraction.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // COptimaView IMPLEMENT_DYNCREATE(COptimaView, CEditView) BEGIN_MESSAGE_MAP(COptimaView, CEditView) //{{AFX_MSG_MAP(COptimaView) ON_COMMAND(ID_SOLVE, OnSolve) //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // COptimaView construction/destruction COptimaView::COptimaView() { // TODO: add construction code here } COptimaView::~COptimaView() { } BOOL COptimaView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs BOOL bPreCreated = CEditView::PreCreateWindow(cs); cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping return bPreCreated; } ///////////////////////////////////////////////////////////////////////////// // COptimaView drawing void COptimaView::OnDraw(CDC* pDC) { COptimaDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here } ///////////////////////////////////////////////////////////////////////////// // COptimaView printing BOOL COptimaView::OnPreparePrinting(CPrintInfo* pInfo) { // default CEditView preparation return CEditView::OnPreparePrinting(pInfo); } void COptimaView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) { // Default CEditView begin printing. CEditView::OnBeginPrinting(pDC, pInfo); } void COptimaView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo) { // Default CEditView end printing CEditView::OnEndPrinting(pDC, pInfo); } ///////////////////////////////////////////////////////////////////////////// // COptimaView diagnostics #ifdef _DEBUG void COptimaView::AssertValid() const { CEditView::AssertValid(); } void COptimaView::Dump(CDumpContext& dc) const { CEditView::Dump(dc); } COptimaDoc* COptimaView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COptimaDoc))); return (COptimaDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // COptimaView message handlers void COptimaView::OnSolve() { // TODO: Add your command handler code here Simplex simplex; Parser parser; int i,j,k,l; //AfxMessageBox("Going to Parse"); parser.Parse((CEdit *)this,simplex); RECT r; r.left=10; r.top=10; r.right=200; r.bottom=300; /* CWnd* p; p=GetTopLevelOwner(); this->SendMessage(ID_FILE_OPEN); AfxGetApp()->SendMessage(ID_FILE_NEW);/ ::SendMessage /* POSITION templ; CDocTemplate* doct; templ=AfxGetApp()->GetFirstDocTemplatePosition(); templ=(doct=AfxGetApp()->GetNextDocTemplate(templ))->GetFirstDocPosition(); CDocument* doc; //_______Get Last Document class do { doc=doct->GetNextDoc(templ); } while(templ!=NULL); //_____Get view for this document____ CView* view; templ=doc->GetFirstViewPosition(); view=doc->GetNextView(templ); */ CString data; GetWindowText(data); data+="\r\n\r\n Starting Simplex Algorithm"; data+="\r\n __________________________\r\n\r\n"; CString temp; char buffer[80]; simplex.FillSimplexTable(); //AfxMessageBox("Simplex TableFilled"); //_________Display Variable Statistics_________ data+=(CString)"\r\n\r\nNo. of variables ="+itoa(simplex.no_of_vars,buffer,10); data+=(CString)"\r\nNo. of slack variables ="+itoa(simplex.no_of_svars,buffer,10); data+=(CString)"\r\nNo. of artificial variables ="+itoa(simplex.no_of_avars,buffer,10); data+="\r\n\r\n"; int it=0; int table_counter=1; if(simplex.phase_no==2) data+="\r\nPhase 1 Starting...\r\n-----------------"; while(it==0 || it==-2) { //___Print Table No.__________ itoa(table_counter++,buffer,10); data+="\r\n\r\nTable No: "+CString(buffer); data+="\r\n________________\r\n"; //___First Row data+="\r\n"+GetPString("Val",11)+" |"; for(i=0;i