2. Поспелов Д.А. Принципы ситуационного управления // Известия АН СССР. Серия Техническая кибернетика. 1971. N.2.
3. Клыков Ю.И. Ситуационное управление большими системами. М.: Энергия, 1974.
4. Поспелов Д.А. Большие системы. Ситуационное управление. М.: Знание, 1975.
5. Искусственный интеллект. - В 3-х кн. Справочник. М.: Радио и связь, 1990.
6. MES Explained: A High Level Vision for Executives. White Paper of MESA International (1997). Интернет-адрес: http://www.mesa.org/html/main. cgi? sub=7
7. Technical Articles of Consilium Company. Интернет-адрес: http://www.consilium.com/Publications/technica. htm
8. Уоссермен Ф. Нейрокомпьютерная техника. Теория и практика. М.: Мир, 1992.238 с.
9. С.С. Гайсарян. Объектно-ориентированные технологии проектирования прикладных программных систем. Интернет-адрес: http://www.citforum.ru/programming/oop_rsis/index. shtml
10. P. Coad, M. Mayfield. Object Models: Strategies, Patterns and Applications (Yourdon Press Computing Series). 1996.
11. Буч.Г. "Объектно-ориентированный анализ и проектирование с примерами приложений на C++", М.,"Бином", 1998 г.
Фрагменты исходного кода
// Angstrem. h: main header file for the ANGSTREM application
//
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx. h' before including this file for PCH
#endif
#include "resource. h" // main symbols
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CAngstremApp:
// See Angstrem. cpp for the implementation of this class
//
class CAngstremApp: public CWinApp
{
public:
CAngstremApp ();
// Overrides
// ClassWizard generated virtual function overrides
// {{AFX_VIRTUAL (CAngstremApp)
public:
virtual BOOL InitInstance ();
// }}AFX_VIRTUAL
// Implementation
// {{AFX_MSG (CAngstremApp)
afx_msg void OnAppAbout ();
afx_msg void OnObjectsPartsNew ();
afx_msg void OnObjectsPartsOpen ();
afx_msg void OnObjectsPartsViewall ();
afx_msg void OnObjectsPartsDelete ();
afx_msg void OnAppFindpart ();
// }}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// {{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
// Angstrem. cpp: Defines the class behaviors for the application.
//
#include "stdafx. h"
#include "Angstrem. h"
#include "MainFrame. h"
#include "ChildFrame. h"
#include "AngstremDoc. h"
#include "AngstremView. h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE [] = __FILE__;
#endif
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CAngstremApp
BEGIN_MESSAGE_MAP (CAngstremApp, CWinApp)
// {{AFX_MSG_MAP (CAngstremApp)
ON_COMMAND (ID_APP_ABOUT, OnAppAbout)
ON_COMMAND (ID_OBJECTS_PARTS_NEW, OnObjectsPartsNew)
ON_COMMAND (ID_OBJECTS_PARTS_OPEN, OnObjectsPartsOpen)
ON_COMMAND (ID_OBJECTS_PARTS_VIEWALL, OnObjectsPartsViewall)
ON_COMMAND (ID_OBJECTS_PARTS_DELETE, OnObjectsPartsDelete)
ON_COMMAND (ID_APP_FINDPART, OnAppFindpart)
// }}AFX_MSG_MAP
// Standard file based document commands
END_MESSAGE_MAP ()
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CAngstremApp construction
CAngstremApp:: CAngstremApp ()
{
}
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// The one and only CAngstremApp object
CAngstremApp theApp;
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CAngstremApp initialization
BOOL CAngstremApp:: InitInstance ()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls (); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic (); // Call this when linking to MFC statically
#endif
// Change the registry key under which our settings are stored.
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization.
SetRegistryKey (_T ("Local AppWizard-Generated Applications"));
LoadStdProfileSettings (); // Load standard INI file options (including MRU)
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate (
IDR_ANGSTRTYPE,
RUNTIME_CLASS (CAngstremDoc),
RUNTIME_CLASS (CChildFrame), // custom MDI child frame
RUNTIME_CLASS (CAngstremView));
AddDocTemplate (pDocTemplate);
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (! pMainFrame->LoadFrame (IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
// Enable drag/drop open
m_pMainWnd->DragAcceptFiles ();
// Enable DDE Execute open
EnableShellOpen ();
RegisterShellFileTypes (TRUE);
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine (cmdInfo);
// Dispatch commands specified on the command line
if (! ProcessShellCommand (cmdInfo))
return FALSE;
// The main window has been initialized, so show and update it.
pMainFrame->ShowWindow (m_nCmdShow);
pMainFrame->UpdateWindow ();
return TRUE;
}
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CAboutDlg dialog used for App About
class CAboutDlg: public CDialog
{
public:
CAboutDlg ();
// Dialog Data
// {{AFX_DATA (CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
// }}AFX_DATA
// ClassWizard generated virtual function overrides
// {{AFX_VIRTUAL (CAboutDlg)
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL
// Implementation
protected:
// {{AFX_MSG (CAboutDlg)
// No message handlers
// }}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
CAboutDlg:: CAboutDlg (): CDialog (CAboutDlg:: IDD)
{
// {{AFX_DATA_INIT (CAboutDlg)
// }}AFX_DATA_INIT
}
void CAboutDlg:: DoDataExchange (CDataExchange* pDX)
{
CDialog:: DoDataExchange (pDX);
// {{AFX_DATA_MAP (CAboutDlg)
// }}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP (CAboutDlg, CDialog)
// {{AFX_MSG_MAP (CAboutDlg)
// No message handlers
// }}AFX_MSG_MAP
END_MESSAGE_MAP ()
// App command to run the dialog
void CAngstremApp:: OnAppAbout ()
{
CAboutDlg aboutDlg;
aboutDlg. DoModal ();
}
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CNewPartDlg dialog
class CNewPartDlg: public CDialog
{
// Construction
public:
CNewPartDlg (CWnd* pParent = NULL); // standard constructor
// Dialog Data
// {{AFX_DATA (CNewPartDlg)
enum { IDD = IDD_PARTNEW };
// NOTE: the ClassWizard will add data members here
// }}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
// {{AFX_VIRTUAL (CNewPartDlg)
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
// {{AFX_MSG (CNewPartDlg)
// }}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
CNewPartDlg:: CNewPartDlg (CWnd* pParent /*=NULL*/)
: CDialog (CNewPartDlg:: IDD, pParent)
{
// {{AFX_DATA_INIT (CNewPartDlg)
// NOTE: the ClassWizard will add member initialization here
// }}AFX_DATA_INIT
}
void CNewPartDlg:: DoDataExchange (CDataExchange* pDX)
{
CDialog:: DoDataExchange (pDX);
// {{AFX_DATA_MAP (CNewPartDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
// }}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP (CNewPartDlg, CDialog)
// {{AFX_MSG_MAP (CNewPartDlg)
// }}AFX_MSG_MAP
END_MESSAGE_MAP ()
void CAngstremApp:: OnObjectsPartsNew ()
{
// TODO: Add your command handler code here
CNewPartDlg newPartDlg;
newPartDlg. DoModal ();
}
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// COpenPartDlg dialog
class COpenPartDlg: public CDialog
{
// Construction
public:
COpenPartDlg (CWnd* pParent = NULL); // standard constructor
// Dialog Data
// {{AFX_DATA (COpenPartDlg)
enum { IDD = IDD_PARTOPEN };
// NOTE: the ClassWizard will add data members here
// }}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
// {{AFX_VIRTUAL (COpenPartDlg)
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
// {{AFX_MSG (COpenPartDlg)
// NOTE: the ClassWizard will add member functions here
// }}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
COpenPartDlg:: COpenPartDlg (CWnd* pParent /*=NULL*/)
: CDialog (COpenPartDlg:: IDD, pParent)
{
// {{AFX_DATA_INIT (COpenPartDlg)
// NOTE: the ClassWizard will add member initialization here
// }}AFX_DATA_INIT
}
void COpenPartDlg:: DoDataExchange (CDataExchange* pDX)
{
CDialog:: DoDataExchange (pDX);
// {{AFX_DATA_MAP (COpenPartDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
// }}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP (COpenPartDlg, CDialog)
// {{AFX_MSG_MAP (COpenPartDlg)
// NOTE: the ClassWizard will add message map macros here
// }}AFX_MSG_MAP
END_MESSAGE_MAP ()
void CAngstremApp:: OnObjectsPartsOpen ()
{
// TODO: Add your command handler code here
COpenPartDlg openPartDlg;
openPartDlg. DoModal ();
}
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CViewAllPartsDlg dialog
class CViewAllPartsDlg: public CDialog
{
// Construction
public:
CViewAllPartsDlg (CWnd* pParent = NULL); // standard constructor
// Dialog Data
// {{AFX_DATA (CViewAllPartsDlg)
enum { IDD = IDD_PARTSVIEWALL };
// NOTE: the ClassWizard will add data members here
// }}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
// {{AFX_VIRTUAL (CViewAllPartsDlg)
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
// {{AFX_MSG (CViewAllPartsDlg)
// NOTE: the ClassWizard will add member functions here
// }}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
CViewAllPartsDlg:: CViewAllPartsDlg (CWnd* pParent /*=NULL*/)
: CDialog (CViewAllPartsDlg:: IDD, pParent)
{
// {{AFX_DATA_INIT (CViewAllPartsDlg)
// NOTE: the ClassWizard will add member initialization here
// }}AFX_DATA_INIT
}
void CViewAllPartsDlg:: DoDataExchange (CDataExchange* pDX)
{
CDialog:: DoDataExchange (pDX);
// {{AFX_DATA_MAP (CViewAllPartsDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
// }}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP (CViewAllPartsDlg, CDialog)
// {{AFX_MSG_MAP (CViewAllPartsDlg)
// NOTE: the ClassWizard will add message map macros here
// }}AFX_MSG_MAP
END_MESSAGE_MAP ()
void CAngstremApp:: OnObjectsPartsViewall ()
{
// TODO: Add your command handler code here
CViewAllPartsDlg viewAllPartsDlg;
viewAllPartsDlg. DoModal ();
}
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CDeletePartDlg dialog
class CDeletePartDlg: public CDialog
{
// Construction
public:
CDeletePartDlg (CWnd* pParent = NULL); // standard constructor
// Dialog Data
// {{AFX_DATA (CDeletePartDlg)
enum { IDD = IDD_PARTDELETE };
// NOTE: the ClassWizard will add data members here
// }}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
// {{AFX_VIRTUAL (CDeletePartDlg)
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
// {{AFX_MSG (CDeletePartDlg)
// NOTE: the ClassWizard will add member functions here
// }}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
CDeletePartDlg:: CDeletePartDlg (CWnd* pParent /*=NULL*/)
: CDialog (CDeletePartDlg:: IDD, pParent)
{
// {{AFX_DATA_INIT (CDeletePartDlg)
// NOTE: the ClassWizard will add member initialization here
// }}AFX_DATA_INIT
}
void CDeletePartDlg:: DoDataExchange (CDataExchange* pDX)
{
CDialog:: DoDataExchange (pDX);
// {{AFX_DATA_MAP (CDeletePartDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
// }}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP (CDeletePartDlg, CDialog)
// {{AFX_MSG_MAP (CDeletePartDlg)
// NOTE: the ClassWizard will add message map macros here
// }}AFX_MSG_MAP
END_MESSAGE_MAP ()
void CAngstremApp:: OnObjectsPartsDelete ()
{
// TODO: Add your command handler code here
CDeletePartDlg deletePartDlg;
deletePartDlg. DoModal ();
}
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /
// CPartProcessingPage dialog
class CPartProcessingPage: public CPropertyPage
{
DECLARE_DYNCREATE (CPartProcessingPage)
// Construction
public:
CPartProcessingPage ();
~CPartProcessingPage ();
// Dialog Data
// {{AFX_DATA (CPartProcessingPage)
enum { IDD = IDD_PART_PROCESSING };
// NOTE - ClassWizard will add data members here.
// DO NOT EDIT what you see in these blocks of generated code!
// }}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
// {{AFX_VIRTUAL (CPartProcessingPage)
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
// }}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
// {{AFX_MSG (CPartProcessingPage)
afx_msg void OnRefresh ();
afx_msg void OnStart ();
afx_msg void OnFinish ();
// }}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
IMPLEMENT_DYNCREATE (CPartProcessingPage, CPropertyPage)
CPartProcessingPage:: CPartProcessingPage (): CPropertyPage (CPartProcessingPage:: IDD)
{
// {{AFX_DATA_INIT (CPartProcessingPage)
// NOTE: the ClassWizard will add member initialization here
// }}AFX_DATA_INIT
}
CPartProcessingPage:: ~CPartProcessingPage ()