C 實現 分數類

2021-06-04 14:43:38 字數 2321 閱讀 5828

花了幾個小時敲**——測試——修改……

總算搞定了

好累,睡覺去的

有問題歡迎提出,繼續修改

首先是標頭檔案cfraction.h:

#ifndef cfraction_h_

#define cfraction_h_

#include using namespace std;

class cfraction

; float getvalue()const;//獲取分數值

void simplification();//化簡

void show();//顯示分數

friend ostream& operator<

//過載四則運算操作符

cfraction operator +(const cfraction& f)const;

cfraction operator -(const cfraction& f)const;

cfraction operator *(const cfraction& f)const;

cfraction operator /(cfraction& f)const;

//過載比較操作符

bool operator ==(const cfraction& f)const;

bool operator >(const cfraction& f)const;

bool operator

cfraction getreciprocal();//獲取分數的倒數

void changevalue(int a,int b);//改變當前分數分子和分母

private:

int m_molecular;//分子

int m_denomilator;//分母

bool m_isnegative;//是否為負數

};#endif;

然後是類方法實現檔案cfraction.cpp

#include "stdafx.h"

#include "cfraction.h"

#include //輾轉相除法求最大公約數

int function(int& a,int& b)

return b;

}ostream& operator<

this->m_molecular=abs(a);

this->m_denomilator=abs(b);

if(a<0&&b<0)

this->m_isnegative=false;

else if(a<0||b<0)

this->m_isnegative=true;

else

this->m_isnegative=false;

this->simplification();

}float cfraction::getvalue()const

void cfraction::simplification()

cfraction cfraction::operator +(const cfraction &f)const

else// 不同號

return temp;

}void cfraction::show()

cfraction cfraction::operator -(const cfraction &f) const

else//異號相減

return temp;

}cfraction cfraction::operator *(const cfraction &f) const

cfraction cfraction::operator /(cfraction &f) const

cfraction cfraction::getreciprocal()

bool cfraction::operator ==(const cfraction &f) const

bool cfraction::operator

else//相等的分數

return false;

} else if(m_isnegative)//左負友正

return true;

else// 左正右負

return false;

}bool cfraction::operator >(const cfraction& f)const//大於號小於號剛好相反

void cfraction::changevalue(int a,int b)

希望對c++初學者有所幫助

c++真的很強大

努力學習中

C 實現的分數類

前陣子開始想做成乙個完備的分數類,昨天有時間進行了實現,今天再看 一團糟。於今天進行重構,尚未完成,待續。using system using system.collections.generic using system.linq using system.text using system.te...

分數類的實現

實現乙個分數類,並過載其加減運算 include include using namespace std class fraction 無參建構函式 fraction int,int void set int aa,int bb 設定分子分母 void show 顯示分數 fraction add ...

實現分數類的過載

程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 作 者 苗影 完成日期 2012 年 4 月 10 日 版 本 號 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 程式頭部的注釋結束 includeusing namespace std class cfraction void sim...