ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Классовая надстройка Π½Π°Π΄ стандартным Ρ‚ΠΈΠΏΠΎΠΌ float

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ†ΠΈΡ„Ρ€ ΠΈ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. Void Digits (char *dig); // функция Π²Π²ΠΎΠ΄Π° Ρ†ΠΈΡ„Ρ€Ρ‹/дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ. M_Ind.GetWindowText (buf, 100); // считываСм содСрТимоС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. M_Ind.GetWindowText (buf, 100); // считываСм содСрТимоС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. M_Ind.GetWindowText (buf, 100); // считываСм содСрТимоС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Microsoft Visual C++ will insert additional declarations immediately before… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Классовая надстройка Π½Π°Π΄ стандартным Ρ‚ΠΈΠΏΠΎΠΌ float (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • 1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° класса-надстройки Π½Π°Π΄ стандартным Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… float
  • 3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° win-прилоТСния, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ класса
  • Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 5

getval ());

if (tst < FLT_MIN){

state=Underflow;

throw state;

}

else if (tst > FLT_MAX){

state=Overflow;

throw state;

}

else

value=(float)tst;

return (*this);

}

Float & Float: operator%=(Float lvl) // остаток ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅

{

if (lvl.getval () ==0.){

state=zeroDiv;

throw state;

}

double tst=value/lvl.getval ();

if (tst < FLT_MIN){

state=Underflow;

throw state;

}

else

value -= (float)(tst > 0? floor (tst): ceil (tst))*lvl.getval ();

return (*this);

}

// опСрация взятия значСния

float Float: getval (){return (value);}

// опСрация прСобразования Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Float:operator const char*(){

sprintf (buffer," %10G", value);

return (buffer);

}

// ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

float operator-(Float op1){Float res=op1;return (-res.getval ());}

float operator+(Float op1){Float res=op1;return (res.getval ());}

// Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Float operator+(Float op1, Float op2){Float res=op1;res += op2. getval ();return (res);}

Float operator-(Float op1, Float op2){Float res=op1;res -= op2. getval ();return (res);}

Float operator*(Float op1, Float op2){Float res=op1;res *= op2. getval ();return (res);}

Float operator/(Float op1, Float op2){Float res=op1;res /= op2. getval ();return (res);}

Float operator^(Float op1, Float op2){Float res=op1;res ^= op2. getval ();return (res);}

Float operator%(Float op1, Float op2){Float res=op1;res %= op2. getval ();return (res);}

// рСализация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния

int operator>(Float op1, Float op2){return op1. getval ()-op2.getval () > 0;}

int operator<(Float op1, Float op2){return op1. getval ()-op2.getval () < 0;}

int operator>=(Float op1, Float op2){return op1. getval ()-op2.getval () >= 0;}

int operator<=(Float op1, Float op2){return op1. getval ()-op2.getval () <= 0;}

int operator==(Float op1, Float op2){return op1. getval ()-op2.getval () == 0;}

int operator≠(Float op1, Float op2){return op1. getval ()-op2.getval () ≠ 0;}

// рСализация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΠΎΡ‚ΠΎΠΊ

istream& operator>>(istream &op1, Float &op2){

float val;

op1 >> val;

op2=val;

return op1;

}

ostream& operator<<(ostream &op1, Float &op2){

return op1 << op2. getval ();

}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 3

// E6965. cpp: Defines the entry point for the console application.

#include «stdafx.h»

#include «Float.h»

#include

#include

int main (int argc, char* argv[])

