Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Технология разработки программного обеспечения систем управления

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Задание к лабораторной работе В индивидуальном задании составить программу для вычисления составной функции в соответствии со своим вариантом. Требуется самостоятельно выбрать необходимое количество исходных данных для того, чтобы в программе выполнялись все возможные ветви алгоритма. Перед выводом полученного результата программа должна сообщать о ветви, для которой он получен. В качестве 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_)

Показать весь текст
Заполнить форму текущей работой