/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:窗口练习 * 作 者: 苗影 * 完成日期: 2012 年 05 月30日 * 版 本 号: x1.0 * 对任务及求解方法的描述部分 * 输入描述:窗口化 (分数的加减乘除) * 问题描述: * 程序头部的注释结束 */
#include<iostream>
#include"hh.h"
class CFraction { private: double nume; // 分子 double deno; // 分母 public: CFraction(int nu=0,int de=1):nume(nu),deno(de){} void simplify(); double getnume(); double getdeno(); CFraction operator+( CFraction &c); //两个分数相加,结果要化简 CFraction operator-( CFraction &c); //两个分数相减,结果要化简 CFraction operator*( CFraction &c); //两个分数相乘,结果要化简 CFraction operator/( CFraction &c); //两个分数相除,结果要化简 } void CFraction::simplify() { int h,m,i,j; for(i=2;i<=6;i++) { { h=nume%i; m=deno%i; } while(h==0&&m==0) { j=i; nume=nume/j; deno=deno/j; h=nume%i; m=deno%i; } } } CFraction CFraction::operator+( CFraction &c) { CFraction t; t.nume=nume*c.deno+c.nume*deno; t.deno=deno*c.deno; t.simplify() return t; } CFraction CFraction:: operator-( CFraction &c) { CFraction t; t.nume=nume*c.deno-c.nume*deno; t.deno=deno*c.deno; t.simplify() return t; } CFraction CFraction:: operator/( CFraction &c) { CFraction t; t.nume=nume*c.nume; t.deno=deno*c.deno; t.simplify() return t; } CFraction CFraction:: operator*( CFraction &c) { CFraction t; t.nume=nume*c.deno; t.deno=deno*c.nume; t.simplify() return t; } double CFraction:: getnume() { return nume; } double CFraction::getdeno() { return deno; } void CfenshuDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 UpdateData(); //将把界面上各控件输入的值“捕获”到与之关联的变量中 CFraction t1(m_a,m_b),t2(m_c,m_d),c,d; //定义分数类的对象 if(m_n=="+") { c=t1+t2; m_e=c.getnume(); m_f=c.getdeno(); } else if(m_n=="-") { c=t1-t2; m_e=c.getnume(); m_f=c.getdeno(); } else if(m_n=="*") { c=t1*t2; m_e=c.getnume(); m_f=c.getdeno(); } else if(m_n=="/") { c=t1/t2; m_e=c.getnume(); m_f=c.getdeno(); } UpdateData(FLASE)
}
感言:为了把分子分母分开显示出来,要在写一个getnume,getdeno得函数
15周任务2
最新推荐文章于 2023-10-08 11:21:05 发布