{

Float a, b;

a="5″; // инициализация ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ массивом

cout << a << «n»; // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΏΠΎΡ‚ΠΎΠΊ

cout << +a << «n»; // ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ плюс

cout << -a << «n»; // ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус

cout << ++a << «n»; // ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚

cout << —a << «n»; // Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚

b=a+3.; // слоТСниС с Ρ‡ΠΈΡΠ»ΠΎΠΌ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅

cout << b << «n»; // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΏΠΎΡ‚ΠΎΠΊ

cout << a+b << «n»; // слоТСниС

cout << a-b << «n»; // Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅

cout << a/b << «n»; // Π΄Π΅Π»Π΅Π½ΠΈΠ΅

cout << a*b << «n»; // ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅

cout << (a^b) << «n»; // Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ

cout << (a*20.)%b << «n»; // ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π·ΡΡ‚ΠΈΠ΅ остатка ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ

cout << (const char *)(b/3.) << «n» ;// Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

// ВСстированиС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

cout << «nслоТСниС ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅n» ;

a=3.4e+38;

try{

while (1)

cout << (a += 1e35) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

cout << «nΠ²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅n» ;

a=-3.4e+38;

try{

while (1)

cout << (a -= 1e35) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

cout << «nΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅n» ;

a=3.4e+30;

try{

while (1)

cout << (a *= 1e4) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

cout << «nΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅n» ;

a=3.4e+30;

try{

cout << (a /= 0) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

try{

while (1)

cout << (a /= 1e9) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

cout << «nостаток ΠΎΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅n» ;

a=1000.;

try{

cout << (a %= 0.) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

a=1e-38;

try{

cout << (a %= 1e9) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

cout << «nΠ²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΈ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅n» ;

a=50.6;

try{

while (1)

cout << (a^=2.) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

a=0.;

try{

cout << (a^=-2.) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

a=50.6;

try{

while (1)

cout << (a^=-2.) << «n» ;

}

catch (EHstate eObj){

if (eObj == zeroDiv)

cout << «zeroDivn» ;

if (eObj == Overflow)

cout << «Overflown» ;

if (eObj == Underflow)

cout << «Underflown» ;

};

return 0;

}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4

// calcDlg. h: header file

#if !defined (AFX_CALCDLG_H__7C908145_97F8_44F6_A794_DC0D7D0528B9__INCLUDED_)

#define AFX_CALCDLG_H__7C908145_97F8_44F6_A794_DC0D7D0528B9__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#include «Float.h»

// CCalcDlg dialog

class CCalcDlg: public CDialog

{

private:

char buf[100]; // Π±ΡƒΡ„Π΅Ρ€ для ΠΎΠ±ΠΌΠ΅Π½Π° с ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΡ‹ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

BOOL New; // Π½ΠΎΠ²ΠΎΠ΅ число

BOOL Comma; // Ρ‚ΠΎΡ‡ΠΊΠ°

int OP; // зафиксированная опСрация

Float res; // пСрСмСнная для вычислСний

// Construction

public:

CCalcDlg (CWnd* pParent = NULL); // standard constructor

// Dialog Data

//{{AFX_DATA (CCalcDlg)

enum { IDD = IDD_CALC_DIALOG };

CEdit m_Status;

CEdit m_Ind;

//}}AFX_DATA

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL (CCalcDlg)

protected:

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

//}}AFX_VIRTUAL

// Implementation

protected:

HICON m_hIcon;

void Digits (char *dig); // функция Π²Π²ΠΎΠ΄Π° Ρ†ΠΈΡ„Ρ€Ρ‹/дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

void OPs (int NewOP); // функция ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

// Generated message map functions

//{{AFX_MSG (CCalcDlg)

virtual BOOL OnInitDialog ();

afx_msg void OnPaint ();

afx_msg HCURSOR OnQueryDragIcon ();

afx_msg void OnButton1();

afx_msg void OnButton2();

afx_msg void OnButton3();

afx_msg void OnButton4();

afx_msg void OnButton5();

afx_msg void OnButton6();

afx_msg void OnButton7();

afx_msg void OnButton8();

afx_msg void OnButton9();

afx_msg void OnButton0();

afx_msg void OnButtonC ();

afx_msg void OnButtonComma ();

afx_msg void OnButtonPlus ();

afx_msg void OnButtonMinus ();

afx_msg void OnButtonMult ();

afx_msg void OnButtonDiv ();

afx_msg void OnButtonMod ();

afx_msg void OnButtonPow ();

afx_msg void OnButtonTotal ();

afx_msg void OnButtonNeg ();

//}}AFX_MSG

DECLARE_MESSAGE_MAP ()

};

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined (AFX_CALCDLG_H__7C908145_97F8_44F6_A794_DC0D7D0528B9__INCLUDED_)

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 5

// calcDlg. cpp: implementation file

#include «stdafx.h»

#include «calc.h»

#include «calcDlg.h»

#include

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

// CCalcDlg dialog

CCalcDlg:CCalcDlg (CWnd* pParent /*=NULL*/)

: CDialog (CCalcDlg:IDD, pParent)

{

//{{AFX_DATA_INIT (CCalcDlg)

// NOTE: the ClassWizard will add member initialization here

//}}AFX_DATA_INIT

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

}

void CCalcDlg: DoDataExchange (CDataExchange* pDX)

{

CDialog:DoDataExchange (pDX);

//{{AFX_DATA_MAP (CCalcDlg)

DDX_Control (pDX, IDC_EDIT2, m_Status);

DDX_Control (pDX, IDC_EDIT1, m_Ind);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP (CCalcDlg, CDialog)

//{{AFX_MSG_MAP (CCalcDlg)

ON_WM_PAINT ()

ON_WM_QUERYDRAGICON ()

ON_BN_CLICKED (IDC_BUTTON1, OnButton1)

ON_BN_CLICKED (IDC_BUTTON2, OnButton2)

ON_BN_CLICKED (IDC_BUTTON3, OnButton3)

ON_BN_CLICKED (IDC_BUTTON4, OnButton4)

ON_BN_CLICKED (IDC_BUTTON5, OnButton5)

ON_BN_CLICKED (IDC_BUTTON6, OnButton6)

ON_BN_CLICKED (IDC_BUTTON7, OnButton7)

ON_BN_CLICKED (IDC_BUTTON8, OnButton8)

ON_BN_CLICKED (IDC_BUTTON9, OnButton9)

ON_BN_CLICKED (IDC_BUTTON10, OnButton0)

ON_BN_CLICKED (IDC_BUTTON18, OnButtonC)

ON_BN_CLICKED (IDC_BUTTON19, OnButtonComma)

ON_BN_CLICKED (IDC_BUTTON11, OnButtonPlus)

ON_BN_CLICKED (IDC_BUTTON14, OnButtonMinus)

ON_BN_CLICKED (IDC_BUTTON12, OnButtonMult)

ON_BN_CLICKED (IDC_BUTTON15, OnButtonDiv)

ON_BN_CLICKED (IDC_BUTTON13, OnButtonMod)

ON_BN_CLICKED (IDC_BUTTON16, OnButtonPow)

ON_BN_CLICKED (IDC_BUTTON17, OnButtonTotal)

ON_BN_CLICKED (IDC_BUTTON20, OnButtonNeg)

//}}AFX_MSG_MAP

END_MESSAGE_MAP ()

// CCalcDlg message handlers

BOOL CCalcDlg: OnInitDialog ()

{

CDialog:OnInitDialog ();

SetIcon (m_hIcon, TRUE); // Set big icon

SetIcon (m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

New=TRUE;

Comma=FALSE;

OP=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 CCalcDlg: 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 ();

}

}

HCURSOR CCalcDlg: OnQueryDragIcon ()

{

return (HCURSOR) m_hIcon;

}

// Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ

void CCalcDlg: OnButton1(){Digits («1»);}

void CCalcDlg: OnButton2(){Digits («2»);}

void CCalcDlg: OnButton3(){Digits («3»);}

void CCalcDlg: OnButton4(){Digits («4»);}

void CCalcDlg: OnButton5(){Digits («5»);}

void CCalcDlg: OnButton6(){Digits («6»);}

void CCalcDlg: OnButton7(){Digits («7»);}

void CCalcDlg: OnButton8(){Digits («8»);}

void CCalcDlg: OnButton9(){Digits («9»);}

void CCalcDlg: OnButton0(){Digits («0»);}

// Кнопка дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

void CCalcDlg: OnButtonComma ()

{

if (!Comma){ // Π² Ρ‡ΠΈΡΠ»Π΅ Π΅Ρ‰Π΅ Π½Π΅Ρ‚ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

Digits («.»); // ставим Π΅Π΅

Comma=TRUE; // устанавливаСм ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ

}

}

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ†ΠΈΡ„Ρ€ ΠΈ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ

void CCalcDlg: Digits (char *dig)

{

UpdateData ();

m_Ind.GetWindowText (buf, 100); // считываСм содСрТимоС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

if (New){ // НовоС число

buf[0]=0; // обнуляСм Π±ΡƒΡ„Π΅Ρ€

m_Status.SetWindowText (««); // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ строку статуса

New=FALSE; // снимаСм ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Нового числа

}

strcat (buf, dig); // добавляСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π·Π½Π°ΠΊ

m_Ind.SetWindowText (buf); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π±ΡƒΡ„Π΅Ρ€ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€

UpdateData (FALSE);

}

// Кнопки ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

void CCalcDlg: OnButtonPlus () {OPs (1);}

void CCalcDlg: OnButtonMinus (){OPs (2);}

void CCalcDlg: OnButtonMult () {OPs (3);}

void CCalcDlg: OnButtonDiv () {OPs (4);}

void CCalcDlg: OnButtonMod () {OPs (5);}

void CCalcDlg: OnButtonPow () {OPs (6);}

void CCalcDlg: OnButtonTotal (){OPs (0);}

// ΠžΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

void CCalcDlg: OPs (int NewOP)

{

UpdateData ();

m_Ind.GetWindowText (buf, 100); // считываСм содСрТимоС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

m_Status.SetWindowText (««); // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ строку статуса

try{

switch (OP){ // выполняСм Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ

case 0: // Π½Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

res=buf;

break;

case 1: // +

res += buf;

break;

case 2: // ;

res -= buf;

break;

case 3: // *

res *= buf;

break;

case 4: // /

res /= buf;

break;

case 5: // %

res %= buf;

break;

case 6: // ^

res ^= buf;

break;

}

OP=NewOP; // фиксируСм Π½ΠΎΠ²ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ

m_Ind.SetWindowText ((const char *)res);// Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€

}

catch (EHstate &eObj){ // ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

if (eObj == zeroDiv) // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ статуса

m_Status.SetWindowText («Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 0»);

else if (eObj == Overflow)

m_Status.SetWindowText («ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅»);

else

m_Status.SetWindowText («ΠŸΠΎΡ‚Сря порядка»);

}

Comma=FALSE; // снимаСм ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

New=TRUE; // устанавливаСм ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Нового числа

UpdateData (FALSE);

}

// Кнопка смСны Π·Π½Π°ΠΊΠ°

void CCalcDlg: OnButtonNeg ()

{

Float tmp;

UpdateData ();

m_Ind.GetWindowText (buf, 100); // считываСм содСрТимоС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°

m_Status.SetWindowText (««); // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ строку статуса

tmp=buf; // ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π±ΡƒΡ„Π΅Ρ€ Π² Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

tmp=-tmp; // мСняСм Π·Π½Π°ΠΊ числового значСния

if (OP == 0)

res=tmp;

m_Ind.SetWindowText ((const char *)tmp); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€

UpdateData (FALSE);

}

// Кнопка сброса

void CCalcDlg: OnButtonC ()

{

Comma=FALSE; // снимаСм ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

New=TRUE; // устанавливаСм ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ Нового числа

OP=0; // сбрасываСм Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ

m_Status.SetWindowText (««); // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ строку статуса

m_Ind.SetWindowText (««); // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€

UpdateData (FALSE);

}

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  1. Π‘. Бтрауструп Π―Π·Ρ‹ΠΊ программирования C++. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.- БПб.: «ΠΠ΅Π²ΡΠΊΠΈΠΉ Π”ΠΈΠ°Π»Π΅ΠΊΡ‚», 2001.-1099 с.
  2. C++ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΠ΅ пособиС ΠΏΠΎ ΡΠ·Ρ‹ΠΊΡƒ Π‘++. [элСктронный рСсурс]: http://www.find-info.ru/doc/cpp/001/index.htm
  3. БистСмы Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования: Π£Ρ‡Π΅Π±. пособиС для Π²Ρ‚ΡƒΠ·ΠΎΠ²: Π’ 9 ΠΊΠ½. / Под Ρ€Π΅Π΄. И. П. НорСнкова. Кн. 3: Π’. Π“. Π€Π΅Π΄ΠΎΡ€ΡƒΠΊ, Π’. М. Π§Π΅Ρ€Π½Π΅Π½ΡŒΠΊΠΈΠΉ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС. — Πœ.: Π’Ρ‹ΡΡˆ. шк., 1986. — 159 с., ΠΈΠ».
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ
ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π˜Π›Π˜