- •1.Задание на выполнение лабораторной работы
- •2.Порядок выполнения работы
- •3.2. Создание шаблона проекта с помощью мастера AppWizard.
- •3.3. Визуальное проектирование диалоговой панели созданного проекта
- •3.4. Установка и настройка элементов управления
- •3.5. Установка статических текстов
- •3.6. Установка и настройка окон редактирования
- •3.7. Установка и настройка элемента управления Picture(рисунок)
- •Id: idb_bitmap1;
- •Image: idb_bitmap1;
- •3.9. Кодирование проекта
- •3.9.1.Доработка заголовочного файла CapStDlg.H
- •3.9.2. Доработка исходного файла CupStDlg.Cpp.
- •Virtual void DoDataExchange(cDataExchange* pDx); // ddx/ddv support
- •Void cAboutDlg::DoDataExchange(cDataExchange* pDx)
- •3.9.3. Связывание кнопки oKс кодом для решения и вывода результатов решения задачи
- •Void cCupStDlg::OnOk()
- •3.10. Выполнение проекта
- •4.Содержание отчета по выполнению лабораторной работы
- •5.Задания на самостоятельную работу при подготовке к лабораторным занятиям
- •6. Перечень используемой литературы
3.9. Кодирование проекта
Остов заголовочных и исполняемых файлов приложения сделаны AppWizard. Нам остается вписать в созданные им файлы коды, обеспечивающие ввод исходных данных, вычисления и вывод результатов в соответствующие окна редактирования на диалоговой панели. Другими словами, нам нужно доработать упомянутые файлы и вдохнуть в них функциональность нашего приложения.
3.9.1.Доработка заголовочного файла CapStDlg.H
Для этого в области ProjectWorkspaseна вкладке FileViev последовательно раскроем пункт CupStfiles,папку HeaderFilesи дважды щелкнем на пункте CapStDlg.h. При этом в окне редактирования кода открывается код заголовочного файла CapStDlg.h.
В объявлении класса classCCupStDlg:publicCdialog необходимо объявить функции для вычисления значений всех искомых и промежуточных переменных:A1,A2,A3,A,V,m,D, а также исходных переменныхd,H,s,Rn,pi. Ниже приведен фрагмент кода заголовочного файла CapStDlg.h, созданного AppWizard с указанием места вставки упомянутых выше объявлений:
// CupStDlg.h : header file
//
#if !defined(AFX_CUPSTDLG_H__2BF3ADE8_545E_11DA_BE20_00115B638F0C__INCLUDED_)
#define AFX_CUPSTDLG_H__2BF3ADE8_545E_11DA_BE20_00115B638F0C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CCupStDlg dialog
class CCupStDlg : public CDialog
{
// Construction
public:
CCupStDlg(CWnd* pParent = NULL); // standard constructor
//Здесь нужно вставить определения функций для вычисления искомых переменных //и определения исходных переменных d,H,s,Rn,pi
// Например:
doubled,H,s,Rn,rho,pi;// Определения исходных переменных
doubleArea(void);// Определение функции для вычисления площади поверхности
…………………….;
……………………..;
…………………….;
…………………….;
…………………….;
doubleDBlank(void);// Определение функции для вычисления диаметра заготовки
// Dialog Data
//{{AFX_DATA(CCupStDlg)
enum { IDD = IDD_CUPST_DIALOG };
double m_Edit_d;
double m_Edit_h;
double m_Edit_Rn;
double m_Edit_s;
double m_Edit_rho;
double m_Edit_A;
double m_Edit_m;
double m_Edit_diam;
double m_Edit_V;
//}}AFX_DATA
……………………………………..
//Оставшуюся и не приведенную здесь часть кода оставляем без изменения
3.9.2. Доработка исходного файла CupStDlg.Cpp.
В исходном файле CupStDlg.cppпосле тела любой функции, созданной AppWizard, необходимо вставить определения всех семи функций объявленных в заголовочном файле. Для этого двойным щелчком по имени файла CupStDlg.cpp, размещенного в открытой папкеSourceFilesокна проекта, открываем текст исходного кода, нужный фрагмент которого приведен ниже и будет использован для доработки-вставки упомянутых выше определений функций приложения:
// CupStDlg.cpp : implementation file
//
#include "stdafx.h"
#include "CupSt.h"
#include "CupStDlg.h"
#include <math.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: