C++程序设计实验报告(七十六)---第十五周任务二
2012-05-27 08:15
357 查看
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:MFC(计算器)
* 作 者: 刘镇
* 完成日期: 2012 年 05 月 27 日
* 版 本 号: 1.072
* 对任务及求解方法的描述部分
* 输入描述: ......
* 问题描述: ......
* 程序输出: ......
* 程序头部的注释结束
*/
CFraction.h:
CFraction.cpp:
分数计算器Dlg.cpp:
运行结果:
![](http://my.csdn.net/uploads/201205/27/1338077786_9295.jpg)
![](http://my.csdn.net/uploads/201205/27/1338077798_1282.jpg)
感言:
在学着写是觉得还是对于MFC本身不了解、不理解怎样用,造成的困难,如我想添加下拉菜单的split button。
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:MFC(计算器)
* 作 者: 刘镇
* 完成日期: 2012 年 05 月 27 日
* 版 本 号: 1.072
* 对任务及求解方法的描述部分
* 输入描述: ......
* 问题描述: ......
* 程序输出: ......
* 程序头部的注释结束
*/
CFraction.h:
class CFraction { private: int nume; // 分子 int deno; // 分母 int gcd(int nu, int de); public: //构造函数及运算符重载的函数声明 CFraction(int nu = 0, int de = 1); //构造函数 friend CFraction operator + (CFraction &c1,CFraction &c2); friend CFraction operator - (CFraction &c1,CFraction &c2); friend CFraction operator * (CFraction &c1,CFraction &c2); friend CFraction operator / (CFraction &c1,CFraction &c2); int get_nume(); int get_deno(); void Simplify(); //化简(使分子分母没有公因子) };
CFraction.cpp:
#include"stdafx.h" #include"CFraction.h" using namespace std; CFraction::CFraction(int nu, int de) { nume = nu; deno = de; } int CFraction::gcd(int nu, int de) { int t, r, a, b; a = nu; b = de; if (a < b) { t = a; a = b; b = t; } while (b != 0) { r = a % b; a = b; b = r; } return a; } void CFraction::Simplify() { int n ; if(nume < 0) { n = gcd(-nume, deno); } else { n = gcd(nume, deno); } nume = nume / n; deno = deno / n; } CFraction operator + (CFraction &c1,CFraction &c2) { CFraction c; c.nume = c1.nume * c2.deno + c2.nume * c1.deno; c.deno = c1.deno * c2.deno; return c; } CFraction operator - (CFraction &c1,CFraction &c2) { CFraction c; c.nume = c1.nume * c2.deno - c2.nume * c1.deno; c.deno = c1.deno * c2.deno; return c; } CFraction operator * (CFraction &c1,CFraction &c2) { CFraction c; c.nume = c1.nume * c2.nume; c.deno = c1.deno * c2.deno; return c; } CFraction operator / (CFraction &c1,CFraction &c2) { CFraction c; c.nume = c1.nume * c2.deno; c.deno = c1.deno * c2.nume; return c; } int CFraction::get_nume() { return this->nume; } int CFraction::get_deno() { return this->deno; }
分数计算器Dlg.cpp:
void C分数计算器Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 UpdateData(); //将把界面上各控件输入的值“捕获”到与之关联的变量中 CFraction c1(c1_nume, c1_deno), c2(c2_nume, c2_deno), c(0, 1); if(sign == '+') { c = c1 + c2; } else if(sign == '-') { c = c1 - c2; } else if(sign == '*') { c = c1 * c2; } else if(sign == '/') { c = c1 / c2; } c.Simplify(); c_nume = c.get_nume(); c_deno = c.get_deno(); UpdateData(FALSE); }
运行结果:
![](http://my.csdn.net/uploads/201205/27/1338077786_9295.jpg)
![](http://my.csdn.net/uploads/201205/27/1338077798_1282.jpg)
感言:
在学着写是觉得还是对于MFC本身不了解、不理解怎样用,造成的困难,如我想添加下拉菜单的split button。
相关文章推荐
- C++程序设计实验报告(七十七)---第十五周任务三(3-1)
- C++程序设计实验报告(七十八)---第十五周任务三(3-2)
- 第十五周实验报告 任务一
- 第十五周实验报告任务1
- C++程序设计实验报告(三十)---第二周任务三(3-2)
- 《第十五周实验报告任务2——分数计算器》
- c++程序设计实验报告——任务(二)
- 第十五周实验报告(任务一)【窗口程序设计之三角形类】
- 第十五周实验报告任务1
- 第十五周实验报告 任务三
- C++程序设计实验报告(八十四) --- 第十七周任务一
- C++程序设计实验报告(六十三)---第十周任务2
- C++程序设计实验报告(六十八)---第十二周任务四
- C++程序设计实验报告(八十)---第十六周任务二
- 第十五周实验报告(任务一)
- 第十五周实验报告任务2
- 《第十五周实验报告任务1——窗口程序设计及MFC 启蒙》
- 第十五周实验报告(任务二)
- 第十五周实验报告任务3
- C++程序设计实验报告(六十九)---第十三周任务一