第十五周實驗報告(二)

來源:互聯網
上載者:User
FractionDlg.cppvoid CmyfractionDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// 如果向對話方塊添加最小化按鈕,則需要下面的代碼//  來繪製該表徵圖。對於使用文檔/視圖模型的 MFC 應用程式,//  這將由架構自動完成。void CmyfractionDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // 用於繪製的裝置上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使表徵圖在工作區矩形中置中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;// 繪製表徵圖dc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}//當使用者拖動已最小化的視窗時系統調用此函數取得游標//顯示。HCURSOR CmyfractionDlg::OnQueryDragIcon(){return static_cast<HCURSOR>(m_hIcon);}void CmyfractionDlg::OnBnClickedButton1(){// TODO: 在此添加控制項通知處理常式代碼UpdateData();if(symbol == '+'){    if(a_deno == b_deno)    {    c_mole = a_mole + b_mole;    c_deno = a_deno;    }    else    {    c_mole = a_mole * b_deno + a_deno * b_mole;    c_deno = a_deno * b_deno;    }}else if(symbol == '-'){    if(a_deno == b_deno)    {    c_mole = a_mole - b_mole;    c_deno = a_deno;    }    else    {    c_mole = a_mole * b_deno - a_deno * b_mole;    c_deno = a_deno * b_deno;    }}else if(symbol == '*'){c_mole = a_mole * b_mole;c_deno = a_deno * b_deno;}else if(symbol == '/'){c_mole = a_mole * b_deno;c_deno = a_deno * b_mole;}Fraction fc(c_mole, c_deno);fc.Simplify();c_mole = fc.get_mole();c_deno = fc.get_deno();UpdateData(FALSE);}

Fraction.hclass
Fraction{public:Fraction(){mole = 1; deno = 1;}Fraction(int x, int y){mole = x; deno = y;}int get_mole();int get_deno();void Simplify();private:int mole;int deno;};

Fraction.cpp#include "stdafx.h"#include "Fraction.h"int Fraction::get_mole(){return mole;}int Fraction::get_deno(){return deno;}void Fraction::Simplify()  {      int m,n,r;      m = abs(deno);      n = abs(mole);      while(r = m % n)  // 求m,n的最大公約數       {          m = n;          n = r;      }      deno /= n;     // 化簡       mole /= n;      if (deno < 0)  // 將分母轉化為正數       {          deno = -deno;          mole = -mole;      }  } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.