Практика програмування мовою C++

13 січня 2022
MORENKO OLEKSII

Лістинг (ProgramDlg.h)

// ProgramDlg.h : header file

//

#pragma once

#define mtime 298

#define PI 3.1415926535897932384626433832795

// CProgramDlg dialog

class CProgramDlg : public CDialog

{

// Construction

public:

       CProgramDlg(CWnd* pParent = nullptr);   // standard constructor

// Dialog Data

#ifdef AFX_DESIGN_TIME

       enum { IDD = IDD_PROGRAM_DIALOG };

#endif

       protected:

       virtual void DoDataExchange(CDataExchange* pDX);      // DDX/DDV support

// Implementation

protected:

       HICON m_hIcon;

       // Generated message map functions

       virtual BOOL OnInitDialog();

       afx_msg void OnPaint();

       afx_msg HCURSOR OnQueryDragIcon();

private:

       COLORREF cf, c[25];

       HFONT hold, hNew, hbk;

       HPEN hPenOxy, hOldPen, pen;

       HBRUSH m, oldm, brush;

       CPen d, oldd;

       CBitmap pic;

       CRect rc, w, kw[30];

       CString ms, t, z;

       int Matrix[50][50];

       int x1, y1, x2, y2, x3, y3, x4, y4;

       int RH, RW, k, i, j, p, x, y, cx, cy, dx, dy;

       bool fg;

       int n;

       float cena, sum;

       DECLARE_MESSAGE_MAP()

public:

       int N;

       CStatic E;

       CButton rad1;

       CButton rad2;

       CButton rad3;

       afx_msg void OnBnClickedButton1();

};

Лістинг (ProgramDlg.cpp)

// ProgramDlg.cpp : implementation file

//

#include "stdafx.h"

#include "Program.h"

#include "ProgramDlg.h"

#include "afxdialogex.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CProgramDlg dialog

CProgramDlg::CProgramDlg(CWnd* pParent /*=nullptr*/)

       : CDialog(IDD_PROGRAM_DIALOG, pParent)

       , N(1)

{

       m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CProgramDlg::DoDataExchange(CDataExchange* pDX)

{

       fg = true;

       SetWindowTextW(L"Фотоательє: цифрова фотографія");

       CDialog::DoDataExchange(pDX);

       DDX_Text(pDX, IDC_EDIT1, N);

       DDX_Control(pDX, IDC_E, E);

       DDX_Control(pDX, IDC_RADIO1, rad1);

       DDX_Control(pDX, IDC_RADIO2, rad2);

       DDX_Control(pDX, IDC_RADIO3, rad3);

       E.SetWindowTextW(L"Оберіть формат фото\nВведіть кількість знімків\nНатисніть <OK>");

}

BEGIN_MESSAGE_MAP(CProgramDlg, CDialog)

       ON_WM_PAINT()

       ON_WM_QUERYDRAGICON()

       ON_BN_CLICKED(IDC_BUTTON1, &CProgramDlg::OnBnClickedButton1)

END_MESSAGE_MAP()

// CProgramDlg message handlers

BOOL CProgramDlg::OnInitDialog()

{

       CDialog::OnInitDialog();

       // 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

       rad1.SetCheck(1);

       rad2.SetCheck(0);

       rad3.SetCheck(0);

       return TRUE;  // return TRUE  unless you set the focus to a control

}

// 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 CProgramDlg::OnPaint()

{

       if (IsIconic())

       {

             CPaintDC dc(this); // device context for painting

             SendMessage(WM_ICONERASEBKGND, reinterpret_cast<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 function to obtain the cursor to display while the user drags

//  the minimized window.

HCURSOR CProgramDlg::OnQueryDragIcon()

{

       return static_cast<HCURSOR>(m_hIcon);

}

void CProgramDlg::OnBnClickedButton1()

{

       // TODO: Add your control notification handler code here

      

       UpdateData(true);

       n = N;

       UpdateData(false);

       ms = L"Ваш вибір:\n";

       if (rad1.GetCheck()) cena = 8.5;

       else if (rad2.GetCheck()) cena = 10;

       else if (rad3.GetCheck()) cena = 15.5;

       sum = n * cena;

       t.Format(L"Ціна: %3.1f грн\nКількість знімків: %i шт\nЗагальна сума: %4.1f грн", cena, n, sum);

       ms += t;

       E.SetWindowTextW(ms);

}

#include <iostream>
#include <string>

using namespace std;

int main()
{
setlocale(LC_ALL, ".1251");
system("color 1F");
cout << "\n\tДоброго дня, оберiть формат фотографiї:";
cout << "\n\t1) 9x12";
cout << "\n\t2) 10x15";
cout << "\n\t3) 18x24";
cout << "\n\tВведiть номер формату >> ";
int k;
cin >> k;
float cena, sum;
cena = sum = 0;

if (k == 1) cena = 8.5;
else if (k == 2) cena = 10;
else if (k == 3) cena = 15.5;

cout << "\n\tВведiть кiлькiсть знiмкiв >> ";
int n;
cin >> n;

sum = n * cena;

printf("\n\tЦiна: %3.1f\n\tКiлькiсть: %i\n\tЗагальна сума: %4.1f", cena, n, sum);

cout << "\n\n\t";
system("pause");
return 0;
}

Якщо ви помітили помилку чи неточність, виділіть фрагмент тексту та натисніть Ctrl+Enter.

 

Умови використання матеріалів сайту

Використання матеріалів можливе лише за умови активного гіперпосилання на UaModna ( див. Правила* ). Для генерації коду посилання натисніть на кнопку

Думки, позиції, уподобання та заклики, опубліковані на нашому сайті, є власністю авторів і можуть не співпадати з поглядами редакції uamodna.com