第五周实验报告 任务二

来源:互联网 发布:四川地税网络申报系统 编辑:程序博客网 时间:2024/04/30 03:05
/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:分数类                              * 作    者:韩冰                            * 完成日期:  2012   年  x 月    x  日* 版 本 号:          * 对任务及求解方法的描述部分* 输入描述:* 问题描述:* 程序输出:* 程序头部的注释结束*/#include <iostream>#include <cmath>using namespace std;class CFraction{private:int nume;  // 分子int deno;  // 分母public:CFraction(int nu=0, int de=1){}   //构造函数,初始化用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/3void output(int = 0);//输出:以8/6为例,style为0时,输出8/6;//style为1时,输出4/3;//style为2时,输出1(1/3),表示一又三分之一;//不给出参数和非1、2,认为是方式0};int main (void){CFraction BBQ;BBQ.set (4, 2);BBQ.output();BBQ.input();BBQ.simplify();BBQ.output();BBQ.amplify (250);BBQ.output(1);BBQ.output(2);BBQ.output(250);system ("pause");return 0;}void CFraction::set(int nu, int de){nume = nu;deno = de;}void CFraction::input(){int a, b;char c;while (250){cin >> a >> c >> b;if (a > 0 && c == '/' && b > 0){break;}else{cout << "输入有问题,请重新输入。" <<endl;}}nume = a;deno = b;}void CFraction::simplify(){if (nume > deno){int  temp, i = deno, p = nume;while (i){temp = i;i = p % i;p = temp;}nume /= p;deno /= p;}}void CFraction::amplify (int n){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:simplify();cout << nume / deno << '(' << nume % deno << ')' << deno << endl;break;default:cout << "错误!" << endl;}}

原创粉丝点击