第十五周任务二

来源:互联网 发布:优化教育资源配置 编辑:程序博客网 时间:2024/06/05 17:32
class CFraction{private:int nume;int deno;public:CFraction(int nu=0,int de=1):nume(nu),deno(de){}    void simplify(); void display();CFraction operator +(CFraction &c1);CFraction operator -(CFraction &c1);CFraction operator *(CFraction &c1);CFraction operator /(CFraction &c1);bool operator >(CFraction &c1);bool operator <(CFraction &c1);bool operator ==(CFraction &c1);bool operator !=(CFraction &c1);bool operator >=(CFraction &c1);bool operator <=(CFraction &c1);    CFraction operator +();CFraction operator -();int getnu();int getde();};
#include "stdafx.h"#include "123.h"#include <iostream>using namespace std;void CFraction::simplify(){int x;int max;if(nume>deno)x=nume;else x=deno;for(int i=2;i<x;i++)if(nume%i==0&&deno%i==0){deno=deno/i;nume=nume/i;max=i;}}void CFraction::display()  {      cout<<"("<<nume<<"/"<<deno<<")"<<endl;  } CFraction CFraction::operator +(CFraction &c1){CFraction c2;c2.deno=deno*c1.deno;c2.nume=nume*c1.deno+c1.nume*deno;    c2.simplify();return (c2);}CFraction CFraction::operator -(CFraction &c1){CFraction c2;c2.deno=deno*c1.deno;c2.nume=nume*c1.deno-c1.nume*deno;    c2.simplify();return (c2);}CFraction CFraction::operator *(CFraction &c1){CFraction c2;c2.deno=deno*c1.deno;c2.nume=nume*c1.nume;    c2.simplify();return (c2);}CFraction CFraction::operator /(CFraction &c1){CFraction c2;c2.deno=deno*c1.nume;c2.nume=nume*c1.deno;    c2.simplify();return (c2);}bool CFraction::operator >(CFraction &c1){    CFraction  c2,c3;c2.nume=nume*c1.deno;c3.nume=c1.nume*deno;if(c2.nume>c3.nume)return true;elsereturn false;}bool CFraction::operator <(CFraction &c1){CFraction  c2,c3;c2.nume=nume*c1.deno;c3.nume=c1.nume*deno;if(c2.nume<c3.nume)return true;elsereturn false;}bool CFraction::operator ==(CFraction &c1){if( operator >(c1)!=1&& operator <(c1)!=1)return true;elsereturn false;}bool CFraction::operator !=(CFraction &c1){if(operator >(c1)==1|| operator <(c1)==1)return true;else return false;}bool CFraction::operator >=(CFraction &c1){if( operator <(c1)!=1)return true;else return false;}bool CFraction::operator <=(CFraction &c1){if(operator >(c1)!=1)return true;elsereturn false;}CFraction CFraction::operator +(){CFraction c2;    c2.nume=nume;c2.deno=deno;return (c2);}CFraction CFraction::operator -(){CFraction c2;    c2.nume=-nume;c2.deno=deno;return (c2);}int  CFraction::getnu(){return nume;}int  CFraction::getde(){return deno;}
#include "stdafx.h"#include "112233.h"#include "112233Dlg.h"#include "123.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialog{public:CAboutDlg();// 对话框数据enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持// 实现protected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()// CMy112233Dlg 对话框CMy112233Dlg::CMy112233Dlg(CWnd* pParent /*=NULL*/): CDialog(CMy112233Dlg::IDD, pParent), a1(0), b1(0), a2(0), a3(0), fuhao(_T("")), a4(0), b4(0), a5(0), b5(0){m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CMy112233Dlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, a1);DDX_Text(pDX, IDC_EDIT2, b1);DDX_Text(pDX, IDC_EDIT9, fuhao);DDX_Text(pDX, IDC_EDIT4, a4);DDX_Text(pDX, IDC_EDIT5, b4);DDX_Text(pDX, IDC_EDIT6, a5);DDX_Text(pDX, IDC_EDIT7, b5);}BEGIN_MESSAGE_MAP(CMy112233Dlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAPON_BN_CLICKED(IDC_BUTTON1, &CMy112233Dlg::OnBnClickedButton1)END_MESSAGE_MAP()// CMy112233Dlg 消息处理程序BOOL CMy112233Dlg::OnInitDialog(){CDialog::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。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);}}// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);// 设置大图标SetIcon(m_hIcon, FALSE);// 设置小图标// TODO: 在此添加额外的初始化代码return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE}void CMy112233Dlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// 如果向对话框添加最小化按钮,则需要下面的代码//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,//  这将由框架自动完成。void CMy112233Dlg::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 CMy112233Dlg::OnQueryDragIcon(){return static_cast<HCURSOR>(m_hIcon);}void CMy112233Dlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码UpdateData();CFraction c1(a1,b1),c2(a4,b4),c;if(fuhao=="+")c=c1+c2;else if(fuhao=="-")c=c1-c2;else if(fuhao=="*")c=c1*c2;else if(fuhao=="/")c=c1/c2;c.simplify();a5=c.getnu();b5=c.getde();    UpdateData(FALSE);}