第十五周任务二(窗口式程序开发之——分数类)
2012-05-26 14:10
225 查看
* 问题描述: 设计分数类,开发一个窗口式程序,可以完成分数的四则运算
以下为主要程序部分头文件;
按钮处的文件加入的函数部分
运行结果如图所示:
* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: 冯珍珍 * 完成日期: 2012 年 5 月 26 日 * 对任务及求解方法的描述部分 * 输入描述: * 程序输出: * 程序头部的注释结束 */
以下为主要程序部分头文件;
//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.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; }
按钮处的文件加入的函数部分
//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); //更新界面上对应的控件的值并实现显示 }
运行结果如图所示:
相关文章推荐
- C++第十五周【任务2】 设计分数类,开发一个窗口式程序
- 第十五周C++【任务二】设计分数类,开发一个窗口式程序,可以完成分数的四则运算
- 第十五周实验--任务2--设计分数类,开发一个窗口式程序,可以完成分数的四则运算。
- C++第十五周【任务3】程序解析
- 关于开发中如何防止死等程序导致其它任务运行不了方法
- Windows server 2008 64-bit计划任务运行使用了excel 2003 32-bit .net开发组件的程序遇到的问题
- 关于开发中如何防止死等程序导致其它任务运行不了方法
- 第九周实验报告任务3 定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与字母之间用下划线字符(_)分
- 开发一个简易的任务监控程序
- iphone开发 禁止程序支持多任务
- 温伯格技术思想三部曲:程序开发心理学——第7章、程序开发任务的差异
- 系统启动时自动运行开发的程序,采用计划任务
- 利用实时内核开发嵌入式多任务程序
- 【iOS开发】在程序被送入后台时,开启一个长期任务(voip)。
- mapreduce的任务切片规划机制、job提交流程、Mapreduce中的分区Partitioner与流量汇总程序开发
- 第九周任务三--定义分数类中<<和>>运算符重载,实现分数的输入输出,使程序读起来更自然。
- 串的简单处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。 本题目即是要求程序对用户输入的串进行处理。
- 第十五周任务一 用MFC能设计最简单的窗口程序。
- 《第九周任务三》定义分数类中《和》运算符重载,实现分数的输入输出,改造源程序中对运算结果显示方式,使程序读起来更自然