[C++] Xây dựng các toán tử > < == để so sánh các phân số

Thảo luận trong 'Visual C++' bắt đầu bởi Trần Văn Cường, 10/6/16.

  1. Trần Văn Cường

    Trần Văn Cường I love CNTT Thành viên BQT Thành viên BQT

    Tham gia ngày:
    8/11/15
    Bài viết:
    3,693
    Đã được thích:
    43
    Điểm thành tích:
    48
    Giới tính:
    Nam
    Nghề nghiệp:
    Sinh Viên
    Nơi ở:
    Quảng Ninh thân yêu!
    Web:

    Xây dựng lớp phân số mô tả đối tượng phân số gồm các thành phần:

    * Các thành phần thuộc tính:
    - a: mô tả phần tử số; b: mô tả phần mẫu số.

    * Các phương thức:
    - Phương thức nhập phân số
    - Phương thức hiện thị phân số (dạng a/b)


    Viết chương trình thực hiện việc nhập vào một dãy gồm n phân số và thực hiện các công việc sau:

    - Xây dựng toán tử > dùng để so sánh hai phân số. Tiến hành sắp xếp mảng phân số đã nhập theo chiều tăng dần. Hiển thị ra màn hình.
    - Xây dựng toán tử >= dùng để só sánh hai phân số. Tìm và hiển thị phân số lớn nhất ra màn hình.
    - Xây dựng toán tử >= dùng để so sánh hai phân số. tìm và hiển thị phân số nhỏ nhật ra màn hình.
    - Xây dựng hàm rút gọn dùng để rút gọn phân số. Hiển thị ra dãy phân số đã nhập dưới dạng rút gọn.
    - Xây dựng toán tử == để so sánh hai phân số. Nhập thêm một phân số X. Hỏi xem X có trong dãy phân số đã nhập hay không.

    DEMO

    c-xay-dung-cac-toan-tu-de-so-sanh-cac-phan-so.gif


    CODE

    CODE:
    Select All
    #include <iostream>
    #include <math.h>
    using namespace std;
    class 
    phanso
    {
    private:
        
    double a;
        
    double b;
    public:
        
    void nhapsl()
        {
            
    cout << "\n nhap tu so :"cin >> a;
            
    cout << " nhap mau so :"cin >> b;
        }
        
    void insl()
        {
            
    cout << " " << << "/" << b;
        }
        
    bool operator == (phanso &);
        
    bool operator != (phanso &);
        
    bool operator > (phanso &);
        
    bool operator < (phanso &);
        
    bool operator >= (phanso &);
        
    bool operator <= (phanso &);
        
    int phanso::ucln(int aint b)
        {
            
    abs(a); abs(b);
            if (
    a*== 0) return 1;
            while (
    != b)
            if (
    a>b-= b;
            else 
    -= a;
            return 
    a;
        }
        
    // rut gon ps
        
    void phanso::rutgon()
        {
            
    int u;
            
    ucln(ab);
            
    u;
            
    u;
        }
    };
    bool phanso::operator > (phanso &r)
    {
        
    int ts1ms1;
        
    ts1 a*r.b*r.a;
        
    ms1 r.b;
        return (
    ts1*ms1 0);
    }
    bool phanso::operator < (phanso r)
    {
        if (
    r>*this)
            return 
    true;
            return 
    false;
    }
    bool phanso::operator >= (phanso r)
    {
        if (
    r>*this)
            return 
    true;
        return 
    false;
    }
    bool phanso::operator <= (phanso r)
    {
        if (
    < *this)
            return 
    true;
        return 
    false;
    }
    phanso max(phanso a[], int n)
    {
        
    phanso max a[0];
        for (
    int i 1ni++)
        {
            if (
    a[i] >= maxmax a[i];
        }
        return 
    max;
    }
    phanso min(phanso a[], int n)
    {
        
    phanso min a[0];
        for (
    int i 1ni++)
        {
            if (
    a[i] <= minmin a[i];
        }
        return 
    min;
    }
    void sapxep(phanso a[], int n)
    {
        
    phanso tam;
        
    int ij;
        for (
    0n; ++i)
        for (
    1n; ++j)
        if (
    a[j] < a[i])
        {
            
    tam a[i];
            
    a[i] = a[j];
            
    a[j] = tam;
        }
    }
    bool phanso::operator == (phanso r)
    {
        if (!(*
    this>r) && !(r>*this))
            return 
    true;
        return 
    false;
    }
    void main()
    {
        
    phanso pa[100], psmax,psmin,x;
        
    int n;
        
    bool tx=false;
        
    cout << "nhap so luong phan so: ";
        
    cin >> n;
      
        for (
    int i 0ni++)
        {
            
    cout << "\nNhap vao so thu " << i+<< ": "a[i].nhapsl();
        }
        
    cout << "\nDay sap xep la: ";
        
    sapxep(an);
        for (
    int i 0ni++)
        {
            
    a[i].insl();
        }
        
    cout << "\nPhan so lon nhat la: ";
        
    psmax max(an);
        
    psmax.insl();
        
    cout << "\nPhan so nho nhat la: ";
        
    psmin min(an);
        
    psmin.insl();
        
    cout << "\nDay phan so sau khi rut gon la: ";
        for (
    int i 0ni++)
        {
            
    a[i].rutgon();
        }
        for (
    int i 0ni++)
        {
            
    a[i].insl();
        }
        
    x.nhapsl();
        for (
    int i 0ni++)
        {
            if (
    == a[i])
            {
                
    tx true;
                
    cout << "\nPhan so vua nhap co trong day phan so. ";
                break;
            }
        }
        if (
    tx == falsecout << "Phan so vua nhap khong co trong day";
        
    cout << "\n\n";
        
    system("pause");
    }
     

    Bình Luận Bằng Facebook

    data-href="https://cnttqn.com/threads/c-xay-dung-cac-toan-tu-de-so-sanh-cac-phan-so.2108.html"