Технология разработки программного обеспечения систем управления
Разработка программы для вычисления составной функции с использованием "радиокнопок" функций и "переключателей". Работа с элементом управления "Комбинированный список" (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