第十五周任务(二)加减乘除运算的对话框
来源:互联网 发布:教育软件行业分析 编辑:程序博客网 时间:2024/05/18 02:27
* 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: 齐艳红 * 完成日期: 2012 年 5 月 26 日 * 对任务及求解方法的描述部分 * 输入描述: * 程序输出: * 程序头部的注释结束 */ 以下为主要程序部分头文件;[cpp] view plaincopyprint?//fen.h class CFraction { private: double nume; // 分子 double deno; // 分母 public: //构造函数及运算符重载的函数声明 CFraction(double m=0 ,double d=0):nume(m),deno(d){}; void simplify(); CFraction operator+(const CFraction &c); //两个分数相加,结果要化简 CFraction operator-(const CFraction &c); //两个分数相减,结果要化简 CFraction operator*(const CFraction &c); //两个分数相乘,结果要化简 CFraction operator/(const CFraction &c); //两个分数相除,结果要化简 double get_nume() { return nume; } double get_deno() { return deno; } }; //fen.hclass CFraction { private: double nume; // 分子 double deno; // 分母 public: //构造函数及运算符重载的函数声明 CFraction(double m=0 ,double d=0):nume(m),deno(d){}; void simplify(); CFraction operator+(const CFraction &c); //两个分数相加,结果要化简 CFraction operator-(const CFraction &c); //两个分数相减,结果要化简 CFraction operator*(const CFraction &c); //两个分数相乘,结果要化简 CFraction operator/(const CFraction &c); //两个分数相除,结果要化简 double get_nume() {return nume; } double get_deno() {return deno; }};[cpp] view plaincopyprint?//fen.cpp #include "stdafx.h" #include"fen.h" #include<Cmath> #include<iostream> //求最大公约数的函数 int gcd(int x,int y) { int r; while(y!=0) { r=x%y; x=y; y=r; } return x; } // 分数化简 void CFraction::simplify() //化简(使分子分母没有公因子) { double c=gcd(nume,deno); nume=nume/c; deno=deno/c; } // 分数相加 CFraction CFraction::operator+(const CFraction &c) { CFraction c1; c1.nume=nume*c.deno+c.nume*deno; //当分母不同时,进行分子分母分别相乘并相加求出分数相加后的分子 c1.deno=deno*c.deno; //求出相加后的分母 c1.simplify(); //调用simplify进行分数化简 return c1; } // 分数相减 CFraction CFraction:: operator-(const CFraction &c) { CFraction c1; c1.nume=nume*c.deno-c.nume*deno; //当分母不同时,进行分子分母分别相乘并相减求出分数相减后的分子 c1.deno=deno*c.deno; //求出相减后的分母 c1.simplify(); //调用simplify进行分数化简 return c1; } // 分数相乘 (分子分母分别相乘) CFraction CFraction:: operator*(const CFraction &c) { CFraction c1; c1.nume=nume*c.nume; c1.deno=deno*c.deno; c1.simplify(); return c1; } // 分数相除 CFraction CFraction:: operator/(const CFraction &c) { CFraction c1; if (!c.nume) return *this; c1.nume=nume*c.deno; c1.deno=deno*c.nume; c1.simplify(); return c1; } //fen.cpp#include "stdafx.h" #include"fen.h"#include<Cmath>#include<iostream>//求最大公约数的函数 int gcd(int x,int y) { int r; while(y!=0) { r=x%y; x=y; y=r; } return x; } // 分数化简 void CFraction::simplify() //化简(使分子分母没有公因子) { double c=gcd(nume,deno); nume=nume/c; deno=deno/c; } // 分数相加 CFraction CFraction::operator+(const CFraction &c) { CFraction c1; c1.nume=nume*c.deno+c.nume*deno; //当分母不同时,进行分子分母分别相乘并相加求出分数相加后的分子 c1.deno=deno*c.deno; //求出相加后的分母 c1.simplify(); //调用simplify进行分数化简 return c1; } // 分数相减 CFraction CFraction:: operator-(const CFraction &c) { CFraction c1; c1.nume=nume*c.deno-c.nume*deno; //当分母不同时,进行分子分母分别相乘并相减求出分数相减后的分子 c1.deno=deno*c.deno; //求出相减后的分母 c1.simplify(); //调用simplify进行分数化简 return c1; } // 分数相乘 (分子分母分别相乘) CFraction CFraction:: operator*(const CFraction &c) { CFraction c1; c1.nume=nume*c.nume; c1.deno=deno*c.deno; c1.simplify(); return c1; } // 分数相除 CFraction CFraction:: operator/(const CFraction &c) { CFraction c1; if (!c.nume) return *this; c1.nume=nume*c.deno; c1.deno=deno*c.nume; c1.simplify(); return c1; } [cpp] view plaincopyprint? 按钮处的文件加入的函数部分[cpp] view plaincopyprint?//fenshuDlg.cpp 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.get_nume(); m_f=c.get_deno(); } else if(m_n=="-") { c=t1-t2; m_e=c.get_nume(); m_f=c.get_deno(); } else if(m_n=="*") { c=t1*t2; m_e=c.get_nume(); m_f=c.get_deno(); } else if(m_n=="/") { c=t1/t2; m_e=c.get_nume(); m_f=c.get_deno(); } UpdateData(FALSE); //更新界面上对应的控件的值并实现显示 } 分数加法运算:
分数减法运算:
分数乘法运算:
分数除法运算:
- 第十五周任务(二)加减乘除运算的对话框
- 第十五周任务二 MFC 分数的运算
- 第十五周任务(二)
- 第十五周任务(二)
- 第十五周 任务二
- 第十五周任务二
- 第十五周任务二
- 第十五周 任务二
- 第十五周任务二
- 第十五周任务二
- 第十五周任务二
- 第十五周实验报告(任务二)
- 第十五周作业任务二
- 第十五周实验报告 任务二
- 第十五周C++任务【二】拓展
- 《第十五周任务二》分数计算器
- 第七周 任务三(完整版) 复数的加减乘除
- 第八周实验报告(任务三)【分数的加减乘除】
- JDBC连接SQL_Server_2005数据库的方法
- win7下如何修改我的文档、桌面、IE收藏夹路径
- SPring+Hbernate基础整合
- Request.ServerVariables大全
- 【锋利的JQuery】Jquery中的this与$(this)
- 第十五周任务(二)加减乘除运算的对话框
- sql
- java 与sqlserver
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
- office插件
- 陕西省体入选国足固定主场 8月15日或将迎来国足
- 如何获取display device 的相关信息,例如分辨率。(EnumDisplaySettings)
- 图片文件中隐藏一个rar压缩包的秘密
- IntelliJ IDEA快捷键(常用)