第六周上机实践项目 项目1 - 分数类的雏形

来源:互联网 发布:费雪淘宝旗舰店 编辑:程序博客网 时间:2024/06/15 06:40

问题及代码:

/* Copyright(c)2016,烟台大学计算机与控制工程学院 All rights reserced 文件名称:test.cpp 作    者:蔡汝佳 完成日期:2016年4月7日 版 本 号:v1.0 问题描述: 输入描述: 程序输出:*/#include <iostream>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/3    void output(int style=0);   //输出:以8/6为例,style为0时,原样输出8/6;                            //style为1时,输出化简后形式4/3;                            //style为2时,输出1(1/3)形式,表示一又三分之一;                            //style为3时,用小数形式输出,如1.3333;                            //默认方式0    int gcd(int x,int y);};void CFraction::set(int nu,int de){    nume=nu;    deno=de;}CFraction::CFraction(int nu,int de){    nume=nu;    deno=de;}void CFraction::input(){    char c;    cout<<"请输入分数:";    cin>>nume>>c>>deno;}int CFraction::gcd(int x,int y){    int r;    while(y!=0)   {         r=x%y;        x=y;        y=r;    }    return x;}void CFraction::amplify(int n){    nume=nume*n;}void CFraction::simplify(){    int n;    n=gcd(nume,deno);    nume=nume/n;    deno=deno/n;}void CFraction::output(int style){    if(style==0)        cout<<"分数是:"<<nume<<'/'<<deno<<endl;    if(style==1)    {        simplify();        cout<<"分数是:"<<nume<<'/'<<deno<<endl;    }    if(style==2)    {        int a;        a=nume/deno;        cout<<"分数是:"<<a;        if(nume%deno!=0)        cout<<'('<<nume%deno<<'/'<<deno<<')'<<endl;        else            cout<<endl;    }    if(style==3)    {        double b;        b=nume/double(deno);        cout<<b;    }}int main(){    CFraction a;    char c;    int n;    int nu,de;    cout<<"请输入分数(格式为1/2):";    cin>>nu>>c>>de;    a.set( nu, de);    cout<<"原样输出请输入0"<<endl;    cout<<"化简后输出请输入1"<<endl;    cout<<"分式输出请输入2"<<endl;    cout<<"用小数形式输出请输入3"<<endl;    cout<<"请输入输出指令:";    cin>>n;    a.output(n);    return 0;}


 

运行结果:

知识点总结:

 

学习心得:

0 0
原创粉丝点击