第五周上机任务2
2012-03-24 19:05
253 查看
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:练习.cpp * 作 者:宋本一 * 完成日期:2012 年 3 月 24 日 * 版 本 号:v5.2 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ #include<iostream> using namespace std; class CFraction {private: int nume; // 分子 int deno;// 分母 //int i; public: CFraction(int nu=0,int de=1):deno(de),nume(nu){}; //构造函数,初始化用 void Set(int nu=0,int de=1); //置值,改变值时用 void input(); //按照"nu/de"的格式,如"5/2"的形式输入 void Simplify(); //化简(使分子分母没有公因子) void amplify(int n); //放大n倍,如2/3放大5倍为10/3 void output(int style=0); //输出:以8/6为例,style为0时,输出8/6; //style为1时,输出4/3; //style为2时,输出1(1/3),表示一又三分之一; //不给出参数和非1、2,认为是方式0 }; void CFraction::input() { char c1; cout <<"请输入一个分数(格式nu/de):"; while(1) { cin >> nume >> c1 >> deno; if ( c1 !='/' ) { cout << "输入格式不正确,请重新输入!"; } else break; } } void CFraction::Simplify() { int i; if( deno < nume ) i = deno; else i = nume; for( ; i > 0; --i) { if ( nume % i == 0 && deno % i == 0 ) { nume = nume/i; deno = deno/i; break; } } } void CFraction::amplify(int n) { nume = nume * n; } void CFraction::output(int style) { switch ( style ) { case 0: cout<<nume<<"/"<<deno<<endl;break; case 1: Simplify(); cout<<nume<< "/" << deno <<endl;break; case 2: cout<<nume/deno<< "(" << nume%deno<<"/"<<deno<<")"<<endl;break; } } int main() { CFraction CF; CF.input(); CF.output(); CF.amplify(2); CF.Simplify(); CF.output(); CF.output(1); CF.output(2); system("PAUSE"); return 0; }
运行结果:
相关文章推荐
- 第五周上机任务项目4
- C#上机 第五周 任务1和任务2 出现次数和逆序
- 第五周上机任务2
- 第五周上机任务--任务二--在main()函数中自行定义对象,调用各成员函数,完成基本的测试
- 第五周上机指导--任务四--设计一个学生类,包括学号(num)和成绩(score),建立一个对象数组(改进版)
- 第五周上机任务项目1-(1带参数构造函数)--(纪念原创博文第100篇)
- 第五周上机任务---设计三角形类,增加构造函数--第二版V1.2
- 第五周上机任务项目1-(2,3默认参数构造函数)
- 第五周上机任务1
- 2013第五周上机任务【项目2 分数类】
- 第五周上机任务
- 第五周上机任务项目1-(4参数初始化表对数据成员初始化)
- 2013第五周上机任务【项目1 三角形类(构造函数)】
- 2013第五周上机任务【项目3 长方体类】
- 第五周上机任务项目 2
- Java上机 第五周 任务6 矩阵中数据的位置变换功能、矩阵的加法功能、矩阵的乘法功能
- 第五周上机任务---设计三角形类,增加构造函数--第三版V1.0
- 第五周上机任务---设计三角形类,增加构造函数--第一版V1.0
- 第五周上机任务项目1 分数的各种运算
- 第五周上机任务项目一 长方体