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

Разработка программы для вычисления составной функции с использованием "радиокнопок" функций и "переключателей". Работа с элементом управления "Комбинированный список" (ComboBox). Создание MDI-приложения для формирования и просмотра данных из файла.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 01.05.2015
Размер файла 45,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

Кафедра СИСТЕМ УПРАВЛЕНИЯ

Контрольная работа № 1

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМ УПРАВЛЕНИЯ

Выполнил:

студент группы 002402

ФЗО, специальность 1-530107

Оразмамедов Вельмурад Байрамурадович

Минск 2013

1. Элементы управления радиокнопки (Radio Button) и переключатели (Check Box)

Задание к лабораторной работе

В индивидуальном задании составить программу для вычисления составной функции в соответствии со своим вариантом. Требуется самостоятельно выбрать необходимое количество исходных данных для того, чтобы в программе выполнялись все возможные ветви алгоритма. Перед выводом полученного результата программа должна сообщать о ветви, для которой он получен. В качестве f(x) использовать по выбору: «радиокнопками» функции cos(x), sin(x), tg(x). Программа должна через «переключатели» запоминать или не запоминать min и max найденные значения. Вариант интерфейса приведен на рисунке 1.

Рисунок 1. - Вариант интерфейса

Исходный код:

#include "stdafx.h"

#include "lab1_6.h"

#include "lab1_6Dlg.h"

#include "math.h"

#define PI 3.14159265

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

double max=-99999;

double min=99999;

/////////////////////////////////////////////////////////////////////////////

// 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<m_y) maxz=m_y;

if(maxz<m_z) maxz=m_z;

minz=f;//выбор минимального значения

if (minz>m_y) minz=m_y;

fun=(maxz/minz)+5;

if (max<fun && m_mx) max=fun;//для включения сохранения максимума

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==-99999 && min==99999)

{

str.Format("m=%lf, min NO, max NO%c%c",fun,13,10);

m_t=m_t+str;

}

else

{

if (max==-99999)

{

str.Format("m=%lf, min %lf, max NO%c%c",fun,min,13,10);

m_t=m_t+str;

}

else {

if (min==99999){

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 "lab2_6.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<k;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<list.GetSize(); 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_)

Размещено на Allbest.ru


Подобные документы

  • Изучение синтаксиса пользовательских функций. Разработка приложения для вычисления параметров системы управления запасами. Синтаксис элемента "Список аргументов функции". Основные правила написания программного кода. Основные операторы языка VBA.

    лабораторная работа [119,0 K], добавлен 22.09.2016

  • Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.

    курсовая работа [240,6 K], добавлен 17.06.2013

  • Описание предметной области. Алгоритм разработки приложения для создания, управления и просмотра базы данных библиотечной литературы. Построение схемы классов для графического отображения функций программы и анализа взаимосвязей между различными классами.

    курсовая работа [2,0 M], добавлен 14.12.2012

  • Создание приложения для вычисления значений функций и определение суммы этих функций: эскиз формы, таблица свойств объекта, список идентификаторов и непосредственные коды процедур. Результаты вычислений и выводы, проверка работы данной программы.

    лабораторная работа [19,9 K], добавлен 20.10.2009

  • Разработка базы данных и прикладного программного приложения с целью обеспечения хранения, накопления и предоставления информации об учащихся МБОУ "Средняя общеобразовательная школа №18" г. Грозный. Методы обеспечения информационной безопасности.

    дипломная работа [2,9 M], добавлен 25.06.2015

  • Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.

    курсовая работа [1,2 M], добавлен 16.08.2012

  • Обоснование необходимости систем управления базами данных на предприятиях. Особенности разработки программного обеспечения по управлению базой данных, обеспечивающего просмотр, редактирование, вставку записей базы данных, формирование запросов и отчетов.

    курсовая работа [1,5 M], добавлен 23.01.2010

  • Создание программного приложения для осуществления основных функций по заказу мебели, регистрации клиентов, сотрудничеству с поставщиками. Разработка интерфейса прикладной программы. Логическое проектирование базы данных и SQL-скрипт генерации таблиц.

    курсовая работа [2,4 M], добавлен 11.02.2013

  • Принципы разработки математических моделей, алгоритмов и программ. Составление программы вычисления функции с использованием нестандартных функций. Нахождение значения корней нелинейного уравнения по методу касательных. Программа для вычисления интеграла.

    курсовая работа [568,3 K], добавлен 07.03.2015

  • Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.

    курсовая работа [636,2 K], добавлен 23.08.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.