实验三

2.graph类的实现

// 类graph的实现
 
#include "graph.h" 
#include <iostream>
using namespace std;

// 带参数的构造函数的实现 
Graph::Graph(char ch, int n): symbol(ch), size(n) {
}


// 成员函数draw()的实现
// 功能:绘制size行,显示字符为symbol的指定图形样式 
void Graph::draw() {
    int i,j,k;
    for (int i=1; i <= size; i++)
    { int j = size - i, k= 2*i- 1;
        while (j--)
            cout << " ";
        while (k--)
            cout << symbol;
        cout << endl;
    }

}
gtaph.cpp

 

3.分数类的实现

 

#include"fraction.h"
#include<iostream>
using namespace std;
void Fraction::show() {
    if (top == 0) cout << 0 << endl;
    else if (bottom == 1) cout << top << endl;
    else cout << top << "/" << bottom << endl;
}
//加法
void Fraction::add(Fraction x, Fraction y) {
    int  m, z, k, l, temp, i;
    m = x.bottom * y.bottom;
    z = x.top * y.bottom + y.top* x.bottom;
    k = m; l = z;
    if (k < l)
    {
        temp = k;
        k = l;
        l = temp;

    }
    for (i = l; i >= 1; i--) {
        if (k % i == 0 && l % i == 0)
            break;
    }
    z = z / i;
    m = m / i;

    cout << z << "/" << m << endl;
}

//减法
void Fraction::min(Fraction x, Fraction y) {
    int  m, z, k, l, temp, i;
    m = x.bottom * y.bottom;
    z = x.top * y.bottom - y.top * x.bottom;
    k = m; l = z;
    if (k < l)
    {
        temp = k;
        k = l;
        l = temp;

    }
    for (i = l; i >= 1; i--) {
        if (k % i == 0 && l % i == 0)
            break;

    }
    m = m / i; z = z / i;
    cout << z << "/" << m << endl;
}


//乘法
void Fraction::mul(Fraction x, Fraction y) {
    int m, z, k, l, temp, i;
    m = x.bottom * y.bottom;
    z = x.top * y.top;
    k = m; l = z;
    if (k < l)
    {
        temp = k;
        k = l;
        l = temp;

    }
    for (i = l; i >= 1; i--) {
        if (k % i == 0 && l % i == 0)
            break;

    }
    m = m / i; z = z / i;
    cout << z << "/" << m << endl;
}

//除法
void Fraction::div(Fraction  x, Fraction  y) {
    int m, z, k, l, temp, i;
    m = x.bottom * y.top;
    z = x.top * y.bottom;
    k = m; l = z;
    if (k < l)
    {
        temp = k;
        k = l;
        l = temp;

    }
    for (i = l; i >= 1; i--) {
        if (k % i == 0 && l % i == 0)
            break;

    }
    m = m / i; z = z / i;
    cout << z << "/" << m << endl;
}

//比大小
void Fraction::com(Fraction  x, Fraction  y) {
    int  z;
    z = x.top * y.bottom - y.top * x.bottom;
    if (z < 0) cout << x.top << "/" << x.bottom << "<" << y.top << "/" << y.bottom << endl;
    else if (z > 0) cout << x.top << "/" << x.bottom << ">" << y.top << "/" << x.bottom << endl;
    else if (z == 0) cout << x.top << "/" << x.bottom << "=" << y.top << "/" << y.bottom << endl;
}
fraction.cpp
#ifndef FRACTION_H
#define FRACTION_H

class Fraction {
public:
    Fraction(int top0 = 0, int bottom0 = 1):top(top0),bottom(bottom0){
    }
    void add(Fraction x, Fraction y);
    void min(Fraction x, Fraction y);
    void mul(Fraction x, Fraction y);
    void div(Fraction x, Fraction y);
    void com(Fraction x, Fraction y);
    void show();
private:
    int top;
    int bottom;
};

#endif
fraction.h
#include"fraction.h"
#include<iostream>
using namespace std;

int main() {
    Fraction a;
    a.show();
    Fraction b(3, 4);
    b.show();
    Fraction c(5);
    c.show();
    int x, y;
    cin >> x >> y;
    Fraction d(x, y);
    d.show();
    a.add(b, d);
    a.min(b, d);
    a.mul(b, d);
    a.div(b, d);
    a.com(b, d);

    system("pause");
}
main
posted @ 2019-04-21 13:03  senility  阅读(105)  评论(0)    收藏  举报