Технология разработки программного обеспечения систем управления
Задание к лабораторной работе В индивидуальном задании составить программу для вычисления составной функции в соответствии со своим вариантом. Требуется самостоятельно выбрать необходимое количество исходных данных для того, чтобы в программе выполнялись все возможные ветви алгоритма. Перед выводом полученного результата программа должна сообщать о ветви, для которой он получен. В качестве f (x… Читать ещё >
Технология разработки программного обеспечения систем управления (реферат, курсовая, диплом, контрольная)
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Кафедра СИСТЕМ УПРАВЛЕНИЯ Контрольная работа № 1
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМ УПРАВЛЕНИЯ Выполнил:
студент группы 2 402
ФЗО, специальность 1−530 107
Оразмамедов Вельмурад Байрамурадович Минск 2013
1. Элементы управления радиокнопки (Radio Button) и переключатели (Check Box)
Задание к лабораторной работе В индивидуальном задании составить программу для вычисления составной функции в соответствии со своим вариантом. Требуется самостоятельно выбрать необходимое количество исходных данных для того, чтобы в программе выполнялись все возможные ветви алгоритма. Перед выводом полученного результата программа должна сообщать о ветви, для которой он получен. В качестве f (x) использовать по выбору: «радиокнопками» функции cos (x), sin (x), tg (x). Программа должна через «переключатели» запоминать или не запоминать min и max найденные значения. Вариант интерфейса приведен на рисунке 1.
Рисунок 1. — Вариант интерфейса Исходный код:
#include «stdafx.h»
#include «lab16.h»
#include «lab1_6Dlg.h»
#include «math.h»
#define PI 3.14 159 265
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
double max=-99 999;
double min=99 999;
// 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)
//}}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 ()
// CLab1_6Dlg dialog
CLab1_6Dlg:CLab1_6Dlg (CWnd* pParent /*=NULL*/)
: CDialog (CLab1_6Dlg:IDD, pParent)
{
//{{AFX_DATA_INIT (CLab1_6Dlg)
m_x = 0;
m_y = 0;
m_z = 0;
m_t = _T (««);
m_r = -1;
m_mn = FALSE;
m_mx = FALSE;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp ()->LoadIcon (IDR_MAINFRAME);
}
void CLab1_6Dlg:DoDataExchange (CDataExchange* pDX)
{
CDialog:DoDataExchange (pDX);
//{{AFX_DATA_MAP (CLab1_6Dlg)
DDX_Text (pDX, IDC_EDIT1, m_x);
DDX_Text (pDX, IDC_EDIT2, m_y);
DDX_Text (pDX, IDC_EDIT3, m_z);
DDX_Text (pDX, IDC_EDIT4, m_t);
DDX_Radio (pDX, IDC_RADIO1, m_r);
DDX_Check (pDX, IDC_CHECK1, m_mn);
DDX_Check (pDX, IDC_CHECK2, m_mx);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP (CLab1_6Dlg, CDialog)
//{{AFX_MSG_MAP (CLab1_6Dlg)
ON_WM_SYSCOMMAND ()
ON_WM_PAINT ()
ON_WM_QUERYDRAGICON ()
ON_BN_CLICKED (IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP ()
// CLab1_6Dlg message handlers
BOOL CLab1_6Dlg:OnInitDialog ()
{ m_r=0;
CDialog:OnInitDialog ();
// Add «About…» menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT ((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT (IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu (FALSE);
if (pSysMenu ≠ NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString (IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty ())
{
pSysMenu->AppendMenu (MF_SEPARATOR);
pSysMenu->AppendMenu (MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application’s main window is not a dialog
SetIcon (m_hIcon, TRUE);// Set big icon
SetIcon (m_hIcon, FALSE);// Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CLab1_6Dlg:OnSysCommand (UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal ();
}
else
{
CDialog:OnSysCommand (nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CLab1_6Dlg:OnPaint ()
{
if (IsIconic ())
{
CPaintDC dc (this); // device context for painting
SendMessage (WM_ICONERASEBKGND, (WPARAM) dc. GetSafeHdc (), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics (SM_CXICON);
int cyIcon = GetSystemMetrics (SM_CYICON);
CRect rect;
GetClientRect (&rect);
int x = (rect.Width () — cxIcon + 1) / 2;
int y = (rect.Height () — cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon (x, y, m_hIcon);
}
else
{
CDialog:OnPaint ();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CLab1_6Dlg:OnQueryDragIcon ()
{
return (HCURSOR) m_hIcon;
}
void CLab1_6Dlg:OnButton1()
{
double f, fun, minz, maxz;
char *metod;
CString str;
UpdateData (TRUE);
if (m_r==0)f=sin (m_x*PI/180);//рассчет F (X)
if (m_r==1) f=cos (m_x*PI/180);//рассчет F (X)
if (m_r==2)f=tan (m_x*PI/180);//рассчет F (X)
maxz=f;//выбора максимального значения
if (maxz
if (maxz
minz=f;//выбор минимального значения
if (minz>m_y) minz=m_y;
fun=(maxz/minz)+5;
if (max
if (min>fun && m_mn) min=fun;//для включения сохранения минимума
if (minz==0) //для вывода результатов начало
{
str.Format («Delenie na 0%c%c», 13,10);
m_t=m_t+str;
}
else {
if (max==-99 999 && min==99 999)
{
str.Format («m=%lf, min NO, max NO%c%c», fun, 13,10);
m_t=m_t+str;
}
else
{
if (max==-99 999)
{
str.Format («m=%lf, min %lf, max NO%c%c», fun, min, 13,10);
m_t=m_t+str;
}
else {
if (min==99 999){
str.Format («m=%lf, min NO, max %lf%c%c», fun, max, 13,10);
m_t=m_t+str;
}
else {
str.Format («m=%lf, min %lf, max %lf%c%c», fun, min, max, 13,10);
m_t=m_t+str;
}
}
}}//для вывода результатов конец
UpdateData (FALSE);
}
радиокнопка combobox файл управление
2. Работа с элементом управления «Комбинированный список» (ComboBox)
Дана строка, состоящая из букв, цифр, запятых, точек, знаков «+» и «-». Вывести подстроку, которая соответствует записи целого числа (т.е. начинается со знаков «+» и «-» и внутри подстроки нет букв, запятых и точек).
Исходный код:
#include «stdafx.h»
#include «lab26.h»
#include «lab2_6Dlg.h»
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// 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)
//}}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 ()
// CLab2_6Dlg dialog
CLab2_6Dlg:CLab2_6Dlg (CWnd* pParent /*=NULL*/)
: CDialog (CLab2_6Dlg:IDD, pParent)
{
//{{AFX_DATA_INIT (CLab2_6Dlg)
m_a = _T (««);
m_b = _T (««);
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp ()->LoadIcon (IDR_MAINFRAME);
}
void CLab2_6Dlg:DoDataExchange (CDataExchange* pDX)
{
CDialog:DoDataExchange (pDX);
//{{AFX_DATA_MAP (CLab2_6Dlg)
DDX_Control (pDX, IDC_COMBO1, m_c);
DDX_Text (pDX, IDC_EDIT1, m_a);
DDX_Text (pDX, IDC_EDIT2, m_b);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP (CLab2_6Dlg, CDialog)
//{{AFX_MSG_MAP (CLab2_6Dlg)
ON_WM_SYSCOMMAND ()
ON_WM_PAINT ()
ON_WM_QUERYDRAGICON ()
ON_BN_CLICKED (IDC_BUTTON1, OnButton1)
ON_BN_CLICKED (IDC_BUTTON2, OnButton2)
ON_BN_CLICKED (IDC_BUTTON3, OnButton3)
//}}AFX_MSG_MAP
END_MESSAGE_MAP ()
// CLab2_6Dlg message handlers
BOOL CLab2_6Dlg:OnInitDialog ()
{
CDialog:OnInitDialog ();
// Add «About…» menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT ((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT (IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu (FALSE);
if (pSysMenu ≠ NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString (IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty ())
{
pSysMenu->AppendMenu (MF_SEPARATOR);
pSysMenu->AppendMenu (MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application’s main window is not a dialog
SetIcon (m_hIcon, TRUE);// Set big icon
SetIcon (m_hIcon, FALSE);// Set small icon
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CLab2_6Dlg:OnSysCommand (UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal ();
}
else
{
CDialog:OnSysCommand (nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CLab2_6Dlg:OnPaint ()
{
if (IsIconic ())
{
CPaintDC dc (this); // device context for painting
SendMessage (WM_ICONERASEBKGND, (WPARAM) dc. GetSafeHdc (), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics (SM_CXICON);
int cyIcon = GetSystemMetrics (SM_CYICON);
CRect rect;
GetClientRect (&rect);
int x = (rect.Width () — cxIcon + 1) / 2;
int y = (rect.Height () — cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon (x, y, m_hIcon);
}
else
{
CDialog:OnPaint ();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CLab2_6Dlg:OnQueryDragIcon ()
{
return (HCURSOR) m_hIcon;
}
void CLab2_6Dlg:OnButton1()
{
CString s1, stroka;
int i, j=0,dop=0;
char str[25];
CComboBox *p=(CComboBox *)GetDlgItem (IDC_COMBO1);
UpdateData (TRUE);
i=p->GetCurSel ();
if (i==LB_ERR)
AfxMessageBox («String No SELECT!!!»);
else
{
p->GetLBText (i, str);
AfxMessageBox (str);
int k=strlen (str);
for (int i1=0;i1
{
if ((str[i1]=='+' || str[i1]=='-') && ('0'<=str[i1+1] && str[i1+1]<='9')) {stroka=stroka+" «+str[i1]; dop=1;}
if (('a'<=str[i1] && str[i1]<='z') || ('A'<=str[i1] && str[i1]<='Z')) dop=0;
if ('0'<=str[i1] && str[i1]<='9' && (dop==1)) stroka=stroka+str[i1];
}//обработка строки для выделения чисел. конец
s1.Format («Iz stroki %d. Podstroka 4isla (4isel): %s%c%c», i+1,stroka, 13,10);//вывод результата
m_b=m_b+s1;
}
UpdateData (FALSE);
}
void CLab2_6Dlg:OnButton2()
{
UpdateData (TRUE);
m_c.AddString (m_a);
m_a="" ;
UpdateData (FALSE);
}
void CLab2_6Dlg:OnButton3()
{ UpdateData (TRUE);
m_c.ResetContent ();
m_b="" ;
UpdateData (FALSE);
}
3. MDI-приложение. Работа с данными в архитектуре «Документ/представление» («Document/view»)
Задание к лабораторной работе Создать MDI-приложение для формирования и просмотра данных из файла в соответствии с индивидуальным заданием.
Требования для создаваемого приложения.
Управление заданием имени файла, его открытием или созданием и т. п. выполняется через команды меню или кнопки панели инструментов.
Просмотр загруженных данных из файла, а также формируемых в приложении данных выполняется в диалоговом окне с использованием элемента управления Listbox. В этом списке отображается либо все данные, либо данные, формируемые в соответствии с функцией, определенной в индивидуальном задании. Порядок вывода управляется с помощью кнопок. Исходно выводится полный список.
Формирование данных в приложении осуществляется в другом диалоговом окне с использованием элементов управления Combobox и Edit.
До задания имени файла элементы меню и соответствующие кнопки управления открытием и сохранением данных в файл должны быть не доступны.
После задания имени файла все команды работы с файлом должны иметь место только для этого файла.
Имя заданного файла должно отображаться в строке статуса.
6. Создайте БД ателье головных уборов. Ориентировочные данные: «Изделия», «Клиенты», «Квитанции».
Исходный код:
Var6.cpp:
// var6. cpp: Defines the class behaviors for the application.
#include «stdafx.h»
#include «var6.h»
#include «MainFrm.h»
#include «ChildFrm.h»
#include «var6Doc.h»
#include «var6View.h»
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// CVar6App
BEGIN_MESSAGE_MAP (CVar6App, CWinApp)
//{{AFX_MSG_MAP (CVar6App)
ON_COMMAND (ID_APP_ABOUT, OnAppAbout)
// NOTE — the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard file based document commands
ON_COMMAND (ID_FILE_NEW, CWinApp: OnFileNew)
ON_COMMAND (ID_FILE_OPEN, CWinApp: OnFileOpen)
END_MESSAGE_MAP ()
// CVar6App construction
CVar6App:CVar6App ()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only CVar6App object
CVar6App theApp;
// CVar6App initialization
BOOL CVar6App: InitInstance ()
{
AfxEnableControlContainer ();
// 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_VAR6TYPE,
RUNTIME_CLASS (CVar6Doc),
RUNTIME_CLASS (CChildFrame), // custom MDI child frame
RUNTIME_CLASS (CVar6View));
AddDocTemplate (pDocTemplate);
// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame (IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
if (cmdInfo.m_nShellCommand == CCommandLineInfo: FileNew)
{
cmdInfo.m_nShellCommand = CCommandLineInfo: FileNothing;
}
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 CVar6App: OnAppAbout ()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal ();
}
// CVar6App message handlers
Var6Doc.cpp:
// var6Doc. cpp: implementation of the CVar6Doc class
#include «stdafx.h»
#include «var6.h»
#include «var6Doc.h»
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// CVar6Doc
IMPLEMENT_DYNCREATE (CVar6Doc, CDocument)
BEGIN_MESSAGE_MAP (CVar6Doc, CDocument)
//{{AFX_MSG_MAP (CVar6Doc)
// NOTE — the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP ()
// CVar6Doc construction/destruction
CVar6Doc:CVar6Doc ()
{
// TODO: add one-time construction code here
}
CVar6Doc:~CVar6Doc ()
{
}
BOOL CVar6Doc: OnNewDocument ()
{
if (!CDocument:OnNewDocument ())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
}
// CVar6Doc serialization
void CVar6Doc: Serialize (CArchive& ar)
{
list.Serialize (ar);
}
// CVar6Doc diagnostics
#ifdef _DEBUG
void CVar6Doc: AssertValid () const
{
CDocument:AssertValid ();
}
void CVar6Doc: Dump (CDumpContext& dc) const
{
CDocument:Dump (dc);
}
#endif //_DEBUG
// CVar6Doc commands
Var6Doc.h
// var6Doc. h: interface of the CVar6Doc class
#if !defined (AFX_VAR6DOC_H__EFC4D7BA_2FBE_4FF4_ACCD_8909E8A7459B__INCLUDED_)
#define AFX_VAR6DOC_H__EFC4D7BA_2FBE_4FF4_ACCD_8909E8A7459B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CVar6Doc: public CDocument
{
protected: // create from serialization only
CVar6Doc ();
DECLARE_DYNCREATE (CVar6Doc)
// Attributes
public:
CStringArray list;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL (CVar6Doc)
public:
virtual BOOL OnNewDocument ();
virtual void Serialize (CArchive& ar);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CVar6Doc ();
#ifdef _DEBUG
virtual void AssertValid () const;
virtual void Dump (CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG (CVar6Doc)
// NOTE — the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined (AFX_VAR6DOC_H__EFC4D7BA_2FBE_4FF4_ACCD_8909E8A7459B__INCLUDED_)
Var6view.cpp:
// var6View. cpp: implementation of the CVar6View class
#include «stdafx.h»
#include «var6.h»
#include «var6Doc.h»
#include «var6View.h»
#include «MainFrm.h»
#include «ProductDlg.h»
#include «ClientDlg.h»
#include «TicketDlg.h»
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// CVar6View
IMPLEMENT_DYNCREATE (CVar6View, CFormView)
BEGIN_MESSAGE_MAP (CVar6View, CFormView)
//{{AFX_MSG_MAP (CVar6View)
ON_BN_CLICKED (IDC_ADD, OnAdd)
ON_COMMAND (ID_BUTTON_ADD, OnAdd)
ON_COMMAND (ID_BUTTON_DELETE, OnDelete)
ON_BN_CLICKED (IDC_DELETE, OnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP ()
// CVar6View construction/destruction
CVar6View:CVar6View ()
: CFormView (CVar6View:IDD)
{
//{{AFX_DATA_INIT (CVar6View)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CVar6View:~CVar6View ()
{
}
void CVar6View: DoDataExchange (CDataExchange* pDX)
{
CFormView:DoDataExchange (pDX);
//{{AFX_DATA_MAP (CVar6View)
DDX_Control (pDX, IDC_LIST1, m_l);
//}}AFX_DATA_MAP
}
BOOL CVar6View: PreCreateWindow (CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView: PreCreateWindow (cs);
}
void CVar6View: OnInitialUpdate ()
{
CFormView:OnInitialUpdate ();
ResizeParentToFit ();
CVar6Doc* pDoc = GetDocument ();
list.Copy (pDoc->list);
m_l.ResetContent ();
for (int i=0; i
{
m_l.InsertString (i, list. GetAt (i));
}
//CMainFrame *pFrame = (CMainFrame*)AfxGetApp ()->m_pMainWnd->GetActiveWindow ();
//pFrame->SetSbText (pDoc->GetTitle ());
}
// CVar6View diagnostics
#ifdef _DEBUG
void CVar6View: AssertValid () const
{
CFormView:AssertValid ();
}
void CVar6View: Dump (CDumpContext& dc) const
{
CFormView:Dump (dc);
}
CVar6Doc* CVar6View: GetDocument () // non-debug version is inline
{
ASSERT (m_pDocument->IsKindOf (RUNTIME_CLASS (CVar6Doc)));
return (CVar6Doc*)m_pDocument;
}
#endif //_DEBUG
// CVar6View message handlers
void CVar6View: OnAdd ()
{
// TODO: Add your control notification handler code here
CVar6Doc* pDoc = GetDocument ();
if (pDoc->GetTitle () == «Products»)
{
CProductDlg productDlg;
productDlg.DoModal ();
if ((productDlg.m_productname ≠ «») && (productDlg.m_productcena ≠ «»))
{
pDoc->list.Add («Изделие: «+ productDlg. m_productname + «, Цена:» + productDlg. m_productcena);
pDoc->SetModifiedFlag (TRUE);
}
}
if (pDoc->GetTitle () == «Clients»)
{
CClientDlg clientDlg;
clientDlg.DoModal ();
if (clientDlg.m_name ≠ «»)
{
pDoc->list.Add (clientDlg.m_name);
pDoc->SetModifiedFlag (TRUE);
}
}
if (pDoc->GetTitle () == «Tickets»)
{
CTicketDlg ticketDlg;
ticketDlg.DoModal ();
if ((ticketDlg.m_client ≠ «») && (ticketDlg.m_product ≠ «»))
{
pDoc->list.Add («Клиент: «+ ticketDlg. m_client + «, «+ ticketDlg. m_product);
pDoc->SetModifiedFlag (TRUE);
}
}
OnInitialUpdate ();
}
void CVar6View: OnDelete ()
{
// TODO: Add your control notification handler code here
CVar6Doc* pDoc = GetDocument ();
int index = m_l.GetCurSel ();
if (index >= 0)
{
pDoc->list.RemoveAt (index, 1);
pDoc->SetModifiedFlag (TRUE);
}
OnInitialUpdate ();
}
Var6View.h
// var6View. h: interface of the CVar6View class
#if !defined (AFX_VAR6VIEW_H__E7C3E0C9_B192_410D_A7AC_F227B9013406__INCLUDED_)
#define AFX_VAR6VIEW_H__E7C3E0C9_B192_410D_A7AC_F227B9013406__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CVar6View: public CFormView
{
protected: // create from serialization only
CVar6View ();
DECLARE_DYNCREATE (CVar6View)
public:
//{{AFX_DATA (CVar6View)
enum { IDD = IDD_VAR6_FORM };
CListBoxm_l;
//}}AFX_DATA
// Attributes
public:
CVar6Doc* GetDocument ();
CStringArray list;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL (CVar6View)
public:
virtual BOOL PreCreateWindow (CREATESTRUCT& cs);
protected:
virtual void DoDataExchange (CDataExchange* pDX); // DDX/DDV support
virtual void OnInitialUpdate (); // called first time after construct
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CVar6View ();
#ifdef _DEBUG
virtual void AssertValid () const;
virtual void Dump (CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG (CVar6View)
afx_msg void OnAdd ();
afx_msg void OnDelete ();
//}}AFX_MSG
DECLARE_MESSAGE_MAP ()
};
#ifndef _DEBUG // debug version in var6View. cpp
inline CVar6Doc* CVar6View: GetDocument ()
{ return (CVar6Doc*)m_pDocument; }
#endif
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined (AFX_VAR6VIEW_H__E7C3E0C9_B192_410D_A7AC_F227B9013406__INCLUDED_)